文章主题
本文详细介绍如何获取Agile PLM运行时的Java Thread Dump信息。由于Thread Dump只是描述java线程瞬间的数据,因此在重现问题过程中,按照一定频率确保捕获3次以上的Thread Dump。
Oracle WebLogic Server
Windows平台
- Weblogic前台运行方式
编辑startAgile.cmd(或者集群下startAgileCluster.cmd),添加红色部分
%JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS% -Dweblogic.Name=%SERVER_NAME% … weblogic.Server >c:/temp/mydump.log
重启后,在命令行窗口按键Ctrl+Break,相应的Thread Dump会写到c:/temp/mydump.log文件中
- Weblogic后台以service的方式启动
在任务管理器中获取bea weblogic的进程ID
运行thdump ,比如
Thread Dump会写到agileDomain/stdout.log文件中M:\downloads\thdump>thdump 620 Dump process info for PID: 620. Injecting M:\downloads\thdump\inspect.dll... [Succeeded]
Linux/Solaris平台
编辑startAgile.cmd(或者集群下startAgileCluster.cmd),添加红色部分
%JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS% -Dweblogic.Name=%SERVER_NAME% … weblogic.Server >/opt/mydump.log
重启后,使用“ps -ef|grep Weblogic.Server”或者“ps -ef|grep java” 获得PID
再kill -3
Thread Dump会写到/opt/mydump.log文件中
Oracle Application Server
首先获取OC4J的PID
Windows平台上使用thdump工具,linux/solaris平台使用kill -3
Thread Dump会写到OAS_HOME\opmn\logs\OC4J~home~default-island~1.log文件中
Thdump工具
Thdump工具下载: thdump.zip