Connection Pool Lock Due To Runabandonedtimeout() Method in Oracle Application Server 10.1.3.4
(Doc ID 1347015.1)
Last updated on AUGUST 28, 2024
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 "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
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 |