如何收集java进程产生的coredump文件及相关数据

产品: AIX5.3 or AIX6.1
平台: p5,pSeries, RS/6000
解答:
java进程在异常终止时会产生coredump, 进程异常终止的原因有很多, 如错误的编译代码, 错误的配置, 错误的内存访问等. 问题可能很复杂, 所以仅收集java进程的coredump文件, 对问题的分析可能是不够的.
为了加快对问题的确定和解决, 用户可以按照以下步骤对系统做设置, 并收集相关数据发送到IBM做分析.

--------
系统设置
--------
1>
打开用户limit限制, 确保用户可以获得相关系统资源:
# chuser fsize=-1 data=-1 core=-1 <应用用户名称>
2>
将系统fullcore模式打开, 以获得完整的core文件:
# chdev -l sys0 -a fullcore=true
3>
确认以下文件集已在系统安装, 可以使用"lslpp -l "命令检查:
bos.net.uucp
bos.rte.control
bos.rte.serv_aid
4>
禁用 Java 信号处理:
Java142及Java131版本设置以下的环境变量:
export DISABLE_JAVADUMP=true
export IBM_NOSIGHANDLER=true
Java5版本使用以下的java选项:
-Xdump:system:none -Xdump:tool:exec="/usr/bin/gencore %pid core.%Y%m%d.%H%M%S.dmp",events=gpf
注意: 在执行完以上设置后, 需要用户重新登录系统使设置生效, 并重新启动应用程序.

--------
收集数据
--------
完成以上设置, 在问题出现后, 请收集以下数据:
1>
# 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
# tar -cf - *.out | compress -c > sysinfo.tar.Z
2>
使用snapcore命令收集java core文件
如果不确定core文件所在的位置,可以使用"errpt -a | pg"并查找以LABEL: CORE_DUMP开头的, PROGRAM NAME为java的错误日志,
在错误日志中条目为CORE FILE NAME的部分是表示core文件的位置。
snapcore命令收集的core文件存放在/tmp/snapcore/snapcore.pax.Z.
# snapcore
3>
将数据打包
# tar -cf xxx.yyy.zzz.tar sysinfo.tar.Z snapcore.pax.Z
注意: xxx.yyy.zzz为IBM问题编号, 可以通过拨打IBM 800技术支持热线获得.

-------------
上传数据到IBM
-------------
在将数据打包后, 上传到IBM ftp服务器, 由IBM工程师分析数据.
如果上传失败, 需要将文件重命名后, 重新上传
xxx.yyy.zzz.tar ---> xxx.yyy.zzz.1.tar

ftp testcase.boulder.ibm.com
login: anonymous
password: user@host.com
> cd /toibm/aix
> bin
> put xxx.yyy.zzz.tar
> quit
参与0

0同行回答

“答”则兼济天下,请您为题主分忧!

提问者

myciciy
IT顾问某金融科技公司
擅长领域: 服务器存储灾备

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2009-06-05
  • 关注会员:0 人
  • 问题浏览:5517
  • X社区推广