在 WebLogic Server 中获取线程转储的各种方法_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2197 | 回复: 0   主题: 在 WebLogic Server 中获取线程转储的各种方法        下一篇 
renruishen
注册用户
等级:新兵
经验:58
发帖:79
精华:0
注册:2011-12-25
状态:离线
发送短消息息给renruishen 加好友    发送短消息息给renruishen 发消息
发表于: IP:您无权察看 2015-5-22 14:51:02 | [全部帖] [楼主帖] 楼主

WebLogic Server (WLS) 和 Java 提供了若干用来生成线程转储的方法,详细信息如下。建议始终通过使用操作系统 (OS) 命令来获取线程转储,而不是使用 Java 类或管理控制台。因为如果控制台正处于挂起状态,用户将不能连接到它来生成线程转储。
1.在 WLS 从命令行脚本启动时,使用操作系统命令来获取线程转储:
  • 在 Windows OS 上,可以通过以下命令创建线程转储

    <ctrl>+<break> --  线程转储将生成到服务器标准输出中

  • 在与 POSIX 兼容的平台(例如,Solaris 和 Linux)上,首先使用 ps -ef | grep java 识别进程 ID (pid),然后运行

    kill -3 <pid> 2>&1

    信号 3 相当于 SIGQUIT。请注意,在 Solaris 中,线程转储在当前的 shell 中生成,但在 Linux 中,线程转储在启动 pid 指定的 java 进程的 shell 中生成.

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


--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论