Je viens de mettre à jour le nouveau pilote jdbc de classes12.jar vers ojdbc7.jar
Mon application a lancé une exception lors de son exécution avec 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
Mon application fonctionne toujours normalement avec classes12.jar.
J'ai fait des recherches sur Oracle:
Cette exception est déclenchée pour l'un des cas suivants:
Mais je ne pouvais pas trouver d'erreur dans ma source. S'il vous plaît aidez-moi à donner plus d'explications sur cette erreur.
Les derniers pilotes OJDBC sont plus compatibles qu’ils ne l’étaient. Vous pouvez désactiver ce comportement pour le code hérité:
-Doracle.jdbc.autoCommitSpecCompliant=false
C'est une option de la JVM.
Ce type d'exception se produit lorsque le pilote JDBC Oracle (ojdbc6.jar) version 12 ou supérieure est utilisé. La version 12 et supérieure du pilote est plus stricte que les versions antérieures du pilote.
Vous pouvez résoudre le problème, vous avez peu d'options:
Remplacez le comportement de la nouvelle version du fichier jar (ojdbc6.jar) par une configuration inférieure aux arguments de la machine virtuelle Java.
-Doracle.jdbc.autoCommitSpecCompliant = false
Utilisateurs IBM WAS, reportez-vous à ce lien :
Définissez Auto Commit dans Java/SQL:
Java:
conn.setAutoCommit (false);
Oracle:
SET AUTOCOMMIT OFF
Nous sommes IBM WAS v9 avec l’utilisation de ojbc6.jar. La configuration ci-dessus s’applique au serveur APP, à l’agent de nœud et à DMGR, puis cela fonctionne.
-Doracle.jdbc.autoCommitSpecCompliant = false
Dmgr: Gestionnaire de déploiement> Définition de processus> Machine virtuelle Java Modifier "Arguments JVM génériques"
NodeAgent: Agents de noeud> nodeagent> Définition de processus> Machine virtuelle Java
WebSphere Application Server: Serveurs d'applications> WebSphere_Portal> Définition de processus> Machine virtuelle Java Modifier les "arguments génériques JVM"