我们的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)
someNumber号正在等待。我没看到任何东西锁着它。怎么会这样?
谢谢。
更新一些更详细的信息:
JDK版本是1.4.2.05