データソースオブジェクトを使用して、接続プールからOracleJDBC接続を取得しています。そして、接続を使用して、JavaからDBにいくつかのログを挿入します(Java静的メソッドを介して)。ユーザーごとに約10〜20の挿入があるので、私が行っているのは、フィルターで要求レベルで接続をコミットし、セッションレベルで接続を閉じています(セッションリスナーのsessionDestroyed()メソッドを介して)エラーは発生しませんでしたテストではありますが、実稼働環境では、次のようなエラーはほとんど発生しません。
java.sql.SQLException: execute, Exception = null (one scenario)
java.sql.SQLException: close, Exception = null (for another scenario)
これらのエラーを回避する方法は?リクエストレベルでコミットしてセッションレベルで閉じる代わりに、Java静的メソッドで接続をコミットして閉じることはできますか?
しかし、私を面白がらせているのは、Java静的メソッドに以下のロジックがあるにもかかわらず、これらのエラーが発生していることです。
if (con.isClosed() || con == null) {
DBConnectionHelper connHelper = DBConnectionHelper.createInstance();
con=connHelper.getConnection("ds");
con.setAutoCommit(false);
}
だから私は上記をチェックしているので、実行しようとしているときに接続を閉じる方法はありませんよね?しかし、なぜそれが発生するのかわからず、混乱しています。