2009-11-11 2 views
0

Je refactoring du code, en convertissant un certain nombre de mises à jour connexes en une seule transaction.Comment savoir où un COMMIT pourrait se produire?

Ceci utilise JDBC, MySQL, InnoDB.

Je crois qu'il y a un COMMIT indésirable se produisant quelque part dans la bibliothèque (plutôt grande et non documentée) ou le code d'application.

Quelle est la manière la plus simple de savoir où cela se passe?

Il doit y avoir une sorte de validation implicite, car je ne trouve aucune instruction COMMIT.

Répondre

1

Extrayez this page in the MySQL docs pour les instructions qui provoquent une validation implicite.

En outre, puisque vous utilisez JDBC, assurez-vous que autocommit est faux, comme dans

connection.setAutoCommit(false); 
+0

En regardant la liste réellement aidé, après avoir trouvé les paramètres du journal de requêtes my.cnf. –

0

Je ne suis pas un expert avec MySQL, mais il devrait être possible de se connecter toutes les instructions exécutées dans un fichier et/ou console. Cela aidera probablement. Si vous pouvez déboguer à travers les points d'arrêt de jeu de code juste avant les validations que vous connaissez, puis jetez un coup d'œil aux instructions consignées. Ainsi, vous verrez probablement s'il y a ou non un commit indésirable.

Questions connexes