Re: [c3p0-users] c3p0-users Digest, Vol 13, Issue 13
Status: Beta
Brought to you by:
swaldman
From: Steve W. <swa...@mc...> - 2007-06-30 02:04:40
|
Hari, First of all, I've got to apologize for dropping our previous thread of correspondence. Re the question -- it is worth a try. If acquisition attempts against the stale server hang indefinitely without throwing an Exception, eventually an APPARENT DEADLOCK would still be triggered. But if acquisition attempts do in fact fail, just slowly, ScatteredAcquireTask would prevent that from triggering APPARENT DEADLOCKs. smiles and apologies, Steve ~oo~ Steve Waldman Machinery For Change, Inc. On Jun 29, 2007, at 3:44 PM, Hari Krishna Dara wrote: > I am wondering if the > "com.mchange.v2.resourcepool.experimental.useScatteredAcquireTask" > property will help me as well. I have always noticed an "apparent > deadlock" log whenever the server is forcefully killed. Can this > property help c3p0 to not falsely detect such scenarios as deadlocks? > > Thanks, > Hari > > >> Date: Fri, 29 Jun 2007 03:43:42 -0400 >> From: Steve Waldman <swa...@mc...> >> Subject: Re: [c3p0-users] APPARENT DEADLOCK exception with >> c3p0-0.9.1.2 >> To: Scott Zhu <sco...@gm...> >> Cc: c3p...@li... >> Message-ID: <EDD...@mc...> >> Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed >> >> Scott, >> >> So this is an "APPARENT DEADLOCK" where all pools in the thread pool >> are hung on AcquireTasks. >> >> That means that for some reason, when c3p0 is trying to acquire >> Connections from the underlying database, its attempt are neither >> succeeding nor failing promptly with an Exception, but are instead >> "hanging" for long periods of time. >> >> Here are some things you can do to try to resolve the issue: >> >> 1) Try to understand what's going on at your database. Why are >> Connection acquisition attempts freezing? Are too many Connections >> checked out? Is there some network issue? >> >> 2) Try c3p0's experimental (but much better) new logic for Connection >> acquisition. Do this by setting... >> >> >> com.mchange.v2.resourcepool.experimental.useScatteredAcquireTask=true >> >> ...in c3p0.properties or as a System property. This will be the >> default behavior in future c3p0's, and is much better than the old >> Acquire task. It's not the default only because it was added late to >> the c3p0-0.9.1.x series. >> >> 3) If you decide that nothing is broken, it's just that your load is >> very high and the database gets bogged down, increase >> c3p0.numHelperThreads from its default of 3 to diminish the >> likelihood of c3p0 declaring a deadlock. (c3p0 only declares a >> deadlock if all pooled threads are stuck on the same taks for a >> prolonged period of time.) >> >> 4) If all else fails, try to force slow tasks to fail using >> c3p0.maxAdministrativeTaskTime. Between 5 and 9 seconds would >> probably be reasonable values for this. >> >> Good luck! >> Steve >> >> p.s. sorry for the delayed response! >> >> >> ~oo~ >> Steve Waldman >> Machinery For Change, Inc. >> >> >> On Jun 25, 2007, at 10:47 AM, Scott Zhu wrote: >> >>> We are using c3p0-0.9.1.2 with Hibernate. We ran into this issue >>> with a db2 instance. I found several hits when I was searching in >>> the email archive but seems like they were using 0.9.1.1. This >>> happened shortly after the pool was initialized. I attached the >>> (long) stack trace here. I'd appreciate if you can provide any help >>> since we are at the last stage of the release. >>> 2007-06-25 07:36:22,783 INFO [main] - Initializing c3p0 pool... >>> com.mchange.v2.c3p0.PoolBackedDataSource@3ea8c135 >>> [ connectionPoolDataSource -> >>> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource@69b3c627 >>> [ acquireIncrement -> 1, acquireRetryAttempts -> 30, >>> acquireRetryDelay -> 1000, autoCommitOnClose -> false, >>> automaticTestTable -> null, breakAfterAcquireFailure -> false, >>> checkoutTimeout -> 0, connectionCustomizerClassName -> null, >>> connectionTesterClassName -> >>> com.mchange.v2.c3p0.impl.DefaultConnectionTester, >>> debugUnreturnedConnectionStackTraces -> false, factoryClassLocation >>> -> null, forceIgnoreUnresolvedTransactions -> false, identityToken - >>>> 1bqltwf7nrfpjgm16momqc|3f283f28, idleConnectionTestPeriod -> 100, >>> initialPoolSize -> 10, maxAdministrativeTaskTime -> 0, >>> maxConnectionAge -> 0, maxIdleTime -> 100, >>> maxIdleTimeExcessConnections -> 0, maxPoolSize -> 100, >>> maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> >>> 10, nestedDataSource -> >>> com.mchange.v2.c3p0.DriverManagerDataSource@8384d751 [ description - >>>> null, driverClass -> null, factoryClassLocation -> null, >>> identityToken -> 1bqltwf7nrfpjgm16momqc|3da43da4, jdbcUrl -> >>> jdbc:db2://taj:50001/mutha, properties -> {user=******, >>> password=******, release_mode=on_close} ], preferredTestQuery -> >>> null, propertyCycle -> 0, testConnectionOnCheckin -> false, >>> testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> >>> 0, usesTraditionalReflectiveProxies -> false; userOverrides: {} ], >>> dataSourceName -> null, factoryClassLocation -> null, identityToken >>> -> 1bqltwf7nrfpjgm16momqc|1a461a46, numHelperThreads -> 3 ] >>> 2007-06-25 07:36:38,441 INFO [main] - RDBMS: DB2/AIX64, version: >>> SQL09012 >>> 2007-06-25 07:36:38,442 INFO [main] - JDBC driver: IBM DB2 JDBC >>> Universal Driver Architecture, version: 3.3.54 >>> 2007-06-25 07:36:38,462 INFO [main] - Using dialect: >>> org.hibernate.dialect.DB2Dialect >>> 2007-06-25 07:36:38,471 INFO [main] - Using default transaction >>> strategy (direct JDBC transactions) >>> 2007-06-25 07:36:38,472 INFO [main] - No TransactionManagerLookup >>> configured (in JTA environment, use of read-write or transactional >>> second-level cache is not recommended) >>> 2007-06-25 07:36:38,472 INFO [main] - Automatic flush during >>> beforeCompletion(): disabled >>> 2007-06-25 07:36:38,472 INFO [main] - Automatic session close at >>> end of transaction: disabled >>> 2007-06-25 07:36:38,473 INFO [main] - JDBC batch size: 10 >>> 2007-06-25 07:36:38,473 INFO [main] - JDBC batch updates for >>> versioned data: disabled >>> 2007-06-25 07:36:38,474 INFO [main] - Scrollable result sets: >>> enabled >>> 2007-06-25 07:36:38,474 INFO [main] - JDBC3 getGeneratedKeys(): >>> enabled >>> 2007-06-25 07:36:38,474 INFO [main] - Connection release mode: >>> on_close >>> 2007-06-25 07:36:38,474 INFO [main] - Default schema: emessage >>> 2007-06-25 07:36:38,474 INFO [main] - Default batch fetch size: 1 >>> 2007-06-25 07:36:38,474 INFO [main] - Generate SQL with comments: >>> disabled >>> 2007-06-25 07:36:38,474 INFO [main] - Order SQL updates by primary >>> key: disabled >>> 2007-06-25 07:36:38,474 INFO [main] - Query translator: >>> org.hibernate.hql.ast.ASTQueryTranslatorFactory >>> 2007-06-25 07:36:38,477 INFO [main] - Using >>> ASTQueryTranslatorFactory >>> 2007-06-25 07:36:38,477 INFO [main] - Query language >>> substitutions: {} >>> 2007-06-25 07:36:38,477 INFO [main] - JPA-QL strict compliance: >>> disabled >>> 2007-06-25 07:36:38,477 INFO [main] - Second-level cache: enabled >>> 2007-06-25 07:36:38,477 INFO [main] - Query cache: disabled >>> 2007-06-25 07:36:38,477 INFO [main] - Cache provider: >>> org.hibernate.cache.NoCacheProvider >>> 2007-06-25 07:36:38,477 INFO [main] - Optimize cache for minimal >>> puts: disabled >>> 2007-06-25 07:36:38,477 INFO [main] - Structured second-level >>> cache entries: disabled >>> 2007-06-25 07:36:38,483 INFO [main] - Statistics: disabled >>> 2007-06-25 07:36:38,483 INFO [main] - Deleted entity synthetic >>> identifier rollback: disabled >>> 2007-06-25 07:36:38,483 INFO [main] - Default entity-mode: pojo >>> 2007-06-25 07:36:52,795 WARN [Timer-0] - >>> com.mchange.v2.async.ThreadPoolAsynchronousRunner >>> $DeadlockDetector@19081908 -- APPARENT DEADLOCK!!! Creating >>> emergency threads for unassigned pending tasks! >>> 2007-06-25 07:36:52,800 WARN [Timer-0] - >>> com.mchange.v2.async.ThreadPoolAsynchronousRunner >>> $DeadlockDetector@19081908 -- APPARENT DEADLOCK!!! Complete Status: >>> Managed Threads: 3 >>> Active Threads: 3 >>> Active Tasks: >>> com.mchange.v2.resourcepool.BasicResourcePool >>> $AcquireTask@247c247c >>> (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0) >>> com.mchange.v2.resourcepool.BasicResourcePool >>> $AcquireTask@24942494 >>> (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1) >>> com.mchange.v2.resourcepool.BasicResourcePool >>> $AcquireTask@24882488 >>> (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2) >>> Pending Tasks: >>> com.mchange.v2.resourcepool.BasicResourcePool >>> $AcquireTask@24a024a0 >>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@24ac24ac >>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@24b824b8 >>> com.mchange.v2.resourcepool.BasicResourcePool >>> $AcquireTask@24c424c4 >>> com.mchange.v2.resourcepool.BasicResourcePool >>> $1RefurbishCheckinResourceTask@15221522 >>> Pool thread stack traces: >>> Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner >>> $PoolThread-#0,5,main] >>> java.net.InetAddress.getLocalHost(InetAddress.java:1321) >>> com.ibm.db2.jcc.c.b.h(b.java:3059) >>> com.ibm.db2.jcc.b.v.setDB2ClientWorkstation(v.java:1858) >>> com.ibm.db2.jcc.c.b.wc(b.java:2224) >>> com.ibm.db2.jcc.c.b.a(b.java:504) >>> com.ibm.db2.jcc.c.b.<init>(b.java:266) >>> com.ibm.db2.jcc.DB2Driver.connect (DB2Driver.java:163) >>> com.mchange.v2.c3p0.DriverManagerDataSource.getConnection >>> (DriverManagerDataSource.java:134) >>> >>> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnect >>> io >>> n(WrapperConnectionPoolDataSource.java :182) >>> >>> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnect >>> io >>> n(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-#1,5,main] >>> java.net.InetAddress.getLocalHost(InetAddress.java:1321) >>> com.ibm.db2.jcc.c.b.h(b.java:3059) >>> com.ibm.db2.jcc.c.b.uc(b.java:2147) >>> com.ibm.db2.jcc.c.b.a(b.java:604) >>> com.ibm.db2.jcc.c.b.<init>( b.java:265) >>> com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:163) >>> com.mchange.v2.c3p0.DriverManagerDataSource.getConnection >>> (DriverManagerDataSource.java:134) >>> >>> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnect >>> io >>> n (WrapperConnectionPoolDataSource.java:182) >>> >>> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnect >>> io >>> n(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:1321) >>> com.ibm.db2.jcc.c.b.h(b.java:3059) >>> com.ibm.db2.jcc.b.v.setDB2ClientWorkstation(v.java:1858) >>> com.ibm.db2.jcc.c.b.wc(b.java:2224) >>> com.ibm.db2.jcc.c.b.a (b.java:504) >>> com.ibm.db2.jcc.c.b.<init>(b.java:266) >>> com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:163) >>> com.mchange.v2.c3p0.DriverManagerDataSource.getConnection >>> (DriverManagerDataSource.java:134) >>> >>> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnect >>> io >>> n(WrapperConnectionPoolDataSource.java:182) >>> >>> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnect >>> io >>> n(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) >>> >>> >>> 2007-06-25 07:36:54,329 INFO [main] - building session factory >>> 2007-06-25 07:36:55,874 INFO [main] - Not binding factory to JNDI, >>> no JNDI name configured >>> 2007-06-25 07:36:56,602 INFO [main] - JDBC 3.0 Savepoint class is >>> available >>> 2007-06-25 07:36:56,804 WARN [main] - SQL Warning: 0, SQLState: >>> null >>> 2007-06-25 07:36:56,804 WARN [main] - [ibm][db2][jcc][10217] >>> [10310] Connection read-only mode is not enforceable after the >>> connection has been established. >>> To enforce a read only connection, set the read-only data source or >>> connection property. >>> 2007-06-25 07:39:02,847 WARN [Timer-0] - >>> com.mchange.v2.async.ThreadPoolAsynchronousRunner >>> $DeadlockDetector@19081908 -- APPARENT DEADLOCK!!! Creating >>> emergency threads for unassigned pending tasks! >>> 2007-06-25 07:39:02,854 WARN [Timer-0] - >>> com.mchange.v2.async.ThreadPoolAsynchronousRunner >>> $DeadlockDetector@19081908 -- APPARENT DEADLOCK!!! Complete Status: >>> Managed Threads: 3 >>> Active Threads: 3 >>> Active Tasks: >>> com.mchange.v2.resourcepool.BasicResourcePool >>> $AcquireTask@6de66de6 >>> (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0) >>> com.mchange.v2.resourcepool.BasicResourcePool >>> $AcquireTask@6df26df2 >>> (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2) >>> com.mchange.v2.resourcepool.BasicResourcePool >>> $AcquireTask@6dfe6dfe >>> (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1) >>> Pending Tasks: >>> com.mchange.v2.resourcepool.BasicResourcePool >>> $AcquireTask@6e0a6e0a >>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@6e166e16 >>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@6e226e22 >>> com.mchange.v2.resourcepool.BasicResourcePool >>> $AcquireTask@6e2e6e2e >>> Pool thread stack traces: >>> Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner >>> $PoolThread-#0,5,main] >>> java.net.Inet6AddressImpl.getLocalHostName (Native Method) >>> java.net.InetAddress.getLocalHost(InetAddress.java:1333) >>> com.ibm.db2.jcc.c.b.h(b.java:3059) >>> com.ibm.db2.jcc.c.b.uc(b.java:2147) >>> com.ibm.db2.jcc.c.b.a(b.java:604) >>> com.ibm.db2.jcc.c.b .<init>(b.java:265) >>> com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:163) >>> com.mchange.v2.c3p0.DriverManagerDataSource.getConnection >>> (DriverManagerDataSource.java:134) >>> >>> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnect >>> io >>> n (WrapperConnectionPoolDataSource.java:182) >>> >>> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnect >>> io >>> n(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:1321) >>> com.ibm.db2.jcc.c.b.h(b.java:3059) >>> com.ibm.db2.jcc.c.b.uc(b.java:2147) >>> com.ibm.db2.jcc.c.b.a(b.java:604) >>> com.ibm.db2.jcc.c.b.<init>( b.java:265) >>> com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:163) >>> com.mchange.v2.c3p0.DriverManagerDataSource.getConnection >>> (DriverManagerDataSource.java:134) >>> >>> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnect >>> io >>> n (WrapperConnectionPoolDataSource.java:182) >>> >>> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnect >>> io >>> n(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-#1,5,main] >>> java.net.InetAddress.getLocalHost(InetAddress.java:1321) >>> com.ibm.db2.jcc.c.b.h(b.java:3059) >>> com.ibm.db2.jcc.c.b.uc(b.java:2147) >>> com.ibm.db2.jcc.c.b.a(b.java:604) >>> com.ibm.db2.jcc.c.b.<init>( b.java:265) >>> com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:163) >>> com.mchange.v2.c3p0.DriverManagerDataSource.getConnection >>> (DriverManagerDataSource.java:134) >>> >>> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnect >>> io >>> n (WrapperConnectionPoolDataSource.java:182) >>> >>> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnect >>> io >>> n(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) >>> >>> >>> 2007-06-25 07:40:02,861 WARN [Timer-0] - Task >>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@6de66de6 >>> (in deadlocked PoolThread) failed to complete in maximum time >>> 60000ms. Trying interrupt(). >>> 2007-06-25 07:40:02,861 WARN [Timer-0] - Task >>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@6df26df2 >>> (in deadlocked PoolThread) failed to complete in maximum time >>> 60000ms. Trying interrupt(). >>> 2007-06-25 07:40:02,862 WARN [Timer-0] - Task >>> com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@6dfe6dfe >>> (in deadlocked PoolThread) failed to complete in maximum time >>> 60000ms. Trying interrupt(). >>> 2007-06-25 07:42:22,899 WARN [Timer-0] - >>> com.mchange.v2.async.ThreadPoolAsynchronousRunner >>> $DeadlockDetector@19081908 -- APPARENT DEADLOCK!!! Creating >>> emergency threads for unassigned pending tasks! >>> 2007-06-25 07:42:22,906 WARN [Timer-0] - >>> com.mchange.v2.async.ThreadPoolAsynchronousRunner >>> $DeadlockDetector@19081908 -- APPARENT DEADLOCK!!! Complete Status: >>> Managed Threads: 3 >>> Active Threads: 3 >>> Active Tasks: >>> >>> ... >>> >> >> > > ---------------------------------------------------------------------- > --- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > c3p0-users mailing list > c3p...@li... > https://lists.sourceforge.net/lists/listinfo/c3p0-users |