java.sql.SQLException: Could not commit with auto-commit set on at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:4443)
java, jdbc, oracle
Solution
The latest OJDBC drivers are more compliant then they where. You can turn off this behavior for legacy code:
-Doracle.jdbc.autoCommitSpecCompliant=false
It's a JVM option.
Problem
I just upgrade to new jdbc driver from classes12.jar to ojdbc7.jar My app threw an exception when was running with ojdbc7.jar: ``` java.sql.SQLException: Could not commit with auto-commit set on at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:4443) at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:4490) at oracle.jdbc.driver.T4CConnection.doSetAutoCommit(T4CConnection.java:943) at oracle.jdbc.driver.PhysicalConnection.setAutoCommit(PhysicalConnection.java:4 ``` My app still run normally with classes12.jar. I researched on oracle: This exception is raised for any one of the following cases: - When auto-commit status is set to true and commit or rollback method is called - When the default status of auto-commit is not changed and commit or rollback method is called - When the value of the COMMIT_ON_ACCEPT_CHANGES property is true and commit or rollback method is called after calling the acceptChanges method on a rowset But i couldn't find mistake in my source. Please help me give more explaination about this error.