ablog

不器用で落着きのない技術者のメモ

コネクションプーリングを使用している場合、接続を close したときに commit/rollback されるか?

commit/rollback せずに close すると、

  • AutoCommit=false → commit される
  • AutoCommit=true → 何も行われない(SQL を実行した時点で commit/rollback されるため)

あ、Java + JDBC Thin Driver + Oracle の話です。

[参考]

自動コミット・モードを使用禁止にして、直前の変更を明示的にコミットまたはロールバックせずに接続をクローズした場合は、暗黙的なCOMMIT操作が実行されます。

基本機能

試しに実験してみました。
...
こんな感じのソースでやってみてJDevloperからDBをみてみると正常に挿入されているみたいです。

JDBCのコネクションで setAutoCommit(False)の状態で insertもし… - 人力検索はてな

Oracle JDBCのバージョンは 9.0.1.3.0 を使っています。

サポートへの問い合わせで、明示的にcommit, rollbackをしないで
コネクションをcloseした場合には、暗黙的commitが行われるとのことでした。

OTN Japan - 404 Error