C3P0数据库连接池死锁 com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@1c17bd4 -- APPARENT DEADLOCK!!!
现象描述:下午19点发布应用正常,凌晨2点碟机。碟机前一段时间 报错,错误信息为错误信息:com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@1c17bd4 -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks! 最后死锁造成内存溢出,tomcat挂起。
应用环境 :Spring3.0 +ibatis+oracle +tomcat +linux
配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="${driverClass}" />
<property name="jdbcUrl" value="${jdbcUrl}" />
<property name="user" value="${user}" />
<property name="password" value="${password}" />
<property name="minPoolSize" value="${minPoolSize}" />
<property name="maxPoolSize" value="${maxPoolSize}" />
<property name="maxIdleTime" value="300" />
<property name="acquireIncrement" value="2" />
<property name="maxStatements" value="0" />
<property name="initialPoolSize" value="10" />
<property name="idleConnectionTestPeriod" value="60" />
<property name="acquireRetryAttempts" value="30" />
<property name="testConnectionOnCheckout" value="false" />
</bean>
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="classpath:orm/sqlMapConfig.xml" />
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="transactionManager"
class="com.ai.rmsapp.transaction.RmsDataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
</beans>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
最好能把错误堆栈全部贴出来。
我这边碰到的一个案例是c3p0的tester检测导致的:
c3p0检测程序缺省每次都是查询数据库的全表进行判断,这个很有可能导致死锁。
通过设置preferredTestQuery或者设置connectionTesterClassName可以解决该问题。
这是我碰到的情况,不知跟你碰到的是否是一个问题。
还是要具体分析下
建议监控下数据库的Session 管理
建议监控下数据库的Session 管理
缓存溢出,虚拟机内存调大,连接池缓存设小。
把maxPoolSize设小一点。
求助!
求助!