我们正在加载运行spring/hibernate/c3p0应用程序。当我将c3p0 maxPoolSize减少到远远低于并发用户数时,我们的应用程序就会挂起。日志中没有错误消息,但它也不会继续前进。休眠/ c3p0连接泄漏
我希望应用程序放慢速度,但不要完全停止。
这里是我们的C3P0配置:
<bean id="coreDataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close"
p:driverClass="${core.jdbc.driver}"
p:jdbcUrl="${core.jdbc.url}"
p:user="${core.jdbc.user}"
p:acquireIncrement="5"
p:acquireRetryAttempts="10"
p:acquireRetryDelay="5000"
p:initialPoolSize="52"
p:maxIdleTime="3600"
p:maxIdleTimeExcessConnections="300"
p:minPoolSize="52"
p:maxPoolSize="125"
p:numHelperThreads="6"
p:unreturnedConnectionTimeout="0">
<property name="password">
<bean class="com.docfinity.util.encryption.SpringStringDecrypter"
p:decryptFlag="${core.jdbc.decryptPasswordFlag}"
p:encryptedString="${core.jdbc.password}" />
</property>
</bean>
这将锁住了,如果我在它抛出一个160级的用户。
我试着将unreturnedConnectionTimeout设置为正值(120秒),并查看了我们应用程序中显示的堆栈跟踪。堆栈跟踪来自我们应用程序中的各种不同方法。这不像我们可以指出的一种方法,并说它正在泄漏连接。
任何帮助调试这个问题将不胜感激。