網上有很多方法,ibm官方也提供了。但是,好奇怪,好像只有百度博客的一片文章提出要先設置環境條目或定制屬性,否則命令不生效。
我測試了很多種方法,只有一種生效。貼出來,給需要的人看看。
1:服務器-->服務器類型-->WebSphere Application Server
2:點擊進入server1
3:如果是was7的話
服務器基礎機構-->管理-->定制屬性
如果的was6的話
java進程和管理-->環境條目
4:分別新建以下屬性,並切記保存,注意不要有多余的空格
名稱 值
IBM_HEAPDUMP TRUE
IBM_HEAPDUMPDIR d:/ww
IBM_HEAPDUMP_OUTOFMEMORY TRUE
IBM_HEAP_DUMP TRUE
IBM_JAVADUMP_OUTOFMEMORY TRUE
IBM_JAVA_HEAPDUMP_TEXT TRUE
5:確認無誤后,重啟websphere,否則不生效
6:打開cmd,進入websphere安裝目錄,<was_home>\AppServer\bin,執行wsadmin.bat
導出javacore的命令:
set jvm [$AdminControl completeObjectName type=JVM,process=server1,*]
$AdminControl invoke $jvm dumpThreads
導出heapdump的命令:
set objectName [$AdminControl queryNames WebSphere:type=JVM,process=server1,*]
$AdminControl invoke $objectName generateHeapDump
7:導出javacore****.txt截圖:
導出heapdump****.txt截圖:
沒有拋錯的話就是正常
導出的文件在
was7在:<was_home>\AppServer\profiles\AppSrv01 (包括.phd文件和.txt文件)
was6在:d:ww文件夾
截圖:
備注:
目前已知的分析工具
ha452.jar
ha39.jar
別的還有,但是沒試過,不多講。