利用weblogic.Admin以及WLST进行thread dump
转自:http://bbs.weblogicfans.net/redirect.php?tid=237&goto=lastpost
?
1、weblogic816
C:\Documents and Settings\tony>java -cp E:\bea816\weblogic81\Lock@c2bce4[/email] WAITING?
? ?? ???java.lang.Object.wait(Native Method)?
? ?? ???java.lang.Object.wait(Object.java:474)?
? ?? ???java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)?
"main" waiting for lock [email=weblogic.t3.srvr.T3Srvr@ff2b7c]weblogic.t3.srvr.T3Srvr@ff2b7c[/email] WAITING?
? ?? ???java.lang.Object.wait(Native Method)?
? ?? ???java.lang.Object.wait(Object.java:474)?
? ?? ???weblogic.t3.srvr.T3Srvr.waitForDeath(T3Srvr.java:747)?
? ?? ???weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:396)?
? ?? ???weblogic.Server.main(Server.java:67)?
The Thread Dump for server AdminServer?
has been successfully written to /opt/bea10/threaddump1.txt?
利用py文件来生成thread dump
(1).在已经进入了wlst的? ?? ???weblogic.work.ExecuteThread@18a290f[/email] WAITING?
? ?? ???java.lang.Object.wait(Native Method)?
....................?
The Thread Dump for server AdminServer?
has been successfully written to /opt/bea10/threaddump2.txt?
Exiting WebLogic Scripting Tool.?
下面是 threaddumpadmin.py的内容:?
connect('weblogic','weblogic','t3://192.168.0.55:7001')?
threadDump(writeToFile='true', fileName='/opt/bea10/threaddump3.txt')?
exit()
?
?
?
?
?
注:
WLS816利用weblogic.Admin生成thread_dump,仅支持的SUN与JRockit,因为它是使用bea提供的native jvm hook生成的,对于HP或IBM的JDK它是不支持的。
进行thread dump,在unix环境下,最保险的办法是kill -3。因为无论是weblogic.Admin还是wslt,它都是在目标jvm之外的,如果碰到一些特别的场景,如线程耗尽那些,可能这些命令不能正常工作。