APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
场景:解决 APPARENT DEADLOCK! Creating emergency threads for unassigned pending tasks
解决 APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
最近部在生产环境的应用,系统重启后,跑了一天后就挂掉了,每天都是如此,之前一直都是挺稳定的,看了日志报出的错误是:
[12-28 02:07:19,953] WARN [Timer-8] ThreadPoolAsynchronousRunner.run(624) | com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@4acfc57a -- APPARENT DEADLOCK!!! Complete Status:
接下来就是:
java.lang.OutOfMemoryError: GC overhead limit exceeded
这个问题,搞了好几天,后来发现是C3P0的问题,这里记录一下:
原c3p0参数如下:
<property name="maxPoolSize" value="10"/>
<property name="minPoolSize" value="3"/>
<property name="maxIdleTime" value="180" />
修改后c3p0的参数如下:
<property name="maxPoolSize" value="30" />
<property name="minPoolSize" value="10" />
<property name="maxIdleTime" value="1800" />
<property name="maxStatements" value="0" />
<property name="initialPoolSize" value="10" />
<property name="idleConnectionTestPeriod" value="1800" />
解决 APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
最近部在生产环境的应用,系统重启后,跑了一天后就挂掉了,每天都是如此,之前一直都是挺稳定的,看了日志报出的错误是:
[12-28 02:07:19,953] WARN [Timer-8] ThreadPoolAsynchronousRunner.run(624) | com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@4acfc57a -- APPARENT DEADLOCK!!! Complete Status:
接下来就是:
java.lang.OutOfMemoryError: GC overhead limit exceeded
这个问题,搞了好几天,后来发现是C3P0的问题,这里记录一下:
原c3p0参数如下:
<property name="maxPoolSize" value="10"/>
<property name="minPoolSize" value="3"/>
<property name="maxIdleTime" value="180" />
修改后c3p0的参数如下:
<property name="maxPoolSize" value="30" />
<property name="minPoolSize" value="10" />
<property name="maxIdleTime" value="1800" />
<property name="maxStatements" value="0" />
<property name="initialPoolSize" value="10" />
<property name="idleConnectionTestPeriod" value="1800" />