Database: Sybase
BasicResoucePool keep acquiring for new connections and not releasing faulty connections and crashed the database. The issue happened only when Sybase tempdb full, and the sequence as follow:
1) BasicResourcePool.AcquireTask.run()
2) BasicResourcePool.acquire()
3) PooledConnectionResourcePoolManager.acquireResource()
4) WrapperConnectionPoolDataSource.getPooledConnection()
4.1) Connection conn = nds.getConnection(user, password) -> Sybase return a connection successfully
5) new NewPooledConnection( conn, ..);
5.1) this.dflt_txn_isolation = con.getTransactionIsolation(); -> Return Exception: JZ0SJ: Metadata accessor information was not found on this database.
6) Exception throw back to BasicResourcePool.AcquireTask.run()
7) The fault connection still be kept somewhere in WrapperConnectionPoolDataSource
7) The connection pool repeat #1 again until it reach the number of attempt retry
8) The pool consumed all database connections and crash the database
hi,
thanks for the detailed report. i think that this should be fixed in a snapshot release i've just published, https://oss.sonatype.org/content/repositories/snapshots/com/mchange/c3p0/0.9.5-pre5-SNAPSHOT/c3p0-0.9.5-pre5-20130918.091851-3.jar
to see the detailed changes, see the github repo.
please give this a try, and let me know if it resolves your issue. thanks again!
oops. i cleaned up the fix a bit, a better snapshot would be https://oss.sonatype.org/content/repositories/snapshots/com/mchange/c3p0/0.9.5-pre5-SNAPSHOT/c3p0-0.9.5-pre5-20130918.093712-5.jar
User reports the issue resolved, in the current snapshot.