Connection Leak or Retries Due to setAutoCommit Calls in a Global Transaction.
Last updated on APRIL 06, 2018
Applies to: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]
JDBC - Version 10.1.0.5 to 22.214.171.124 [Release 10.1 to 11.1]
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="PatGbm_Services Connection Pool" jndi-name="jdbc/PatGbmServicesDS"
name="PatGbm_Services Data Source"/>
<connection-pool name="PatGbm_Services 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 .
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