Our J2ee server (which will remain unnamed for embarrassment reasons) slows down from time to time. I managed to dump the stream. And trying to analyze it. One of the things I don’t understand is some waiting on locks without detecting a blocking stream. Here is part of the stack trace of such a stream:
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)
Number somenumber just waiting. I do not see anything blocking. How can it be?
Thanks.
Update in more detail: jdk version - 1.4.2.05
source share