请教java Thread DUMP分析问题

jason_864 发布于 2014/01/07 20:05
阅读 1K+
收藏 1

如何分析java Thread dump文件,从而找到问题的根源,以下面信息为例子:

是否为正常的日志信息,因为锁是正常释放的??

"ExecuteThread: '17' for queue: 'JMS.TimerClientPool'" id=139 idx=0x250 tid=321304 prio=5 alive, in native, waiting, daemon
    -- Waiting for notification on: weblogic/kernel/ExecuteThread@0x1e2615d0[fat lock]
    at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/Object;)Z(Native Method)
    at java/lang/Object.wait(J)V(Native Method)
    at java/lang/Object.wait(Object.java:429)
    at weblogic/kernel/ExecuteThread.waitForRequest(ExecuteThread.java:154)
    ^-- Lock released while waiting: weblogic/kernel/ExecuteThread@0x1e2615d0[fat lock]
    at weblogic/kernel/ExecuteThread.run(ExecuteThread.java:174)
    at jrockit/vm/RNI.c2java(IIIII)V(Native Method)
    -- end of trace
下面的又是该如何分析?

从dump日志中可以看到线程是阻塞的状态,等待获取 java/lang/String@0x12442b88

但是该锁具体是哪个如何分析?


"ExecuteThread: '2' for queue: 'weblogic.socket.Muxer'" id=93 idx=0x198 tid=320415 prio=5 alive, in native, blocked, daemon
    -- Blocked trying to get lock: java/lang/String@0x12442b88[fat lock]
    at jrockit/vm/Threads.waitForUnblockSignal()V(Native Method)
    at jrockit/vm/Locks.fatLockBlockOrSpin(Locks.java:1630)
    at jrockit/vm/Locks.fatLockReacquire(Locks.java:1865)
    at jrockit/vm/Locks.lockFat(Locks.java:1736)
    at jrockit/vm/Locks.monitorEnterSecondStage(Locks.java:1277)
    at jrockit/vm/Locks.monitorEnter(Locks.java:2389)
    at weblogic/socket/PosixSocketMuxer.processSockets(PosixSocketMuxer.java:91)
    at weblogic/socket/SocketReaderRequest.execute(SocketReaderRequest.java:32)
    at weblogic/kernel/ExecuteThread.execute(ExecuteThread.java:224)
    at weblogic/kernel/ExecuteThread.run(ExecuteThread.java:183)
    at jrockit/vm/RNI.c2java(IIIII)V(Native Method)
    -- end of trace

Blocked lock chains

===================
Chain 2:
"ExecuteThread: '1' for queue: 'weblogic.socket.Muxer'" id=92 idx=0x194 tid=320414 waiting for java/lang/String@0x12442b88 held by:
"ExecuteThread: '2' for queue: 'weblogic.socket.Muxer'" id=93 idx=0x198 tid=320415 in chain 1


Open lock chains
================
Chain 1:
"ExecuteThread: '0' for queue: 'weblogic.socket.Muxer'" id=91 idx=0x190 tid=320413 waiting for java/lang/String@0x12442b88 held by:
"ExecuteThread: '2' for queue: 'weblogic.socket.Muxer'" id=93 idx=0x198 tid=320415 (active)

谢谢!



加载中
0
YuanyuanL
YuanyuanL
你好,感谢你的关注,那篇文章是我推荐给开源中国,然后oscer们翻译的,然后就是Java线程转储这个我也是刚开始学习,也没特别深的了解,所以咱们一起学习吧。
j
jason_864
OK,多谢
0
南湖船老大
南湖船老大
难道不是  weblogic.socket.Muxer 这个类吗?
j
jason_864
足下可否说详细一点? 谢谢!
返回顶部
顶部