My Oracle Support Banner

Deadlock When Using The Implicit Connection Cache Timetolive or Abandon Timeout (Doc ID 402788.1)

Last updated on FEBRUARY 19, 2019

Applies to:

JDBC - Version 10.1.0.5 to 10.2.0.2 [Release 10.1 to 10.2]
Information in this document applies to any platform.
This problem can occur on any platform.

Symptoms

An application is retrieving connection from the 10g Oracle JDBC  Implicit Connection Cache (ICC). The application hang can happen when the  ICC abandon or timetolive timeout are enabled;

A deadlock is occurring when at the same time:

To illustrate this situation, here are the Java Stack dump of those threads [ Thread-11 is the ICC internal JDBC thread and Thread 14 is the application thread. (closing the connection)] :

"Thread-14":
at oracle.jdbc.pool.OracleImplicitConnectionCache.reusePooledConnection(OracleImplicitConnectionCache.java:1389)
- waiting to lock <0x10969fe0> (a oracle.jdbc.pool.OracleImplicitConnectionCache)
at oracle.jdbc.pool.OracleConnectionCacheEventListener.connectionClosed(OracleConnectionCacheEventListener.java:61)
- locked <0x109ad220> (a oracle.jdbc.pool.OracleConnectionCacheEventListener)
at oracle.jdbc.pool.OraclePooledConnection.callImplicitCacheListener(OraclePooledConnection.java:505)
at oracle.jdbc.pool.OraclePooledConnection.logicalCloseForImplicitConnectionCache(OraclePooledConnection.java:426)
at oracle.jdbc.pool.OraclePooledConnection.logicalClose(OraclePooledConnection.java:442)
at oracle.jdbc.driver.LogicalConnection.closeInternal(LogicalConnection.java:220)
at oracle.jdbc.driver.LogicalConnection.close(LogicalConnection.java:193)
- locked <0x109ad240> (a oracle.jdbc.driver.LogicalConnection)  at test.TestPool$3.run(TestPool.java:78)


"Thread-11":
at oracle.jdbc.driver.LogicalConnection.close(LogicalConnection.java:193)
- waiting to lock <0x109ad240> (a oracle.jdbc.driver.LogicalConnection)
at oracle.jdbc.pool.OracleImplicitConnectionCache.closeCheckedOutConnection(OracleImplicitConnectionCache.java:1125)
at oracle.jdbc.pool.OracleImplicitConnectionCacheThread.runTimeToLiveTimeout(OracleImplicitConnectionCacheThread.java:152)
- locked <0x10969fe0> (a oracle.jdbc.pool.OracleImplicitConnectionCache)
at oracle.jdbc.pool.OracleImplicitConnectionCacheThread.run(OracleImplicitConnectionCacheThread.java:66 )

Found 1 deadlock.

 

Changes

 

Cause

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Symptoms
Changes
Cause
Solution
References


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.