Я пытаюсь подключиться к RDS с помощью c3p0, когда не используется RDS, код работает, но не работает с RDS,
Чистая Java с DriverManager может создать соединение, заставляя меня поверить, что проблема с c3p0
connectionPool.setUser(user);
connectionPool.setPassword(password);
connectionPool.setJdbcUrl(jdbc);
try {
Connection con = connectionPool.getConnection();//fails after several seconds
con.isValid(1);
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
Connection con = DriverManager.getConnection(jdbc, user, password);
con.isValid(1);//true
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
но c3p0 обвиняет postgres
java.sql.SQLException: Соединения не могут быть получены из базовой базы данных!
на com.mchange.v2.sql.SqlUtils.toSQLException (SqlUtils.java:118)
в com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection (C3P0PooledConnectionPool.java:692)
в com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection (AbstractPoolBackedDataSource.java:140)
в моем коде, строка "connectionPool.getConnection ()"
Причина: com.mchange.v2.resourcepool.CannotAcquireResourceException: ResourcePool не удалось получить ресурс из его первичной фабрики или источника.
в com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable (BasicResourcePool.java:1469)
в com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource (BasicResourcePool.java:644)
в com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource (BasicResourcePool.java:554)
в com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutAndMarkConnectionInUse (C3P0PooledConnectionPool.java:758)
в com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection (C3P0PooledConnectionPool.java:685)
... еще 13
Вызывается: org.postgresql.util.PSQLException: этот ResultSet закрыт.
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.checkClosed (AbstractJdbc2ResultSet.java:2852)
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.setFetchSize (AbstractJdbc2ResultSet.java:1875)
в org.postgresql.jdbc4.Jdbc4Statement.createResultSet (Jdbc4Statement.java:37)
at org.postgresql.jdbc2.AbstractJdbc2Statement $ StatementResultHandler.handleResultRows (AbstractJdbc2Statement.java:221)
в org.postgresql.core.v3.QueryExecutorImpl.processResults (QueryExecutorImpl.java:1853)
в org.postgresql.core.v3.QueryExecutorImpl.execute (QueryExecutorImpl.java:255)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute (AbstractJdbc2Statement.java:561)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags (AbstractJdbc2Statement.java:405)
в org.postgresql.jdbc2.AbstractJdbc2Connection.execSQLUpdate (AbstractJdbc2Connection.java:382)
at org.postgresql.jdbc2.AbstractJdbc2Connection.getTransactionIsolation (AbstractJdbc2Connection.java:904)
в com.mchange.v2.c3p0.impl.NewPooledConnection. (NewPooledConnection.java:120)
в com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection (WrapperConnectionPoolDataSource.java:240)
в com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection (WrapperConnectionPoolDataSource.java:206)
в com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool $ 1PooledConnectionResourcePoolManager.acquireResource (C3P0PooledConnectionPool.java:203)
в com.mchange.v2.resourcepool.BasicResourcePool.doAcquire (BasicResourcePool.java:1138)
в com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess (BasicResourcePool.java:1125)
в com.mchange.v2.resourcepool.BasicResourcePool.access $ 700 (BasicResourcePool.java:44)
в com.mchange.v2.resourcepool.BasicResourcePool $ ScatteredAcquireTask.run (BasicResourcePool.java:1870)
в com.mchange.v2.async.ThreadPoolAsynchronousRunner $ PoolThread.run (ThreadPoolAsynchronousRunner.java:696)
Blockquote
Я пытался использовать connectionPool.setDriverClass, это не помогло
Я использую java11 и c3p0 из hibernate-c3p0 https://mvnrepository.com/artifact/org.hibernate/hibernate-c3p0/5.4.2.Final, пытался обновить до последней бета-версии, это не помогло