識別是否存在競爭狀況
啟用追蹤點,以檢查在損毀之後未產生任何傾出的狀況。
關於此作業
程序
- 使用 判斷追蹤點的追蹤點 ID中的指示,在 J9TraceFormat.dat 檔中尋找 protectedDestroyJavaVM 函數追蹤點。
- 當您有追蹤點 ID 時,請重新執行失敗的實務,並將那些追蹤點傳送至主控台。結果類似於下列輸出:
在 protectedDestroyJavaVM 函數的第一個追蹤點之後,會列印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 failedUnhandled exception訊息。 此輸出顯示在 Java 執行時期環境的生命週期中非常晚才發生當機,且在處理程序結束之前仍有足夠時間產生傾出檔。