java线程死锁_Java线程死锁–案例研究

java线程死锁

本文将描述从在IBM JVM 1.6上运行的Weblogic 11g生产系统中观察到的最新Java死锁问题的完整根本原因分析。

此案例研究还将证明掌握线程转储分析技能的重要性; 包括用于IBM JVM Thread Dump格式。

环境规格

– Java EE服务器:Oracle Weblogic Server 11g和Spring 2.0.5 –操作系统:AIX 5.3 – Java VM:IBM JRE 1.6.0 –平台类型:门户和订购应用程序
监控和故障排除工具
– JVM线程转储(IBM JVM格式)– Compuware Server Vantage(Weblogic JMX监视和警报)

问题概述

从Compuware Server Vantage观察到并报告了一个严重的线程阻塞问题,该问题影响了我们的2台Weblogic 11g生产托管服务器,从而导致了最终用户的应用程序影响和超时情况。

事实的收集和验证

像往常一样,Java EE问题调查需要收集技术和非技术事实,因此我们可以得出其他事实和/或就根本原因进行结论。 在采取纠正措施之前,要对以下事实进行验证,以便得出根本原因:
·对客户有什么影响? 中(在16个中只有2个受管服务器/ JVM受影响)·受影响平台的最新更改? 是(新的与JMS相关的异步组件)·最近到受影响平台的流量增加了吗? 否·这个问题如何表现出来? 观察到线程突然增加,导致线程快速耗尽。·Weblogic托管服务器重新启动是否解决了问题? 是的,但是几个小时后问题又回来了(不可预测的间歇性模式)

结论1

该问题与间歇性卡住的线程行为有关,该行为当时仅影响少数Weblogic托管服务器

结论2

由于问题是断断续续的,因此不太可能出现全局根本原因,例如下游系统无响应

线程转储分析–第一遍

处理滞留的线程问题时,要做的第一件事是生成JVM线程转储。 无论您的环境规格和问题背景如何,这都是一条黄金法则。 JVM线程转储快照为您提供了有关活动线程及其当时正在执行的处理/任务类型的重要信息。
现在回到我们的案例研究,生成了一个IBM JVM线程转储(javacore.xyz格式),它确实揭示了以下Java线程死锁情况:

1LKDEADLOCK    Deadlock detected !!!
             
             
             NULL           ---------------------
             
             
             NULL           
             
             
             2LKDEADLOCKTHR  Thread '[STUCK] ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'' (0x000000012CC08B00)
             
             
             3LKDEADLOCKWTR    is waiting for:
             
             
             4LKDEADLOCKMON      sys_mon_t:0x0000000126171DF8 infl_mon_t: 0x0000000126171E38:
             
             
             4LKDEADLOCKOBJ      weblogic/jms/frontend/FESession@0x07000000198048C0/0x07000000198048D8: 
             
             
             3LKDEADLOCKOWN    which
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值