强制或生成jvm核心转储(IBM JVM)

use*_*319 17 java apache websphere jvm java-ee

可能重复:
我可以强制生成JVM崩溃日志文件吗?

如何在Java应用程序服务器上或一般情况下强制或生成JVM核心转储?

dev*_*per 20

问题(摘要): 要诊断与在WebSphere Application Server Community Edition上运行的客户应用程序的挂起或性能不佳相关的问题,将要求用户生成各种转储并将其发送给IBM支持人员进行诊断.

此技术说明解释了当WebSphere Application Server Community Edition作为操作系统服务运行时如何生成所需的转储.此技术说明适用于IBM Java SDK 1.5.0和IBM Java SDK 1.6.0

原因:当客户应用程序在IBM Java SDK 1.5.0或IBM Java SDK 1.6.0上使用WebSphere Application Server Community Edition时出现挂起或性能不佳,并且服务器作为操作系统服务运行时,相应的命令/ shell窗口用户无法使用服务器进程.因此,无法从键盘发送用户信号以触发转储.

解决问题:当JVM进程命令窗口可用时,生成转储很简单,如下所示:

Windows: 如果JVM设置配置为在用户信号处触发转储,请按CRTL+Break命令窗口以生成转储.

Linux:如果JVM设置配置为在用户信号处生成转储,请按CTRL+\shell窗口.

AIX:如果JVM设置配置为在用户信号处生成转储,请按CTRL+\shell窗口.

注意:为了在用户信号处生成java核心转储,系统核心转储,堆转储和快照转储,必须通过JVM选项配置转储代理,如下所示:

-Xdump:java+heap+system+snap:events=user
Run Code Online (Sandbox Code Playgroud)

有关如何配置转储代理的更多信息,请访问-Xdump.

但是,如果WebSphere Application Server Community Edition作为操作系统服务运行,则命令窗口可能不可用.在Windows上使用javaw.exe启动JVM进程时,也会出现这种情况.

在前面的情况下,用户需要找到JVM进程的相应进程ID,并使用操作系统供应商提供的工具或IBM提供的工具按照以下步骤生成转储.

Windows: 可以从Microsoft Dev工具站点下载WinDbg以生成系统核心转储.在WinDbg控制台上使用以下命令生成系统核心转储:

dump /f <dumpfile> 
Run Code Online (Sandbox Code Playgroud)

其中dumpfile包含目录路径和系统核心转储文件的名称.确保使用该/f选项而不是/ma.该/f生成完全转储,其中作为/ma生成小型转储.IBM Java SDK 1.5.0/1.6.0提供的jextract工具仅支持完全转储.

适用于Windows的SendSignal实用程序.为此,必须设置JVM以生成用户信号的转储.要在用户信号处生成Java核心转储,堆转储,系统核心转储和快照转储,必须在启动时向JVM提供以下选项:

-Xdump:java+heap+system+snap:events=user 
Run Code Online (Sandbox Code Playgroud)

注意:SendSignal实用程序可用于生成所有类型的转储,其中WinDbg仅生成系统核心转储.

Linux and AIX:Linux和AIX的信号是SIGQUIT.使用该命令发送用户信号以触发各种转储:

kill -3 <PID>  
Run Code Online (Sandbox Code Playgroud)

为此,必须设置JVM以在用户信号上生成转储.要在用户信号下生成Java核心转储,堆转储,系统核心转储和快照池,必须在启动时向JVM提供以下选项.

-Xdump:java+heap+system+snap:events=user 
Run Code Online (Sandbox Code Playgroud)

注意:必须使用jextract工具处理系统核心转储文件,并且必须将输出发送给IBM支持.来自遇到此问题的同一JVM的jextract应该用于处理系统核心转储:

<JAVA_HOME>/jre/bin/jextract <dumpfile>   
Run Code Online (Sandbox Code Playgroud)

其中dumpfile是系统核心转储的文件名.

这将生成一个zip文件.zip.需要将zip文件发送给IBM支持人员.