WebLogic Server (WLS) 和 Java 提供了若干用来生成线程转储的方法,详细信息如下。建议始终通过使用操作系统 (OS) 命令来获取线程转储,而不是使用 Java 类或管理控制台。因为如果控制台正处于挂起状态,用户将不能连接到它来生成线程转储。1.在 WLS 从命令行脚本启动时,使用操作系统命令来获取线程转储:2.使用 beasvc(适用于 WLS 10.3.5 以及之前的版本):beasvc -dump -svcname:<service_name>
- service_name 是运行服务器实例的 Windows 服务(例如,mydomain_myserver)
3.使用 wlsve(从 10.3.6 到 12.1.1):wlsve -dump -svcname:<service_name>
4.使用 weblogic.WLST:
setDomain.cmd or setDomain.sh depending on the OS
java weblogic.WLST
connect("<username>","<password>","t3://<url>:<port>")
threadDump()
线程转储将在 Thread_Dump_AdminServer.txt 中生成。
5.在命令行或 shell 中,可以通过以下命令(在 WLS 9.0 中已弃用)生成线程转储:
setDomain.cmd or setDomain.sh depending on the OS
java weblogic.Admin <url>:<port> -username <username> -password <password> THREAD_DUMP
线程转储将生成在规定的服务器标准输出中.
6.在 WLS 管理控制台中,可以通过导航到“服务器”->“<server_name>”->“监视”->“转储线程堆栈”来创建线程转储。此方法可能会导致线程转储被截断或不完整.
7.用 jstack:
jstack <pid> or jstack -l <pid> to print additional information about locks
8.从 JRockit 命令行中:
jrcmd <pid> print_threads
--转自