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

A "Caused by: java.sql.SQLException: Could not commit with auto-commit set on" SQLException is reported in the BPM node log file.

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.

To resolve the problem, 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.

Prerequisites

Procedure

  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.