私はDB2を使用しています。私はそれのためのConnectionPoolを作成しました。 「aumoCommit = false」モードで実行する必要のあるクエリの一部。autoCommit varはクローズ時にc3p0でリセットされますか?
Connection con = ConnectionPool.getConnection // wrapper
con.setAutoCommit(false);
PreparedStatment ps = con.prepareStatement(// query...);
ps.setString(...);
ps.executeUpdate();
con.commit();
ps.close();
con.close();
con.setAutoCommit(true); // should be here ?
質問です:私は最後にcon.setAutoCommit(真)の行を追加したり、C3P0は、すべて閉じられた(プールに戻さ)接続の状態をリセットする必要がありますか?
編集:いくつかのコメントの後、私は私の質問が追加する必要があります:con.setAutoCommit(false)コールが一般的に存在するか、この接続のc3P0リセット状態と、この接続がcon.setAutoCommit(false )デフォルトでは?
接続を閉じた後(プールに返す)、 'setAutoCommit'を呼び出すと、その論理ハンドルが実際に閉じられているかのように振る舞うようになります。 –
@ MarkRotteveel私の質問は、setAutoCommit(false)を呼び出す場所に関するものではありません、それは一般的にそれを呼び出す必要がありますか? – megabobik
よく動作する接続プールでは、JDBC仕様に記載されているように新しい接続であるかのように接続を初期状態にリセットする必要がありますが、すべての接続プールでそのように動作するわけではありません。 C3P0についてはわからない –