0
我在應用程序中使用c3p0進行Hibernate與Oracle數據庫的連接。我們有兩臺並行運行的服務器。通常工作正常,但在重新啓動其中一臺服務器時,通過c3p0嘗試連接到數據庫時出現異常。拋出的根異常是重新啓動服務器後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>
有沒有人遇到過類似的行爲?
你可以發佈屬性文件用於分配屬性休眠.. ??你在哪裏有jdbc.url ..還有你在用什麼驅動? –
這聽起來像是在Oracle中設置了最大連接限制,並且它已被破壞,因此沒有人獲得任何新連接 – gerrytan