Resolving "Could not commit with auto-commit set on" SQLExceptions From Oracle 12c JDBC Driver

Resolving "Could not commit with auto-commit set on" SQLExceptions From Oracle 12c JDBC Driver

book

Article ID: KB0094703

calendar_today

Updated On:

Products Versions
TIBCO BPM Enterprise (formerly TIBCO ActiveMatrix BPM) 3.1, 4.0, 4.1

Description

The following SQLException is reported in the BPM node log file:

   "Caused by: java.sql.SQLException: Could not commit with auto-commit set on"

This exception can sometimes occur as a result of the default Oracle 12c JDBC
driver behavior, which is that:

* Auto-commit mode is enabled by default.

* The JDBC driver throws a SQLException when a commit or rollback operation is
performed on a connection that has auto-commit set to true.

Symptoms of the problem can be unexpected application behavior (for example, a
commit failure after a database task has completed), or process instances
halting or entering otherwise unintended states.

Environment

All supported operating systems, Oracle database

Resolution

Update the JVM configuration for the ActiveMatrix BPM node to use the following
Oracle connection property:

   autoCommitSpecCompliant=false

This setting overrides the default behaviour of the JDBC driver so that it does
not throw a SQLException if auto-commit is enabled, allowing the commit or
rollback operation to succeed.

To set this property:

1. Open ActiveMatrix Administrator.
2. Click Infrastructure > Nodes.
3. Select the BPM node.
4. Click Configuration > JVM Configuration.
5. In the "General Args" field, add the argument:
   
   -Doracle.jdbc.autoCommitSpecCompliant=false
   
6. Save your changes.

Issue/Introduction

Resolving "Could not commit with auto-commit set on" SQLExceptions From Oracle 12c JDBC Driver