Connection Pool Lock Due To Runabandonedtimeout() Method In Oracle Application Server 10.1.3.4 (Doc ID 1347015.1)

Last updated on FEBRUARY 05, 2013

Applies to:

Oracle Containers for J2EE - Version 10.1.3.1.0 to 10.1.3.5.0 [Release AS10gR3]
Information in this document applies to any platform.

Symptoms

A J2EE application deployed to Oracle Application Server (OAS) 10.1.3.4.0 connects to a 2-node 10.2.0.5.0 RAC database via JDBC 10.2.0.4.0.

The connections are made through managed datasource of the OC4J instance.
OC4J hangs or restarts automatically due to a connection pool lock.

It is suspected that this lock is caused by internal JDBC method - runAbandonedTimeout().


Thread Dump Analysis screenshot from "IBM Thread and Monitor Dump Analyzer for Java" shows:


Thread Name: Thread-11

State: Waiting on monitor

Monitor: Waiting for MOnitor Lock on 0x8376ad18
Owns Monitor Lock on 0x7c93e660

Java Stack:
at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:1451)
- waiting to lock [0x8376ad18] (a oracle.jdbc.driver.T4CConnection)
at oracle.jdbc.OracleConnectionWrapper.rollback(OracleConnectionWrapper.java:122)
at oracle.jdbc.pool.OracleImplicitConnectionCache.closeCheckedOutConnection(OracleImplicitConnectionCache.java:1490)
at oracle.jdbc.pool.OracleImplicitConnectionCacheThread.runAbandonedTimeout(OracleImplicitConnectionCacheThread.java:258)
- locked [0x7c93e660] (a oracle.jdbc.pool.OracleImplicitConnectionCache)
at oracle.jdbc.pool.OracleImplicitConnectionCacheThread.run(OracleImplicitConnectionCacheThread.java:81)

Native Stack: No Native stack trace available


Changes

In OC4J connection pool configuration file (data-sources.xml), the abandoned-connection-timeout="900" parameter was added.

Cause

Sign In with your My Oracle Support account

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

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms