AIX 上的 Java 故障诊断:AIX 核心转储
2008-09-06 08:18:10 来源:WEB开发网必须重新启动应用程序才能使此更改生效。请注意,这会阻止在运行 kill -3 或引发其他任何导致进程终止的信号时创建 Javacore 和 Heapdump 文件。
禁用应用程序信号处理。
如果应用程序要处理 SIGQUIT、SIGILL、SIGFPE、SIGBUS、SIGABRT、SIGSYS 和 SIGSEGV 等信号,则应用程序可能需要禁用其信号处理程序。
例如,IBM MQ 在缺省情况下要处理 SIGILL、SIGFPE、SIGBUS 和 SIGSEGV 信号。为了获得理想的核心文件,可能需要通过设置环境变量来禁用 MQ 的那些信号处理程序。export MQS_NO_SYNC_SIGNAL_HANDLING=1
注意:请咨询 MQ 支持部门以验证那些设置,因为 MQ 可能随时间而更改。
您务必要知道自己的应用程序是否有信号处理以及如何禁用它们以生成核心文件。
弄清在何处设置那些环境变量。
可以在许多位置配置环境,具体取决于需要:
/etc/profile
/etc/csh.login
$HOME/.profile
$HOME/.cshrc
$HOME/.kshrc
应用程序启动和配置脚本
然而,我们不推荐您将其添加到 /etc/environment 文件。应用程序启动和配置脚本会覆盖所有其他设置。
收集数据
当出现问题时,我们的目标是收集尽可能多的信息,或者用于确定问题原因,或者用于为了解问题原因提供指导。问题可能在于操作系统(内核/库)、JVM(或 JIT)、应用程序 Java 本机接口(Java Native Interface,JNI)本机代码或第三方 JNI 代码。本部分包括一些从每个方面收集数据的命令。其中大多数命令都必须以 root 用户身份执行。
收集操作系统设置:
创建核心之后,运行以下命令:errpt -a > errpt.out
lslpp -lc > lslpp.out
instfix -i > instfix.out
bootinfo -K > bootinfo.out
lsattr -El sys0 > lsattr.out
lsps -s > lsps.out
更多精彩
赞助商链接