Postgres - Spring 5,C3p0连接池错误

时间:2018-06-16 14:30:36

标签: java postgresql hibernate spring-mvc c3p0

我正在尝试使用postgres 10.4创建一个连接池,在c3p0的帮助下使用Spring 5和Hibernate 5,但我经常遇到以下错误:

  Jun 16, 2018 7:23:32 PM org.hibernate.Version logVersion
    INFO: HHH000412: Hibernate Core {5.2.12.Final}
    Jun 16, 2018 7:23:32 PM org.hibernate.cfg.Environment <clinit>
    INFO: HHH000206: hibernate.properties not found
    Jun 16, 2018 7:23:32 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
    INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
    Jun 16, 2018 7:23:32 PM org.hibernate.engine.jdbc.connections.internal.ConnectionProviderInitiator initiateService
    INFO: HHH000130: Instantiating explicit connection provider: org.hibernate.c3p0.internal.C3P0ConnectionProvider
    Jun 16, 2018 7:23:32 PM org.hibernate.c3p0.internal.C3P0ConnectionProvider configure
    INFO: HHH010002: C3P0 using driver: org.postgresql.Driver at URL: jdbc:postgresql://localhost/words
    Jun 16, 2018 7:23:32 PM org.hibernate.c3p0.internal.C3P0ConnectionProvider configure
    INFO: HHH10001001: Connection properties: {handling_mode=DELAYED_ACQUISITION_AND_HOLD, user=fred, password=****}
    Jun 16, 2018 7:23:32 PM org.hibernate.c3p0.internal.C3P0ConnectionProvider configure
    INFO: HHH10001003: Autocommit mode: false
    Jun 16, 2018 7:23:32 PM com.mchange.v2.log.MLog 
    INFO: MLog clients using java 1.4+ standard logging.
    Jun 16, 2018 7:23:32 PM com.mchange.v2.c3p0.C3P0Registry 
    INFO: Initializing c3p0-0.9.5.2 [built 08-December-2015 22:06:04 -0800; debug? true; trace: 10]
    Jun 16, 2018 7:23:33 PM org.hibernate.c3p0.internal.C3P0ConnectionProvider configure
    INFO: HHH10001007: JDBC isolation level: <unknown>
    Jun 16, 2018 7:23:33 PM com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource 
    INFO: Initializing c3p0 pool... com.mchange.v2.c3p0.PoolBackedDataSource@f1af1c90 [ connectionPoolDataSource -> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource@39ee1b4 [ acquireIncrement -> 1, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, contextClassLoaderSource -> caller, debugUnreturnedConnectionStackTraces -> false, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, forceSynchronousCheckins -> false, identityToken -> 1hge1399w2hp2jwx2v281|4b47133c, idleConnectionTestPeriod -> 0, initialPoolSize -> 1, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 500, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 20, maxStatements -> 3, maxStatementsPerConnection -> 0, minPoolSize -> 1, nestedDataSource -> com.mchange.v2.c3p0.DriverManagerDataSource@e4a3bb1a [ description -> null, driverClass -> null, factoryClassLocation -> null, forceUseNamedDriverClass -> false, identityToken -> 1hge1399w2hp2jwx2v281|39426395, jdbcUrl -> jdbc:postgresql://localhost/words, properties -> {handling_mode=DELAYED_ACQUISITION_AND_HOLD, user=******, password=******} ], preferredTestQuery -> null, privilegeSpawnedThreads -> false, propertyCycle -> 0, statementCacheNumDeferredCloseThreads -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false; userOverrides: {} ], dataSourceName -> null, extensions -> {}, factoryClassLocation -> null, identityToken -> 1hge1399w2hp2jwx2v281|2607e5d0, numHelperThreads -> 3 ]
    Jun 16, 2018 7:24:03 PM com.mchange.v2.resourcepool.BasicResourcePool 
    WARNING: com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@512f5904 -- 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: 
    org.postgresql.util.PSQLException: This ResultSet is closed.
        at org.postgresql.jdbc2.AbstractJdbc2ResultSet.checkClosed(AbstractJdbc2ResultSet.java:2654)
        at org.postgresql.jdbc2.AbstractJdbc2ResultSet.setFetchSize(AbstractJdbc2ResultSet.java:1771)
        at org.postgresql.jdbc4.Jdbc4Statement.createResultSet(Jdbc4Statement.java:39)
        at org.postgresql.jdbc2.AbstractJdbc2Statement$StatementResultHandler.handleResultRows(AbstractJdbc2Statement.java:211)
        at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1773)
        at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:512)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:374)
        at org.postgresql.jdbc2.AbstractJdbc2Connection.execSQLUpdate(AbstractJdbc2Connection.java:263)
        at org.postgresql.jdbc2.AbstractJdbc2Connection.getTransactionIsolation(AbstractJdbc2Connection.java:775)
        at com.mchange.v2.c3p0.impl.NewPooledConnection.<init>(NewPooledConnection.java:120)
        at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:240)
        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:1138)
        at com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1125)
        at com.mchange.v2.resourcepool.BasicResourcePool.access$700(BasicResourcePool.java:44)
        at com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1870)
        at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)

我试过了很多东西,但它仍然没有用。

db.properties:

MySQL连接属性

mysql.driver=org.postgresql.Driver
mysql.jdbcUrl=jdbc:postgresql://localhost/words
mysql.username=fred
mysql.password=secret

Hibernate属性

hibernate.show_sql=true
#hibernate.hbm2ddl.auto=validate
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect

C3P0属性

hibernate.c3p0.min_size=1
hibernate.c3p0.max_size=20
hibernate.c3p0.acquire_increment=1
hibernate.c3p0.timeout=500
hibernate.c3p0.max_statements=3

1 个答案:

答案 0 :(得分:0)

在pom.xml中替换postgress驱动程序后

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.2.2</version>
</dependency>

错误已被删除。