我有一个部署在JBoss 6x中的Java/Java EE Web应用程序。死锁 - 在Java EE Web应用程序中阻塞的线程
有时候应用程序会停下来,看起来像是死锁状态,很多线程处于BLOCKED状态,正如在最后粘贴的Thread Dump片段中看到的那样。
问题:
1.什么是交易收割者工作者 - 它锁定了哪些资源?
2.这是JTA问题吗?是什么造成的。我如何进行调查,进一步解决这个问题?
3.几乎有10个线程处于BLOCKED状态,具有类似的堆栈跟踪。这个问题可能是由db端出错导致的
任何帮助非常感谢。
"ajp-0.0.0.0-8809-19" - Thread [email protected]
java.lang.Thread.State: BLOCKED
at com.arjuna.ats.arjuna.coordinator.BasicAction.removeChildThread(BasicAction.java:650)
- waiting to lock <7c0d6> (a com.arjuna.ats.internal.jta.transaction.arjunacore.AtomicAction) owned by "Transaction Reaper Worker 44" [email protected]
at com.arjuna.ats.internal.arjuna.thread.ThreadActionData.purgeActions(ThreadActionData.java:248
....
....
Locked ownable synchronizers:
- locked <ed3045> (a java.util.concurrent.locks.ReentrantLock$FairSync)
"Transaction Reaper Worker 44" - Thread [email protected]
java.lang.Thread.State: WAITING
at sun.misc.Unsafe.park(Native Method)
- waiting to lock <ed3045> (a java.util.concurrent.locks.ReentrantLock$FairSync) owned by "ajp-0.0.0.0-8809-19" [email protected]
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
.....
at com.arjuna.ats.arjuna.coordinator.BasicAction.doAbort(BasicAction.java:2902)
at com.arjuna.ats.arjuna.coordinator.BasicAction.doAbort(BasicAction.java:2881)
at com.arjuna.ats.arjuna.coordinator.BasicAction.Abort(BasicAction.java:1602)
- locked <7c0d6> (a com.arjuna.ats.internal.jta.transaction.arjunacore.AtomicAction)
at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.cancel(TwoPhaseCoordinator.java:119)
at com.arjuna.ats.arjuna.AtomicAction.cancel(AtomicAction.java:212)
at com.arjuna.ats.arjuna.coordinator.TransactionReaper.doCancellations(TransactionReaper.java:367)
at com.arjuna.ats.internal.arjuna.coordinator.ReaperWorkerThread.run(ReaperWorkerThread.java:79)
你使用的是库的版本?这可能已经被修复了 – Eugene 2013-04-23 07:29:45
Eugene>哪个Libarary? – Jasper 2013-04-23 07:56:09
jbossjta。看看yom pom.xml。你有吗? – Eugene 2013-04-23 07:59:34