问题描述
上网查找资料,发现很多人也遇到了"APPARENT DEADLOCK"的问题http://www.iteye.com/topic/1117330http://www.iteye.com/topic/71051 http://www.iteye.com/topic/22160 http://www.iteye.com/topic/87313 http://www.iteye.com/topic/429677 https://forum.hibernate.org/viewtopic.php?f=1&t=947246&sid=ad2b8cc3213c9dac834d81b55bbf6291 以下是我在tomcat下跑的异常信息 请问怎么解决弄了好几天啦。真的是C3P0 bug吗 2011-11-04 15:37:22,694 WARN com.mchange.v2.async.ThreadPoolAsynchronousRunner - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@6fd42b -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!2011-11-04 15:37:22,694 WARN com.mchange.v2.async.ThreadPoolAsynchronousRunner - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@6fd42b -- APPARENT DEADLOCK!!! Complete Status: Managed Threads: 3Active Threads: 3Active Tasks: com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@18be695 (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2)com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@1cf63de (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1)com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@a5b703 (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0)Pending Tasks: com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@192492acom.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask@101935dcom.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask@71f06cPool thread stack traces:Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2,5,main]java.lang.Thread.sleep(Native Method)com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1,5,main]java.lang.Thread.sleep(Native Method)com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0,5,main]java.lang.Thread.sleep(Native Method)com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)2011-11-04 15:37:28,123 WARN org.directwebremoting.dwrp.DefaultConverterManager - Clash of converters for com.forgon.oa.schedule.model.Schedule. Using org.directwebremoting.convert.BeanConverter in place of org.directwebremoting.convert.BeanConverter2011-11-04 15:37:28,123 WARN org.directwebremoting.dwrp.DefaultConverterManager - Clash of converters for com.forgon.oa.schedule.model.RepeatRange. Using org.directwebremoting.convert.BeanConverter in place of org.directwebremoting.convert.BeanConverter2011-11-04 15:37:28,123 WARN org.directwebremoting.dwrp.DefaultConverterManager - Clash of converters for com.forgon.csair.dutyreport.dutyreportmgr.model.PilotDuty. Using org.directwebremoting.convert.BeanConverter in place of org.directwebremoting.convert.BeanConverter2011-11-04 15:37:28,123 WARN org.directwebremoting.dwrp.DefaultConverterManager - Clash of converters for com.csair.cmis.integermanagement.reservation.model.ReservationHandle. Using org.directwebremoting.convert.BeanConverter in place of org.directwebremoting.convert.BeanConverter2011-11-04 15:37:28,169 ERROR org.directwebremoting.impl.SignatureParser - Unable to find method called: getViewTableList on type: com.forgon.knowledge.dwr.KnowledgeTableManager2011-11-04 15:37:28,185 ERROR org.directwebremoting.impl.SignatureParser - Unable to find method called: getTemplateTableList on type: com.forgon.oa.dwr.table.TemplateTableManager2011-11-04 15:37:28,201 ERROR org.directwebremoting.impl.SignatureParser - Unable to find method called: getLogTableList on type: com.forgon.log.dwr.table.LogTableManager2011-11-04 15:37:28,232 ERROR org.directwebremoting.impl.SignatureParser - Parameter mismatch parsing signatures section in dwr.xml on line: FlowDefinitionTableManager.saveOrUpdateFromJs(FlowDefinition flowDefinition, List<MyTaskNode> nodeList, List<Connection> lineList)2011-11-04 15:37:28,247 ERROR org.directwebremoting.impl.SignatureParser - Unable to find method called: getFlowDefinitionTableList on type: com.forgon.workflow.designer.dwr.table.FlowDefinitionTableManager2011-11-04 15:37:34,472 WARN com.mchange.v2.resourcepool.BasicResourcePool - com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@a5b703 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception: java.sql.SQLException: Listener refused the connection with the following error:ORA-12500, TNS:listener failed to start a dedicated server processThe Connection descriptor used by the client was:at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:261)at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:441)at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)2011-11-04 15:37:34,472 ERROR com.mchange.v2.resourcepool.BasicResourcePool - A RESOURCE POOL IS PERMANENTLY BROKEN! [com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@a5b703]2011-11-04 15:37:34,472 ERROR com.mchange.v2.resourcepool.BasicResourcePool - com.mchange.v2.resourcepool.BasicResourcePool@2567a6 -- Unexpectedly broken!!!com.mchange.v2.resourcepool.ResourcePoolException: Unexpected Break Stack Trace!at com.mchange.v2.resourcepool.BasicResourcePool.unexpectedBreak(BasicResourcePool.java:866)at com.mchange.v2.resourcepool.BasicResourcePool.access$1100(BasicResourcePool.java:32)at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1854)at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)2011-11-04 15:59:25,482 WARN com.mchange.v2.async.ThreadPoolAsynchronousRunner - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@121b9ea -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!2011-11-04 15:59:25,482 WARN com.mchange.v2.async.ThreadPoolAsynchronousRunner - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@121b9ea -- APPARENT DEADLOCK!!! Complete Status: Managed Threads: 3Active Threads: 3Active Tasks: com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@134c6be (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1)com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@1e417da (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0)com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@1da208c (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2)Pending Tasks: com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask@18eee3bcom.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@ba9379Pool thread stack traces:Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1,5,main]java.lang.Thread.sleep(Native Method)com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0,5,main]java.net.SocketInputStream.socketRead0(Native Method)java.net.SocketInputStream.read(Unknown Source)oracle.net.ns.Packet.receive(Unknown Source)oracle.net.ns.NSProtocol.connect(Unknown Source)oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:858)oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:268)oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:441)oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2,5,main]java.lang.Thread.sleep(Native Method)com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)2011-11-04 16:00:25,511 WARN com.mchange.v2.async.ThreadPoolAsynchronousRunner - Task com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@134c6be (in deadlocked PoolThread) failed to complete in maximum time 60000ms. Trying interrupt().2011-11-04 16:00:25,511 WARN com.mchange.v2.async.ThreadPoolAsynchronousRunner - Task com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@1da208c (in deadlocked PoolThread) failed to complete in maximum time 60000ms. Trying interrupt().2011-11-04 16:00:30,457 WARN com.mchange.v2.resourcepool.BasicResourcePool - com.mchange.v2.resourcepool.BasicResourcePool@24e11c -- Thread unexpectedly interrupted while performing an acquisition attempt.java.lang.InterruptedException: sleep interruptedat java.lang.Thread.sleep(Native Method)at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)2011-11-04 16:00:31,502 WARN com.mchange.v2.resourcepool.BasicResourcePool - com.mchange.v2.resourcepool.BasicResourcePool@24e11c -- Thread unexpectedly interrupted while performing an acquisition attempt.java.lang.InterruptedException: sleep interruptedat java.lang.Thread.sleep(Native Method)at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)2011-11-04 16:04:19,247 WARN com.mchange.v2.resourcepool.BasicResourcePool - com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@93c4bb -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception: java.sql.SQLException: Listener refused the connection with the following error:ORA-12500, TNS:listener failed to start a dedicated server processThe Connection descriptor used by the client was:at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:261)at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:441)at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)2011-11-04 16:04:19,247 ERROR com.mchange.v2.resourcepool.BasicResourcePool - A RESOURCE POOL IS PERMANENTLY BROKEN! [com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@93c4bb]2011-11-04 16:04:19,247 ERROR com.mchange.v2.resourcepool.BasicResourcePool - com.mchange.v2.resourcepool.BasicResourcePool@24e11c -- Unexpectedly broken!!!com.mchange.v2.resourcepool.ResourcePoolException: Unexpected Break Stack Trace!at com.mchange.v2.resourcepool.BasicResourcePool.unexpectedBreak(BasicResourcePool.java:866)at com.mchange.v2.resourcepool.BasicResourcePool.access$1100(BasicResourcePool.java:32)at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1854)at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)2011-11-04 16:04:55,595 WARN com.mchange.v2.resourcepool.BasicResourcePool - com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@1e465c2 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception: java.sql.SQLException: Listener refused the connection with the following error:ORA-12500, TNS:listener failed to start a dedicated server processThe Connection descriptor used by the client was:at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:261)at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:441)at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)2011-11-04 16:04:55,595 ERROR com.mchange.v2.resourcepool.BasicResourcePool - A RESOURCE POOL IS PERMANENTLY BROKEN! [com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@1e465c2]2011-11-04 16:04:55,595 ERROR com.mchange.v2.resourcepool.BasicResourcePool - com.mchange.v2.resourcepool.BasicResourcePool@24e11c -- Unexpectedly broken!!!com.mchange.v2.resourcepool.ResourcePoolException: Unexpected Break Stack Trace! 问题补充:<div class="quote_title">khan 写道</div><div class="quote_div">好像是的,你给的信息太少,我用的时候也有这个情况,但是不影响使用,只是有冒异常的tracert。</div><br />用的时候就是getConnection 获取连接的时候就是为空。。。
解决方案
好像是的,你给的信息太少,我用的时候也有这个情况,但是不影响使用,只是有冒异常的tracert。