Java core的收集,Thread Hang,100%CPU等等
“首先要怎麼樣產生thread dump呢?在Linux底下,可以使用” kill -QUIT ”的指令,針對目前正在執行的Java程式process id來下產生thread dump指令。如果在Windows底下,就在正在執行這個java程式的視窗底下,按下 ,便會產生 他的thread dump。而thread dump通常會出現在系統的標準輸出裡面。”
Linux运行kill –3 pid这个问题不大。windows下没办法用这种方式对WebSphere Application Server收集javacore。如果是Notes或者一些其他的java程序可以用上面的方式来做。
下面具体说说WebSphere Application Server的收集方式
首先要怎麼樣產生thread dump呢?在Linux底下,可以使用” kill -QUIT ”的指令,針對目前正在執行的Java程式process id來下產生thread dump指令。如果在Windows底下,就在正在執行這個java程式的視窗底下,按下 ,便會產生 他的thread dump。而thread dump通常會出現在系統的標準輸出裡面。
Windows - wsadmin -host hostname -port SOAP_PORT -user adminuser -password adminpassword -c "$AdminControl invoke [$AdminControl completeObjectName type=JVM,process=WebSphere_Portal,*] dumpThreads"
Example:
C:/IBM/WebSphere168FC/wp_profile/bin>wsadmin -host rtp45.rtp.raleigh.ibm.com -port 10025 -user wpsadmin -password wpsadmin -c "$AdminControl invoke [$AdminControl completeObjectName type=JVM,process=WebSphere_Portal,*] dumpThreads"
注意process之后是server的名字,因为是WebSphere Portal Server,所以这里是WebSphere_Portal。如果是默认的WAS server应该server1。
Java Heap Dump
Invoke the generateHeapDump operation on a JVM MBean, for example,
Finding JVM objectName;
set objectName [$AdminControl queryNames WebSphere:type=JVM,process= ,node= ,*]Invoking the generateHeapDump operation on JVM MBean:
$AdminControl invoke $objectName generateHeapDump