C3P0 APPARENT DEADLOCK

Posted zsychanpin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C3P0 APPARENT DEADLOCK相关的知识,希望对你有一定的参考价值。

一,c3p0执行一段时间后报错例如以下

W 07-26_00:58:27 ThreadPoolAsynchronousRunner.java 608 com[email protected]70929ab6 -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks! 
W 07-26_00:58:39 ThreadPoolAsynchronousRunner.java 608 com[email protected]4496b93a -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!

二,解决方法例如以下


1,更新c3p0版本号到0.9.2.1 该版本号优化了获取connection的规则

2,首先改动c3p0配置參数

<!--JDBC的标准參数。用以控制数据源内载入的PreparedStatements数量。但因为预缓存的statements
       属于单个connection而不是整个连接池。所以设置这个參数须要考虑到多方面的因素。
       假设maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。

Default: 0--> <property name="maxStatements" value="0"/> <!--连接池用完时客户调用getConnection()后等待获取连接的时间。单位:毫秒。超时后会抛出--> <!--SQLEXCEPTION,假设设置0,则无限等待。Default:0--> <property name="checkoutTimeout" value="100"/>







以上是关于C3P0 APPARENT DEADLOCK的主要内容,如果未能解决你的问题,请参考以下文章

c3p0 -- APPARENT DEADLOCK!!问题

软件包工头之临时DBA系列Oracle连接非常慢APPARENT DEADLOCK

com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@1035079 -- APPARENT DEADLOCK!!! C

jdk1.6.0_29的bug导致c3p0获取sqlserver连接时被hang住甚至deadlock问题的分析

C3P0数据库连接池的相关bug解决

记一次使用Cobar踩到的坑