C3P0報APPARENT DEADLOCK!!!

 

問題:

從A服務器複製到B服務器之後,在B服務器上啓動tomcat就出現了這個問題,項目在本地是沒有問題的。

錯誤信息:

 [cn.wifiedu.core.service.impl.InitServiceImpl] - datebase init
  [com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource] - Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 5, acquireRetryAttempts -> 1, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, dataSourceName -> 2y4ysl9v1leqxg31ndmjav|6796192a, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> oracle.jdbc.driver.OracleDriver, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 2y4ysl9v1leqxg31ndmjav|6796192a, idleConnectionTestPeriod -> 60, initialPoolSize -> 5, jdbcUrl -> jdbc:oracle:thin:@10.160.2.100:1521:scorcl, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 120, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 50, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 5, numHelperThreads -> 3, numThreadsAwaitingCheckoutDefaultUser -> 0, preferredTestQuery -> null, properties -> {user=******, password=******}, propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false ]
  [com.mchange.v2.async.ThreadPoolAsynchronousRunner] - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@92986d9 -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
  [com.mchange.v2.async.ThreadPoolAsynchronousRunner] - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@92986d9 -- APPARENT DEADLOCK!!! Complete Status: 
	Managed Threads: 3
	Active Threads: 3
	Active Tasks: 
		com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@46d373b7 (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2)
		com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@3893afa (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1)
		com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@775f111e (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0)
	Pending Tasks: 
		com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@7bef06f9
		com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@26fc8cf8
Pool thread stack traces:
	Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1,5,main]
		java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
		java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
		java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)
		java.net.InetAddress.getLocalHost(InetAddress.java:1500)
		oracle.jdbc.driver.T4CTTIoauthenticate.setSessionFields(T4CTTIoauthenticate.java:887)
		oracle.jdbc.driver.T4CTTIoauthenticate.<init>(T4CTTIoauthenticate.java:184)
		oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:351)
		oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:438)
		oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:164)
		oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:34)
		oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:752)
		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-#0,5,main]
		java.net.InetAddress.getLocalHost(InetAddress.java:1486)
		oracle.jdbc.driver.T4CTTIoauthenticate.setSessionFields(T4CTTIoauthenticate.java:887)
		oracle.jdbc.driver.T4CTTIoauthenticate.<init>(T4CTTIoauthenticate.java:184)
		oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:351)
		oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:438)
		oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:164)
		oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:34)
		oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:752)
		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.net.InetAddress.getLocalHost(InetAddress.java:1486)
		oracle.jdbc.driver.T4CTTIoauthenticate.setSessionFields(T4CTTIoauthenticate.java:887)
		oracle.jdbc.driver.T4CTTIoauthenticate.<init>(T4CTTIoauthenticate.java:184)
		oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:351)
		oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:438)
		oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:164)
		oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:34)
		oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:752)
		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)

 

解決方法1:

服務器沒有開啓防火牆。最後不得已換成了druid

解決方法2:

https://github.com/swaldman/c3p0/issues/53

 

參考

https://blog.csdn.net/zkn_cs_dn_2013/article/details/51752628

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章