问题(摘要):要诊断与 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 进程命令窗口可用时,生成转储非常简单,如下所示:
窗户:如果将 JVM 设置配置为在用户信号处触发转储,请按命令窗口以生成转储。CRTL+Break
Linux:如果将 JVM 设置配置为在用户信号处生成转储,请按 shell 窗口。CTRL+\
艾克斯:如果将 JVM 设置配置为在用户信号处生成转储,请按 shell 窗口。CTRL+\
注: 为了在用户信号下生成 java 核心转储、系统核心转储、堆转储和快照转储,必须通过 JVM 选项配置转储代理,如下所示:
-Xdump:java+heap+system+snap:events=user
有关如何配置转储代理的详细信息,请访问 using 。-Xdump
但是,如果 WebSphere Application Server Community Edition 作为操作系统服务运行,则命令窗口可能不可用。当JVM进程在Windows上使用javaw.exe启动时,也会出现这种情况。
在上述情况下,用户需要找到 JVM 进程的相应进程 ID,并使用操作系统供应商提供的操作系统或 IBM 提供的工具,按照以下步骤生成转储。
窗户:WinDbg可以从Microsoft Dev tools站点下载,以生成系统核心转储。在 WinDbg 控制台上使用以下命令生成系统核心转储:
dump /f <dumpfile>
其中,转储文件包括目录路径和系统核心转储文件的名称。确保使用该选项而不是 。生成完整转储,其中 as 生成迷你转储。IBM Java SDK 1.5.0/1.6.0 提供的 jextract 工具仅支持完全转储。/f
/ma
/f
/ma
SendSignal utility for Windows.为此,必须设置 JVM 以在用户信号上生成转储。要在用户信号时生成 java 核心转储、堆转储、系统核心转储和快照转储,必须在启动时向 JVM 提供以下选项:
-Xdump:java+heap+system+snap:events=user
注意: SendSignal 实用程序可用于生成所有类型的转储,其中 WinDbg 仅生成系统核心转储。
Linux and AIX
:Linux 和 AIX 的信号是 。使用命令发送用户信号以触发各种转储:SIGQUIT
kill -3 <PID>
为此,必须设置 JVM 以在用户信号上生成转储。要在用户信号处生成 java 核心转储、堆转储、系统核心转储和快照集水坑,必须在启动时向 JVM 提供以下选项。
-Xdump:java+heap+system+snap:events=user
注: 必须使用 jextract 工具处理系统核心转储文件,并且必须将输出发送给 IBM 支持部门。应使用从遇到该问题的同一 JVM 中提取的 jet 来处理系统核心转储:
<JAVA_HOME>/jre/bin/jextract <dumpfile>
其中 dumpfile 是系统核心转储的文件名。
这将生成一个 zip 文件.zip。需要将 zip 文件发送给 IBM 支持部门。
-
如何使用Java中的RESTful Web服务获取远程/客户端IP地址? 我已经在我的项目中编写了Rest Web服务。Web服务调用可能来自不同 machine.so 我需要通过REST Web服务找出IP地址。 从这个请求.getRemoteAddr()使用这个。 但是我不能使用getRemoteAddr()。因为我的请
-
从包含大量文件的zip文件中提取1文件的最快方法是什么? 我尝试了但它们也缺少一些东西。 LZMA SDK不提供一种如何使用的文档/教程,这非常令人沮丧。没有 javadoc。 虽然7z jbinding没有提供一种简单的方法来只提取1个文件,但是,它只提供了提取zip文件
-
输入/输出流在销毁时是否关闭? Java 中的 InputStreams 和 OutputStreams 是否在销毁时关闭()?我完全理解这可能是不好的形式(特别是在C和C++世界中),但我很好奇。 另外,假设我有以下代码: 无名的FileInputStream是否在p.load
-
Java 程序中的字符串大小是否有任何限制? 我有一个字符串定义为 字符串 xx 我可以分配的字符数是否有任何限制? 2) 我正在将用户输入分配给此字符串 xx。70%的人只说一个字。有时他们给出一个大句子,所以想知道可
-