接続プールを使用する場合、接続のautocommit = falseを設定すると、この接続にのみ影響しますか?
autocommit = trueを設定せずにこの接続を閉じて新しい接続を取得した場合、この接続のポリシーはautocommit = trueに設定されますか?
接続プールを使用する場合、接続のautocommit = falseを設定すると、この接続にのみ影響しますか?
autocommit = trueを設定せずにこの接続を閉じて新しい接続を取得した場合、この接続のポリシーはautocommit = trueに設定されますか?
その答えは、「使用する接続プールに依存する」ということです。
ただし、接続プールの場合は、初期構成に従って自動コミット状態を復元します。他の接続プールでも同じことができると思います。
テスト シナリオ:
結果:この特定の接続を再利用しても、autocommit=falseのままです (他の新しい接続のデフォルトの autocommit=true)。したがって、データベース側でこの接続を切断してコードを再度呼び出すと、プールはデフォルトの autocommit=true で新しい接続を提供します。
結論:この接続のみに影響しますが、閉じる前に必ず autocommit=true に設定してください! (これは実際のテストに基づいており、仮定ではありません)
注: この動作はここにも記載されています: http://www.coderanch.com/t/583969/JDBC/databases/Tomcat-connection-pool-auto-commit
Tomcat7、Java 1.7、MySQL5.6、Connector/J 5.1 で JDBC を使用しています。