struts1.3 + spring1.2 + tomcat + oracleで開発中です。
DBCPでコネクションがプーリングされた状態で、DBが停止・再起動
した場合、DB停止前からプーリングされていたコネクションは
無効になってしまいますが、これの対処はどうするのがベストでしょうか。
(1) testOnBorrow で検査する
→コネクション取得の都度発行される検査用SQLの負荷が心配
(2) testWhileIdle で検査する。
→検査スレッドの起動間隔はどれくらいが適当なのか?
(3) getConnection時に自前でリトライするロジックを組み込む
→WebSphereにある、StaleConnectionExceptionのような例外がある?
(4) もっと別の画期的な方法がある!!
以上、よろしくお願いします。
No.1ベストアンサー
- 回答日時:
こんちわ。
だいぶ昔のことなので忘れてるんですが。。。
そもそもにDBCPが汎用のプールだし、汎用だからJDBCだけを利用してると思うんですが、JDBCのAPIとしてコネクションが有効か否かを検査する術がないので。。。(今はちがう?)。
(1)確実なのはこれだと思います。負荷はちょっとあるでしょうけどシビアなパフォーマンス要件や環境でなければ普通はまともなパフォーマンス、軽微な負荷程度なのではないかと思うです。DBCPの実装が不明なんですが、validationQueryは固定SQLなのでSQLキャッシュもされてパース負荷も少ないでしょうし、行を読まなければ負荷もSQLのパースとかそんな程度のものだろうし。いや1行は必要なのか。。。でもDUAL表を使えばディスクアクセスもないから。やっぱり負荷は少ないんじゃないでしょうか。
ちなみにある案件ではこれを利用しても結構快適でした。
(2)は、ためすしかないんじゃないでしょうか。(1)をやっとけば気にする必要なしとも思います。
(3)は、あったっけ。。。ないんじゃないでしょうか。ちなみにWebSphereではStaleはSQLのexecute時に発生すると記憶してます。getConnection時にはでないようなー。
(4)あったらいいなぁ(w。DB固有のコネクションプールをつかうとか。OracleならそれこそDBCPの代わりみたいなのありそうですけど。。。ないんすかね。
ご回答ありがとうございます。
(1)・・・なるほど、キャッシュもあるしDUAL表を使えば問題なさそうですね。
(3)・・・IBMのサイトに以下の例が載っていますので、StaleConnectionExceptionは、getConnection時に返るものと思われます。
try {
conn = dataSource.getConnection(user, password);
:
(connを使用したSQL処理)
:
i = 0; // リトライのためのカウンターを0にする
} catch (StaleConnectionException scex) { // Stale Connection を catch
if (conn != null) {
try {
conn.close(); // Stale Connection を close
} catch (Exception e) {
e.printStackTrace();
}
}
} catch (Exception e) {
:
(4)・・・OracleConnectionPoolDataSourceなるものがあるようですね。これに再接続の機能があればよいのですが。
調べてみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 病院・検査 健康診断との向き合い方について 4 2022/06/28 09:30
- 電気・ガス・水道業 簡易専用水道の定期清掃について 3 2023/03/26 16:36
- 弁護士・行政書士・司法書士・社会保険労務士 行政書士試験の行政法についての質問になります。 国家賠償法についての質問になります。 問 都道府県の 1 2023/08/15 13:27
- エアコン・クーラー・冷暖房機 富士通のエアコンですが、作業員に見て貰っても、以後冷房運転が時々止まり困ってます。 6 2022/07/18 19:22
- 会社・職場 健診等の健康管理に厳しい会社で働いています。 皆様の会社は如何でしょうか?ご意見が聞きたいです。 弊 4 2023/08/22 20:15
- 事件・犯罪 事情聴取 前歴について。 4 2023/03/03 14:41
- 政治 福島原発「処理水」の海洋放出実施時の補償 93 2023/07/22 17:47
- 呼吸器・消化器・循環器の病気 高齢者の肺マック症と気管支鏡検査のリスクについて 3 2022/11/12 19:58
- 政治 山上徹也には同情する国民も多い。死刑なんかにしたら殉教者に成ってしまう。 11 2022/07/25 11:19
- その他(国内) 旅行支援で必要な陰性証明書について 1 2023/01/16 15:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
至急!尿検査前日にオナニーし...
-
尿検査前日に自慰行為した時の...
-
白血球が多いとどんな心配があ...
-
尿検査の前日は自慰控えたほう...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
勃起する時って痛いんですか? ...
-
EXCELで条件付き書式で空白セル...
-
腕を見たら黄色くなってる部分...
-
EXCELで式からグラフを描くには?
-
変な話しになります。尿検査で...
-
excelでsin二乗のやり方を教え...
-
エクセル指定した範囲からラン...
-
Excelで""で囲む方法
-
ある範囲のセルから任意の値を...
-
2つの数値のうち、数値が小さい...
-
精子が黄色?
-
エクセルでエラーが出て困って...
-
納豆食べた後の尿の納豆臭は何故?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
至急!尿検査前日にオナニーし...
-
首吊りどこ締めるの
-
尿検査の前日は自慰控えたほう...
-
尿検査前日に自慰行為した時の...
-
検便についてです。 便は取れた...
-
白血球が多いとどんな心配があ...
-
中出しをするとお腹が痛い・・・。
-
射精をして1週間以内に尿検査を...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
変な話しになります。尿検査で...
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
男です。昨日の午後3時くらいに...
-
今朝、毎朝の習慣でオナニーし...
-
納豆食べた後の尿の納豆臭は何故?
-
1日前の検尿
-
値が入っているときだけ計算結...
-
精子が黄色?
おすすめ情報