[Seasar-user:18269] Re: [S2DBCP,S2DAO] DB(Oracle側)のエラーでコネクションクローズに至った場合再取得について
尾藤 浩嗣
[E-MAIL ADDRESS DELETED]
2009年 8月 12日 (水) 20:27:54 JST
びとうです。
ありがとうございます。
> ちなみに,DB サーバとの間にファイアウォールが
> あったりしないでしょうか?
> その場合,S2DBCP のアイドル時間を適切に設定しないと
> ファイアウォールによってコネクションが切断されやすく
> なります.
DBサーバと、アプリケーションサーバ(WebSphere)は同一サーバ
内なので、ネットワーク的な問題の可能性は低いのですが、
DB(Oracle11g)が、ごく稀に内部エラーを起こして例外に至ります。
-以上-
Koichi Kobayashi さんは書きました:
> 小林 (koichik) です.
>
> Date: Wed, 12 Aug 2009 18:49:40 +0900
> From: 尾藤 浩嗣 <[E-MAIL ADDRESS DELETED]>
> To: [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:18265] [S2DBCP,S2DAO] DB(Oracle側)のエラーでコネクションクローズに至った場合再取得について
>
>> S2DAOだけでなく、DBCPに関連するかもしれませんが、DBとのコネクション
>> が上記の様に例外によりクローズした場合、DBCPやS2DAOは、その
>> JDBC Connectionのインスタンスをこれ以上使用できないものとして
>> いつかのタイミングで解放する動作をするでしょうか?
>
> します.
> S2DBCP では,例外が発生したコネクションは
> 即座にクローズして,プールに戻すことは
> ありません.
>
>> SQLException I/O例外です。パイプが切断されました。
>> SQLException クローズされた接続です。
>>
>> という例外が発生したのは、S2DAOを用いて(内部的にはPreparedStatement
>> が使われていると認識しています)DML文を発行した結果でした。
>> つまり、Connectionのメソッド呼び出しではなく、PreparedStatementの
>> メソッド呼び出し時の例外に対し、S2DBCPは、Connectionをクローズする
>> でしょうか?
>
> どちらということもなく,「例外が発生したとき」です.
> 上記のような現象は Connection#prepareStatement() で
> 例外が発生しなかったのではないでしょうか.
>
> ちなみに,DB サーバとの間にファイアウォールが
> あったりしないでしょうか?
> その場合,S2DBCP のアイドル時間を適切に設定しないと
> ファイアウォールによってコネクションが切断されやすく
> なります.
>
> また,以下のドキュメントにある validationQuery
> および validationInterval を設定すると,プールから
> 取得したコネクションが生きているか検証するように
> なります.
>
> http://s2container.seasar.org/2.4/ja/jdbc.html
>
>
Seasar-user メーリングリストの案内