Vorhandensein einer Konkurrenzsituation erkennen

Aktivieren Sie Tracepunkte, um nach Situationen zu suchen, in denen nach einem Absturz kein Speicherauszug erstellt wird.

Informationen zu dieser Task

Suchen Sie nach Situationen, in denen nach einem Absturz kein Speicherauszug erstellt wird, indem Sie Tracepunkte in der Nähe der Beendigung der Java™ Runtime Environment aktivieren. Wenn sich die Tracepunkte mit der Absturzbedingung überschneiden, haben Sie die Bestätigung, dass eine Konkurrenzsituation vorliegt. Die Tracepunkte in protectedDestroyJavaVM sind die letzten, die ausgelöst werden, bevor zum Hauptthread zurückgekehrt wird.

Vorgehensweise

  1. Suchen Sie die Tracepunkte der Funktion protectedDestroyJavaVM in der Datei J9TraceFormat.dat anhand der Anweisungen im Abschnitt Tracepunkt-ID eines Tracepunkts ermitteln.
  2. Wenn Sie die Tracepunkt-IDs kennen, führen Sie das fehlerhafte Szenario erneut mit den Tracepunkten aus, die an die Konsole gesendet wurden.
    Die Ergebnisse sind denen in der folgenden Ausgabe ähnlich:
    java -Xtrace:print=tpnid{j9vm.381-394} MyApp
    
    11:10:09.421*0x42cc1a00            j9vm.385      > protectedDestroyJavaVM
    11:10:09.421 0x42cc1a00            j9vm.386      - protectedDestroyJavaVM waiting for Java threads to 
    stop
    11:10:09.421 0x42cc1a00            j9vm.387      - protectedDestoryJavaVM all Java threads have stopped
    11:10:09.421 0x42cc1a00            j9vm.388      - protectedDestroyJavaVM protectedDestroyJavaVM 
    vmCleanup complete
    11:10:09.421 0x42cc1a00            j9vm.389      - protectedDestroyJavaVM VM Shutting Down Hook Fired
    Unhandled exception
    Type=Segmentation error vmState=0x00000000
    
    J9Generic_Signal_Number=00000004 ExceptionCode=c0000005 ExceptionAddress=430514BE ContextFlags=0001003f
    Handler1=7FEE9C40 Handler2=7FEC98C0 InaccessibleAddress=00000000
    EDI=000A70A0 ESI=432235D8 EAX=00000000 EBX=00192684
    ECX=00000001 EDX=4368FECC
    EIP=430514BE ESP=4368FED4 EBP=4368FED8 EFLAGS=00010246
    Module=failing_module.dll
    Module_base_address=43050000 Offset_in_DLL=000014be
    11:10:09.421 0x42cc1a00            j9vm.390      - Target=2_40_20081203_026494_lHdSMr (Windows XP 5.1 
    build 2600 Service Pack 2)
    protectedDestroyJavaVM GC HeapManagement ShutdownCPU=x86 (2 logical CPUs) (0x7fe6b000 RAM)
    
    11:10:09.421 0x42cc1a00            j9vm.391      - protectedDestroyJavaVM vmShutdown returned
    11:10:09.421 0x42cc1a00            j9vm.393      - protectedDestroyJavaVM terminateRemainingThreads failed
    Die Nachricht Unhandled exception (Nicht behandelte Ausnahmebedingung) wird nach den ersten Tracepunkten für die Funktion protectedDestroyJavaVM ausgegeben. Diese Ausgabe zeigt, dass der Absturz sehr spät im Lebenszyklus der Java Runtime Environment aufgetreten ist und dass genügend Zeit verblieben ist, um die Speicherauszugsdateien zu erstellen, bevor der Prozess beendet wurde.

Nächste Schritte

Wenn Sie feststellen, dass eine Konkurrenzsituation eingetreten ist, sind Sie möglicherweise noch in der Lage, eine Systemspeicherauszugsdatei abzurufen. Weitere Informationen finden Sie unter Systemspeicherauszugsdateien in einer Konkurrenzsituation abrufen.