求助:使用C3P0出错!? 400 报错-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

求助:使用C3P0出错!? 400 报错

爱吃鱼的程序员 2020-06-03 14:43:06 81

求助:使用C3P0出错!? 400 报错

配置文件的所有内容:

c3p0.jdbcUrl=jdbc:oracle:thin:@XXX.XXX.XXX.XXX:1521:ora10g
c3p0.driverClass=oracle.jdbc.driver.OracleDriver
c3p0.user=XXX
c3p0.password=XXX
c3p0.minPoolSize=3
c3p0.maxPoolSize=20

com.mchange.v2.log.MLog=com.mchange.v2.log.log4j.Log4jMLog
com.mchange.v2.log.NameTransformer=com.mchange.v2.log.PackageNames
com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL=ALL

获取连接代码:

ComboPooledDataSource cpds = new ComboPooledDataSource();
conn = cpds.getConnection();
出错信息:
log4j:WARN No appenders could be found for logger (com.mchange.v2.log.MLog).

log4j:WARN Please initialize the log4j system properly.

java.sql.SQLException: Connections could not be acquired from the underlying database!

at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106)

at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:529)

at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)

at c3p0.testc3p0.main(testc3p0.java:21)

Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source.

at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1319)

at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:557)

at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:477)

at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:525)

... 2 more
真心求助!谢谢大家!

分享到
取消 提交回答
全部回答(1)
  • 爱吃鱼的程序员
    2020-06-03 16:45:24

    从错误信息来看跟配置和代码无关了,看看数据库是否可连接
    ######

    引用来自“红薯”的答案

    从错误信息来看跟配置和代码无关了,看看数据库是否可连接
    数据库是可以连接上的,我用其他程序试了,这个测试程序就是普通的java应用程序,没有和其他框架相结合,而且没有其他的配置文件了,只有c3p0.properties这个文件,不知道是不是还有其他地方没注意到?
    ######c3p0 在启动的时候会答应配置信息,打印出来的信息跟配置里的信息一致吗?######

    引用来自“我叫弘毅”的答案

    引用来自“红薯”的答案

    从错误信息来看跟配置和代码无关了,看看数据库是否可连接
    数据库是可以连接上的,我用其他程序试了,这个测试程序就是普通的java应用程序,没有和其他框架相结合,而且没有其他的配置文件了,只有c3p0.properties这个文件,不知道是不是还有其他地方没注意到?

    C3P0启动?!我是直接在程序里包含c3p0的一个jar包,然后就写配置文件的内容,再写程序代码,直接点击运行控制台就打印上面的信息了,没看到控制台输出配置信息啊?!难道是我用c3p0的方式不对?

    ###### 原来是c3p0.properties这里面的部分配置信息没起到作用,困惑中。。。。######

    引用来自“1073710317”的答案

    原来是c3p0.properties这里面的部分配置信息没起到作用,困惑中。。。。

    什么信息,我也遇到这个问题。

    <property name="hibernate.c3p0.min_size">5</property>  
       <property name="hibernate.c3p0.max_size">20</property>  
       <property name="hibernate.c3p0.timeout">1800</property>  
       <property name="hibernate.c3p0.max_statements">50</property>  
       <property name="hibernate.c3p0.testConnectionOnCheckout">true</property> 

    ######我的是突然出现了这个问题。。。。。######

    很有可能是数据库归档日志已满,处理下日志。

    ######

    c3p0.jdbcUrl

    这里是不是少了个连字符-

    c3p0.jdbc-Url

    0 0
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章