内容出自官网:
http://www-01.ibm.com/support/docview.wss?rs=688&uid=swg21244312
需收集的分析数据:
MustGather files
SystemErr*.log
SystemOut*.log
native_stderr.log
native_stdout.log
trace*.log
wps_date_time.log
recent javacores from directory or
recent files from directory /logs/ffdc or /logs/ffdc
情况一:was crash时,无javacore产生
多数是应为 JVM可能hung住,崩溃时,来不及写javacore。
则需将SDK升级到最新版本。
情况二:was crash时,有javacore产生
1)检查javacore生产的原因
"signals 1, 0, OUTOFMEMORY, and SIGNONE "大多数与内存问题有关;
"signal 11 (SIGSEGV) "表明应用服务器崩溃.
"signal 3 "表明是手工做的javacore。
The javacore signal appears in this section:
NULL ------------------------------------------------
0SECTION TITLE subcomponent dump routine
NULL ===============================
1TISIGINFO OUTOFMEMORY received
1TIDATETIME Date: 2006/07/25 at 10:01:56
1TIFILENAME Javacore filename: /data/work/javacore450680.1153839716.txt
NULL ------------------------------------------------
or
NULL ------------------------------------------------
0SECTION TITLE subcomponent dump routine
NULL ===============================
1TISIGINFO signal 11 received
1TIDATETIME Date: 2006/07/28 at 11:02:35
1TIFILENAME Javacore filename: /coredump/javacore336050.1154077355.txt
NULL ------------------------------------------------
2)检查Java SDK的版本
一般版本信息是以"1XHFULLVERSION"或"1CJAVAVERSION"开头的。
eg:
1XHFULLVERSION J2RE 1.4.2 IBM AIX build ca1420-20040626
or
1CIJAVAVERSION J2RE 1.4.2 IBM Windows 32 build cn142-20041202
3).在javacore中查找崩溃原因
通常是以"1XHSIGRECV"或"Fault Module"开头,后面跟原因。
与JVM和JIT模块有关的故障的入口:
----------------------
- The JVM Modules
Windows: JVM.dll
AIX: libjvm.a
Linux: libjvm.so
-----------------------
- The Just In Time (JIT) Modules
Windows: JITC.dll
AIX: libjitc.a
Linux: libjitc.so
-----------------------
例如:
The 1XHSIGRECV and "Fault Module" entry will look like:
0SECTION XHPI subcomponent dump routine
NULL ==============================
1XHTIME Fri Jul 28 11:02:35 2006
1XHSIGRECV SIGSEGV received at 0xd15e58f0 in /java/jre/bin/libjitc.a. Processing terminated.
or
0SECTION XHPI subcomponent dump routine
NULL ==============================
1XHEXCPCODE Exception code: C0000005 Access Violation
1XHEXCPADDRESS Fault address: 100D15B0 01:000D05B0
1XHEXCPMODULE Fault module: \jre\bin\classic\jvm.dll
解决办法与情况一相同,升级SDK到最新版本。
4).如果是因为JIT模块引起的crash,但又因为某些原因,不愿意升级SDK,可以用"跳过一方法"来解决。
a.在javacore中搜索"Current Thread",找到当前引起崩溃的线程,如下:
1XMCURTHDINFO Current Thread Details
NULL ----------------------
3XMTHREADINFO "Servlet.Engine.Transports : 2" (TID:0x10759F18, sys_thread_t:0x39CCF340, state:R, native ID:0x8F4) prio=5
4XESTACKTRACE at
com.ibm.workplace.wcm.app.ui.portlet.widget.HTMLPopupMenuButtonRenderer.render (Unknown Source)
4XESTACKTRACE at com.ibm.workplace.wcm.app.ui.portlet.widget.HTMLPopupMenuButtonRenderer.render(Unknown Source)
4XESTACKTRACE at
com.ibm.psw.wcl.core.ARendererFactory.performRender(ARendererFactory.java(Compiled Code))
其中: com.ibm.workplace.wcm.app.ui.portlet.widget.HTMLPopupMenuButtonRenderer.render
引起crash。为了跳过JIT编译,避免crash, 加上以下JVM命令行选项:
JITC_COMPILEOPT=COMPILING:SKIP{ com/ibm/workplace/wcm/app/ui/portlet/widget/renderer/HTMLPopupMenuButtonRenderer}{render}
注意:它必须在一行,并且没有空格,你可以用*代替在相同package或class中不同的methods。在Windows中JITC_COMPILEOPT的选项用分号隔开,在Unix中则用冒号。
5).当然你也可以禁用JIT,这也是以前,比较简单的解决方法,但是同时带来的性能下降,要考虑是否能接受。
http://www-01.ibm.com/support/docview.wss?rs=688&uid=swg21244312
需收集的分析数据:
MustGather files
SystemErr*.log
SystemOut*.log
native_stderr.log
native_stdout.log
trace*.log
wps_date_time.log
recent javacores from directory or
recent files from directory /logs/ffdc or /logs/ffdc
情况一:was crash时,无javacore产生
多数是应为 JVM可能hung住,崩溃时,来不及写javacore。
则需将SDK升级到最新版本。
情况二:was crash时,有javacore产生
1)检查javacore生产的原因
"signals 1, 0, OUTOFMEMORY, and SIGNONE "大多数与内存问题有关;
"signal 11 (SIGSEGV) "表明应用服务器崩溃.
"signal 3 "表明是手工做的javacore。
The javacore signal appears in this section:
NULL ------------------------------------------------
0SECTION TITLE subcomponent dump routine
NULL ===============================
1TISIGINFO OUTOFMEMORY received
1TIDATETIME Date: 2006/07/25 at 10:01:56
1TIFILENAME Javacore filename: /data/work/javacore450680.1153839716.txt
NULL ------------------------------------------------
or
NULL ------------------------------------------------
0SECTION TITLE subcomponent dump routine
NULL ===============================
1TISIGINFO signal 11 received
1TIDATETIME Date: 2006/07/28 at 11:02:35
1TIFILENAME Javacore filename: /coredump/javacore336050.1154077355.txt
NULL ------------------------------------------------
2)检查Java SDK的版本
一般版本信息是以"1XHFULLVERSION"或"1CJAVAVERSION"开头的。
eg:
1XHFULLVERSION J2RE 1.4.2 IBM AIX build ca1420-20040626
or
1CIJAVAVERSION J2RE 1.4.2 IBM Windows 32 build cn142-20041202
3).在javacore中查找崩溃原因
通常是以"1XHSIGRECV"或"Fault Module"开头,后面跟原因。
与JVM和JIT模块有关的故障的入口:
----------------------
- The JVM Modules
Windows: JVM.dll
AIX: libjvm.a
Linux: libjvm.so
-----------------------
- The Just In Time (JIT) Modules
Windows: JITC.dll
AIX: libjitc.a
Linux: libjitc.so
-----------------------
例如:
The 1XHSIGRECV and "Fault Module" entry will look like:
0SECTION XHPI subcomponent dump routine
NULL ==============================
1XHTIME Fri Jul 28 11:02:35 2006
1XHSIGRECV SIGSEGV received at 0xd15e58f0 in /java/jre/bin/libjitc.a. Processing terminated.
or
0SECTION XHPI subcomponent dump routine
NULL ==============================
1XHEXCPCODE Exception code: C0000005 Access Violation
1XHEXCPADDRESS Fault address: 100D15B0 01:000D05B0
1XHEXCPMODULE Fault module: \jre\bin\classic\jvm.dll
解决办法与情况一相同,升级SDK到最新版本。
4).如果是因为JIT模块引起的crash,但又因为某些原因,不愿意升级SDK,可以用"跳过一方法"来解决。
a.在javacore中搜索"Current Thread",找到当前引起崩溃的线程,如下:
1XMCURTHDINFO Current Thread Details
NULL ----------------------
3XMTHREADINFO "Servlet.Engine.Transports : 2" (TID:0x10759F18, sys_thread_t:0x39CCF340, state:R, native ID:0x8F4) prio=5
4XESTACKTRACE at
com.ibm.workplace.wcm.app.ui.portlet.widget.HTMLPopupMenuButtonRenderer.render (Unknown Source)
4XESTACKTRACE at com.ibm.workplace.wcm.app.ui.portlet.widget.HTMLPopupMenuButtonRenderer.render(Unknown Source)
4XESTACKTRACE at
com.ibm.psw.wcl.core.ARendererFactory.performRender(ARendererFactory.java(Compiled Code))
其中: com.ibm.workplace.wcm.app.ui.portlet.widget.HTMLPopupMenuButtonRenderer.render
引起crash。为了跳过JIT编译,避免crash, 加上以下JVM命令行选项:
JITC_COMPILEOPT=COMPILING:SKIP{ com/ibm/workplace/wcm/app/ui/portlet/widget/renderer/HTMLPopupMenuButtonRenderer}{render}
注意:它必须在一行,并且没有空格,你可以用*代替在相同package或class中不同的methods。在Windows中JITC_COMPILEOPT的选项用分号隔开,在Unix中则用冒号。
5).当然你也可以禁用JIT,这也是以前,比较简单的解决方法,但是同时带来的性能下降,要考虑是否能接受。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14019112/viewspace-611504/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14019112/viewspace-611504/