Hi, thanks for the detailed answer.
I switched to
c3p0-0.9.0-pre6 here is my config:
Code:
Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource@64e265d0[ acquireIncrement -> 5,
acquireRetryAttempts -> 30,
acquireRetryDelay -> 1000,
autoCommitOnClose -> false,
automaticTestTable -> null,
breakAfterAcquireFailure -> false,
checkoutTimeout -> 0,
connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester,
description -> null,
driverClass -> oracle.jdbc.driver.OracleDriver,
factoryClassLocation -> null,
forceIgnoreUnresolvedTransactions -> false,
identityToken -> 64e265d0,
idleConnectionTestPeriod -> 10,
initialPoolSize -> 25,
jdbcUrl -> jdbc:oracle:thin:@xxxx:xxx:xxxx,
loginTimeout -> 0,
maxIdleTime -> 0,
maxPoolSize -> 100,
maxStatements -> 0,
maxStatementsPerConnection -> 0,
minPoolSize -> 10,
numHelperThreads -> 10,
preferredTestQuery -> Select 1 from dual,
properties -> {user=******, password=******},
propertyCycle -> 300,
testConnectionOnCheckin -> false,
testConnectionOnCheckout -> true,
usesTraditionalReflectiveProxies -> false ] --
After doing two load test the following exceptions occured:
Code:
com.mchange.v2.resourcepool.BasicResourcePool (4_1403_1) D06B176D551B13DCEFE6AE93255C982B - com.mchange.v2.resourcepool.BasicResourcePool@1f0dc656 -- an attempt to checkout a resource was interrupted: some other thread must have either interrupted the Thread attempting checkout, or close() was called on the pool. --
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:230)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:232)
at com.mchange.v2.c3p0.PoolBackedDataSource.getConnection(PoolBackedDataSource.java:94)
at com.mchange.v2.c3p0.ComboPooledDataSource.getConnection(ComboPooledDataSource.java:521)
java.sql.SQLException: An SQLException was provoked by the following failure: java.lang.InterruptedException
at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:104)
at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:65)
at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:62)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:238)
at com.mchange.v2.c3p0.PoolBackedDataSource.getConnection(PoolBackedDataSource.java:94)
at com.mchange.v2.c3p0.ComboPooledDataSource.getConnection(ComboPooledDataSource.java:521)
This exception only occurred once in many test-runs.
java.sql.SQLException: Connection is invalid
Occurred one time only too. Before swichting to c3p0-0.9.0-pre6 this exception was thrown quite frequently.
java.sql.SQLException: E/A-Exception: Socket closed
Stills occurrs very frequent, but only at one point of the application were long running queries are executed. No other sql-statements are affected, only one line of code. There are about 15 points in the application were sql is executed but only one point were the E/A Exception is thrown. I have checked all statements if they are closed with try/catch/finally several times. I can't tell how many sql-statements are executed in a test-run, but certainly several hundreds in about 3 minutes.