Connection Leak or Retries Due to setAutoCommit Calls in a Global Transaction.
(Doc ID 1139394.1)
Last updated on JULY 03, 2020
Applies to:JDBC - Version 10.1.0.5 to 18.104.22.168 [Release 10.1 to 11.1]
Oracle WebLogic Server - Version 10.3 and later
Oracle Containers for J2EE - Version 10.1.3.3.0 to 10.1.3.5.0 [Release AS10gR3]
Information in this document applies to any platform.
***Checked for relevance on 10-Apr-2012***
- An application is deployed into 10.1.3.3 OC4J and retrieves a connection from a managed datasource to access database server:
<managed-data-source connection-pool-name="my_Connection Pool" jndi-name="jdbc/myServicesDS"
name="PatGbm_Services Data Source"/>
<connection-pool name="my_Connection Pool"
validate-connection-statement="SELECT 1 FROM DUAL">
- The problem is a connection leak that has been observed after a performance load test.
Monitoring the number of connections in use (via the em console ), we can see that there are N connections in use.
- The increase has been observed when an application is trying to allocate a JDBC connection in a global transaction and the container is calling setAutoCommit (true) on the connection . The following exception is then observed :
java.sql.SQLException : setAutoCommit method is not allowed during a global transaction.'
java.sql.SQLException: could not turn on auto-commit in an active global transaction
As for OC4J container, this unexpected call to setAutoCommit method on connection has been experience with WLS container .
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