swaldman / c3p0

a mature, highly concurrent JDBC Connection pooling library, with support for caching and reuse of PreparedStatements.
http://www.mchange.com/projects/c3p0
Other
1.28k stars 338 forks source link

Sporadic java.sql.SQLException: No suitable driver #154

Open bhudgeons opened 3 years ago

bhudgeons commented 3 years ago

I'm on 0.9.5.4.

I have a working, running database pool that is functioning fine. Then, I sporadically get a stream of failures with these log messages. I would expect a java.sql.SQLException: No suitable driver to occur on startup, but on a running server (after many successful database calls, so the driver is obviously available), this is strange.

I'd appreciate any guidance.

13:38:59.586 [C3P0PooledConnectionPoolManager[identityToken->1bqq1heae13zvprf1ab6exp|16967704]-HelperThread-#0] WARN  c.m.v.resourcepool.BasicResourcePool - com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@1bf391f3 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception: 
java.sql.SQLException: No suitable driver
    at java.sql/java.sql.DriverManager.getDriver(DriverManager.java:298)
    at com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:285)
    at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:175)
    at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:220)
    at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:206)
    at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:203)
    at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1176)
    at com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1163)
    at com.mchange.v2.resourcepool.BasicResourcePool.access$700(BasicResourcePool.java:44)
    at com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1908)
    at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)
13:38:59.586 [C3P0PooledConnectionPoolManager[identityToken->1bqq1heae13zvprf1ab6exp|16967704]-HelperThread-#2] WARN  c.m.v.resourcepool.BasicResourcePool - Having failed to acquire a resource, com.mchange.v2.resourcepool.BasicResourcePool@61cf1ca5 is interrupting all Threads waiting on a resource to check out. Will try again in response to new client requests.
fschiettecatte commented 3 years ago

I have not seen this error before but it smells like something is running out of resources somewhere. Have you checked available resources on the VM and the underlying OS?