在websphere下面手工产生HeapDump

查找 JVM objectName:

<wsadmin> set objectName [$AdminControl queryNames 

WebSphere:type=JVM,process=<servername>,node=<nodename>,*]  

对 JVM MBean 调用 generateHeapDump 操作:

<wsadmin> $AdminControl invoke $objectName generateHeapDump

其中:

$是使用其值替换变量名的 Jacl 运算符

invoke是命令

generateHeapDump是要调用的操作

<servername>是服务器的名称,将在该服务器上生成堆转储

<nodename>是 <servername> 所属的节点

具体操作

./wsadmin.sh

WASX7029I: For help, enter: "$Help help"

wsadmin>set objectName [$AdminControl queryNames WebSphere:type=JVM,process=server-2,node=RHEL2Node01,*]

WebSphere:name=JVM,process=server-2,platform=proxy,node=RHEL2Node01,j2eeType=JVM,J2EEServer=server-2,version=7.0.0.29,type=JVM,mbeanIdentifier=JVM,cell=RHEL2Cell01,spec=1.0

wsadmin>$AdminControl invoke $objectName generateHeapDump

/opt/IBM/WAS7/AppServer/profiles/AppSrv01/./heapdump.20130731.094218.1585.0001.phd

另外的方法,

先设置环境变量

IBM_HEAP_DUMP=true,

重新启动websphere

采用kill -3 产生threaddump和heapdump。这种方法没试过,

kill -3 产生threaddump是不用设置环境变量的。

使用ISA进行监控,还是很方便的,ISA(IBM Support Assistant Workbench),

一般WebSphere都支持了health center的功能,在WebSphere安装目录下下查找一下healthcenter.jar,

有设置一下虚拟机的参数 -agentlib:healthcenter -Xtrace:output=perfmon.out,重启服务器。

连接上去后



 

猜你喜欢

转载自xieyj.iteye.com/blog/1915983