【发布时间】:2019-03-23 07:33:13
【问题描述】:
在 Windows 机器中连接到 postgress 数据库时出现以下异常。有人可以帮忙吗
使用 c3p0-0.9.5.2.jar
例外:
2018-09-26 15:53:41,841 错误, com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run ,资源池永久损坏! [com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@87274ea] (因为一系列 20 次收购尝试失败。) 2018-09-26 15:53:41,841 错误, com.mchange.v2.resourcepool.BasicResourcePool.unexpectedBreak , com.mchange.v2.resourcepool.BasicResourcePool@735b478 -- 出乎意料 坏了!!!
com.mchange.v2.resourcepool.ResourcePoolException:意外中断 堆栈跟踪!在 com.mchange.v2.resourcepool.BasicResourcePool.unexpectedBreak(BasicResourcePool.java:974) 在 com.mchange.v2.resourcepool.BasicResourcePool.access$1000(BasicResourcePool.java:44) 在 com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1927) 在 com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696) java.sql.SQLException:一个 SQLException 是由以下引起的 失败:java.lang.InterruptedException 在 com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:118) 在 com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:77) 在 com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:74) 在 com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:694) 在 com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:146) 引起:java.lang.InterruptedException at java.lang.Object.wait(本机方法)在 com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1465) 在 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) ... 6 更多
private static ComboPooledDataSource cpds = new ComboPooledDataSource();
try {
cpds = new ComboPooledDataSource();
cpds.setDriverClass(BSMRCommonConstant.POSTGRES_DRIVER);
cpds.setAcquireIncrement(5);
cpds.setBreakAfterAcquireFailure(true);
cpds.setAcquireRetryAttempts(20);
cpds.setMaxPoolSize(20);
cpds.setMaxIdleTime(60 * 10);
cpds.setTestConnectionOnCheckout(true);
cpds.setAcquireRetryDelay(3000);
cpds.setIdleConnectionTestPeriod(100);
} catch (PropertyVetoException e) {
e.printStackTrace();
}
Connection con = null;
cpds.setJdbcUrl(url);
cpds.setPassword(password);
cpds.setUser(userName);
con = cpds.getConnection(userName, password);
【问题讨论】:
-
嗨,我建议你不要只放错误,还要放错误所在的代码
-
请参阅stackoverflow.com/help/how-to-ask 页面以获得澄清此问题的帮助。
-
你能在这里添加你的代码而不是错误
-
看起来堆栈跟踪中没有你的代码,这可能是一些配置错误,因此与编程无关。
-
大家好,很抱歉给您带来不便......下面是代码sn-p......最后一行连接到数据库时抛出错误......
标签: java postgresql c3p0