Since you have the problem with both 1.1 & 1.2 we can conclude it is
more likely to be an oracle driver/connection problem.
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: commons-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-user-help@jakarta.apache.org
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org
|