I say this because the lock in PoolableConnectionFactory.makeObject is there from the start. Secondly if you look closely at the first stacktrace you will see a second lock in the oracle driver:
at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:215)
- locked <0x48a1cd58> (a oracle.jdbc.ttc7.TTC7Protocol)
So even if the DBCP lock was removed then the oracle driver would be synchronized/locked on the logon method.
About your question of the driver.
oracle.jdbc.OracleDriver extends oracle.jdbc.driver.OracleDriver
The first one is the old location of the driver and is now an empty subclass to remain compatible.
You are probably using the thin driver. If possible switch to the oci driver. You can enable more oracle tracing with oci.
-- Dirk
Innovest Ken wrote:
hi all,
Got a problem after using the new v1.2 dbcp file. The tomcat will hang after sometime. I did a thread dump, and discover that all threads are waiting to get connection. But 1 thread is locking the org.apache.commons.dbcp.PoolableConnectionFactory.
The following thread 196 is locking the PoolableConnectionFactory while all other threads are waiting for the factory class...
And I also notice that although I have installed the
latest Oracle driver file, in the server.xml I put <value>oracle.jdbc.OracleDriver</value>, but the
thread dump below still shows
oracle.jdbc.driver.OracleDriver. Any idea why?
"http80-Processor196" daemon prio=1 tid=0x59f322f8 nid=0x298a waiting for monitor entry [aabfe000..aabff8d8] at oracle.net.ano.AuthenticationService.a(AuthenticationService) at oracle.net.ano.Ano.e(Ano) at oracle.net.ano.Ano.init(Ano) at oracle.net.ns.NSProtocol.connect(Unknown Source) at oracle.jdbc.ttc7.TTC7Protocol.connect(TTC7Protocol.java:1689) at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:215) - locked <0x48a1cd58> (a oracle.jdbc.ttc7.TTC7Protocol) at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:360) at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:521) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:325) at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37) at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290) - locked <0x49f62f40> (a org.apache.commons.dbcp.PoolableConnectionFactory) at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:771) at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95) at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
"http80-Processor200" daemon prio=1 tid=0x082aeb80 nid=0x2b54 waiting for monitor entry [a9bff000..a9bff8d8] at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290) - waiting to lock <0x49f62f40> (a org.apache.commons.dbcp.PoolableConnectionFactory) at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:771) at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95) at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
innovest
__________________________________
Do you Yahoo!?
Friends. Fun. Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
