帮助部分挂起的j2ee服务器的Java线程转储

时间:2010-04-13 19:37:42

标签: java debugging java-ee stack-trace

我们的J2ee服务器(出于尴尬的原因仍然无名)会不时地大幅减速。我设法创建了一个线程转储。并尝试分析它。我不明白的一件事是有些人在没有找到锁定线程的情况下等待锁定。这是这种线程的堆栈跟踪的一部分:

waiting for monitor entry []
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:781)
- waiting to lock <0xsomenumber> (a org.apache.commons.pool.impl.GenericObjectPool)
at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)

一些号码只等待。我没有看到任何锁定它。怎么会这样?

感谢。

更新更详细: jdk版本为1.4.2.05

1 个答案:

答案 0 :(得分:2)

使用JDK中的JConsole连接到您的应用程序服务器,并使用“线程”窗格中的“检测死锁”按钮。