IBM JDK生成Dump文件的方法

https://www.cnblogs.com/wyb628/p/8567610.html    (分析工具使用说明)
https://blog.csdn.net/namesliu/article/details/7018086     (JavaDump文件说明)
https://www.oschina.net/question/129540_23220    (生成javadump、heapdump、systemdump文件的方法)
http://www.codeweblog.com/websphere-was-generated-javacore/
https://www-01.ibm.com/support/docview.wss?uid=swg21384926    (was下生成heapdump文件的方法)
http://wpcertification.blogspot.com/2009/07/manually-generating-heap-dump.html    (was下生成heapdump文件的方法[写成脚本了])
https://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.ibm.java.api.80.doc/com.ibm.jvm.ras/index.html
https://docs.oracle.com/javase/8/docs/jdk/api/attach/spec/index.html   (VirtualMachine API说明, 这个VirtualMachine类只在1.6以上的版本才有)
https://www.cnblogs.com/pengineer/p/5086428.html   (Hotspot JVM的常用选项)
https://docs.oracle.com/javase/8/docs/jre/api/management/extension/com/sun/management/HotSpotDiagnosticMXBean.html   (com.sun.management.HotSpotDiagnosticMXBean的API文档)
https://docs.oracle.com/javase/8/docs/jre/api/management/extension/com/sun/management/package-summary.html   (com.sun.management这个包的API[包括所有类])
com.sun.managementOperatingSystemMXBean可以获取操作系统信息



操作系统的转储文件可用于IBM和HotSpot JVM。对于IBM JVM,您可以使用jextract工具(JDK 自带)来创建转储文件,并
将它们直接加载到Memory Analyzer中;对于HotSpot JVM,您可以使用jmap工具从内核转储文件中提取堆Dump。
(我们将在文章后面内容中讨论这两种技术。)然而,在一些操作系统上,您必须保证这个进程在创建内核转储文件之前
具有足够的ulimit。如果ulimit不正确,那么您必须修改它们,并重新启动这个进程,才能够收集一个转储文件。


ibm jdk manual generate heapdump

static com.ibm.jvm.Dump.JavaDump()
static com.ibm.jvm.Dump.HeapDump()
static com.ibm.jvm.Dump.SystemDump()

static com.ibm.jvm.Dump.javaDumpToFile()
static com.ibm.jvm.Dump.heapDumpToFile()
static com.ibm.jvm.Dump.systemDumpToFile()


static com.ibm.jvm.Dump.javaDumpToFile(java.lang.String fileNamePattern)
static com.ibm.jvm.Dump.heapDumpToFile(java.lang.String fileNamePattern)
static com.ibm.jvm.Dump.systemDumpToFile(java.lang.String fileNamePattern)
static com.ibm.jvm.Dump.triggerDump(java.lang.String dumpOptions)

【注】static类型的方法不用初始化,在类里直接写com.ibm.jvm.Dump.HeapDump()就可以被执行,在需要生成HeapDump文件的时候手动触发。这个com.ibm.jvm.Dump.HeapDump()接口要借助Java Attach API来执行,因为这个接口没有类似pid这样的参数,Java Attach API中VirtualMachine类有attach()方法,这个attach可以接收pid参数,然后再调用VirtualMachine类的loadAgent方法把你自己写的jar加载到jvm里并运行,你自己写的类必须是main方法的类。

类似set PRE_CLASSPATH=%DOMAIN_HOME%/lib/antlr-2.7.6.jar
java -cp %DOMAIN_HOME%/lib/mydump.jar com.shihuan.dump.genete.MyHeapDump


AIX: gencore   这个命令必须有dbx组件支持。
Linux: gcore   这个命令必须有gdb组件支持。
上面的命令跟kill -6 pid是一样的作用,但kill -6 pid是系统级别的信号,不需要组件支持。


tcpdump不是IBM JDK的内容,但需要关注。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值