IBM JDK
1使用wasadmin
如何生成javacore和heapdump
进入wsadmin
D:\IBM\WebSphere\AppServer\bin>wsadmin -user wasadmin -password password
生成javacore
设置jvm环境变量:
wsadmin>set jvm [$AdminControl completeObjectName type=JVM,process=server1,*]
生成javacore文件:
wsadmin>$AdminControl invoke $jvm dumpThreads
生成heapdump
找到JVM对象名字:
wsadmin>set objectName [$AdminControl queryNames WebSphere:type=JVM,process=server1,*]
生成heapdump文件:
wsadmin>$AdminControl invoke $objectName generateHeapDump
IBMJDK
1 JAVACORE
1.1 kill -3 pid 尝试IBM1.7 OK ORACLE1.7不OK
1.2 IBMJDK按如下内容编辑成javacore.jsp文件 放到应用代码文件中并通过网页访问该jsp (不用重启中间件)
<% com.ibm.jvm.Dump.JavaDump(); %>
1.3 使用SendSignal工具 见附件 (该方法会直接把进程杀掉)
1.4 ORACLE JDK自带全能工具jvisualvm.exe
1.5 ORACLE JDK自带工具 jstack 也可以使用jstack -F -l 15666 当15666hang住了
HEAPDUMP
2.1 IBMJDK按如下内容编辑成heapdump.jsp文件 放到应用代码文件中并通过网页访问该jsp (不用重启中间件)
<% com.ibm.jvm.Dump.HeapDump(); %>
2.2 ORACLE JDK自带全能工具jvisualvm.exe
2.3 ORACLE JDK自带工具 ./jmap -dump:format=b,file=mem.hprof 15666
2.4 ORACLE JDK 在JVM参数中加上 如下参数 当产生OOM的时候自动残生heapdump
-XX:+HeapDumpOnOutOfMemoryError
在win上使用命令查询java的信息
wmic process where name="java.exe" get caption,commandline,processID
涉及到的工具见附件
https://files.cnblogs.com/files/qtong/javacore%26heapdumpTools.zip