トレース・ポイントを有効にすると、クラッシュ後にダンプが生成されていない状況が発生しているかどうかを確認できます。
このタスクについて
Java™ ランタイム環境のシャットダウン近くでトレース・ポイントを有効にすることによって、クラッシュ後にダンプが生成されない状況を確認します。 これらのトレース・ポイントがクラッシュ状況と重なり合っている場合は、競合状態が発生していることを確認できます。 protectedDestroyJavaVM 内のトレース・ポイントは、メイン・スレッドの復帰前にトリガーされる最後のトレース・ポイントです。
手順
- 「 トレース・ポイントのトレース・ポイント ID の決定」の説明に従って、 J9TraceFormat.dat ファイル内の protectedDestroyJavaVM 関数トレース・ポイントを見つけます。
- これらのトレース・ポイント ID が得られたら、問題のシナリオを再実行して、これらのトレース・ポイントをコンソールに送出します。
この結果として、次のような出力が得られます。
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
Unhandled exception メッセージは、
protectedDestroyJavaVM 関数の最初のトレース・ポイントの後に出力されます。 この出力は、Java ランタイム環境の存続期間中に非常に遅くクラッシュが発生したこと、およびプロセスが終了する前にダンプ・ファイルを生成するための十分な時間が残っていることを示しています。
次のタスク
競合状態が発生したことが確認された場合でも、システム・ダンプ・ファイルを得られる可能性があります。 詳しくは、 競合状態でのシステム・ダンプ・ファイルの取得を参照してください。