【问题标题】:Connectivity issue on c3p0 after restarting server重新启动服务器后 c3p0 上的连接问题
【发布时间】:2015-09-23 09:49:15
【问题描述】:

我在我的应用程序中使用 c3p0 与 Oracle 数据库进行 Hibernate 连接。我们有两台服务器并行运行。通常可以正常工作,但是在尝试通过 c3p0 连接到数据库时重新启动其中一台服务器后出现异常。抛出的根异常是

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)
    ... 53 more

再次重新启动后,服务器运行正常。我正在使用hibernate-c3p0-4.3.6.Final。

这是我的 c3p0 连接配置

<bean id="dataSource"
class = "com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"
<property name="driverClass" value="oracle.jdbc.OracleDriver" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.user}" />
<property name="password" value="${jdbc.password}" />
<property name="maxPoolSize" value="50"/>
        <property name="initialPoolSize" value="2"/>
        <property name="minPoolSize" value="1"/>
        <property name="maxStatements" value="200"/>
        <property name="maxIdleTime" value="300"/>
        <property name="acquireIncrement"  value="10"/>
        <property name="unreturnedConnectionTimeout" value="90"/>
        <property name="maxConnectionAge" value="120"/>
</bean>

有没有人经历过类似的行为?

【问题讨论】:

  • 你能发布用于将属性分配给hibernate的属性文件吗??你在哪里有 jdbc.url.. 还有你用的是什么驱动程序??
  • 这听起来像是在 Oracle 中设置了最大连接限制,并且已被违反,因此没有人获得任何新连接

标签: hibernate oracle11g c3p0


【解决方案1】:

这可以重现吗?如果不是,我猜这是两个问题之一:

  1. 创建与数据库的连接实际上存在问题。如果我没记错 Oracle 的话,现有的连接很可能工作得很好,但无法创建新的连接,例如当侦听器服务不可用时。

  2. 或某些进程在启动过程中耗尽了所有可用的连接。例如,当进程由某种队列启动并且由于停机时间该队列相当满时,可能会发生这种情况。注意,连接限制可能是连接池中配置的,也可能是oracle数据库中配置的。

【讨论】:

    猜你喜欢
    • 2017-11-19
    • 2016-07-23
    • 1970-01-01
    • 2011-04-21
    • 2022-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多