部分挂起的j2ee服务器的Java线程转储帮助
我们的J2ee服务器(由于尴尬的原因将保持匿名)有时会急剧减速。我已经创建了一个线程转储。并试图分析它。我不明白的一件事是,有些人在等待锁时没有找到锁线程。以下是该线程的堆栈跟踪的一部分:部分挂起的j2ee服务器的Java线程转储帮助,java,debugging,jakarta-ee,stack-trace,Java,Debugging,Jakarta Ee,Stack Trace,我们的J2ee服务器(由于尴尬的原因将保持匿名)有时会急剧减速。我已经创建了一个线程转储。并试图分析它。我不明白的一件事是,有些人在等待锁时没有找到锁线程。以下是该线程的堆栈跟踪的一部分: waiting for monitor entry [] at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:781) - waiting to lock <0xsomenumber&
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)
正在等待监视器条目[]
位于org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:781)
-等待锁定(org.apache.commons.pool.impl.GenericObject池)
位于org.apache.commons.dbcp.poolgDataSource.getConnection(poolgDataSource.java:96)
位于org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
这个数字只是等待而已。我没看到有什么东西锁着它。这怎么可能
谢谢
更详细的更新:jdk版本是1.4.2.05使用jdk中的JConsole连接到应用程序服务器,并使用线程窗格上的“检测死锁”按钮。我没有提到我们正在使用jdk 1.4。因此JConsole不可用。我将看一下将数据库连接释放回连接池的代码。您描述的症状听起来像是池的可用连接不足。