私は WebApp を開発していますが、メソッド間で JDBC 接続オブジェクトを共有することの長所/短所があるかどうかを知りたいです。
だから状況は
- これは、WebApp およびマルチユーザー環境です (約 1000 ユーザーが同時に使用)
- 接続プーリングをサポートするコンテナを使用しています (Weblogic Server)
- JDBC 呼び出しでトランザクションを使用しています
- 私の JDBC 呼び出しのほとんどは単一レコードの挿入/更新ですが、選択/削除は一括で発生する可能性があります
今、私は2つのアプローチを持っています
アプローチ 1 接続オブジェクトを 1 回開き、メソッド間で中継する
// Just a Pseudo Code
Cn = OpenJDBConnection() // This will open up the connection
obj.Task1(Cn, Param1, Param2);
obj.Task2(Cn, Param1, Param2);
obj.Task3(Cn, Param1, Param2);
Cn.close();
アプローチ 2 各メソッドで接続を開いたり閉じたりする
私はアプローチ1に頼っています。そうすれば、定型コードを回避できるからです。しかし、それがスレッドセーフになるかどうかはわかりませんか? 私は 100 接続のプールサイズを持っています。これは、特定の時間にアクティブな 1000 ユーザーに対しては問題ないと思います
アプローチの1つを採用する前に考慮すべきことは他にもありますか