[Seasar-user:18305] Re: [S2DBCP,S2DAO] DB(Oracle側)のエラーでコネクションクローズに至った場合再取得について
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2009年 8月 17日 (月) 18:30:00 JST
小林 (koichik) です.
Date: Mon, 17 Aug 2009 17:50:00 +0900
From: 尾藤 浩嗣 <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:18304] Re: [S2DBCP,S2DAO] DB(Oracle側)のエラーでコネクションクローズに至った場合再取得について
> (2) (1)のすぐ後、S2DAOを用いた別のテーブルに対するデータ取得で以下の例外が発生
実際には (2) で PreparedStatement#executeQuery() を
呼び出す前にその PreparedStatement を取得するため
Connection#prepareStatement() が呼び出されたはずですが,
そこで例外が発生してないということですね.
それを書いたのが [Seasar-user:18268] の
> > 上記のような現象は Connection#prepareStatement() で
> > 例外が発生しなかったのではないでしょうか.
です.
> DEBUGレベルのログが残っていないため、論理的なコネクション、物理的なコネクションがいつ
> 取得、閉じられたかがログから明確にならないのですが、以下の様な動作になると考えても
> 良いでしょうか?
>
> ・ (1),(2)は、PreparedStatementUtil#executeQueryでの例外発生で、ここでは物理的なコネクションは
> 閉じられない(論理的なコネクションは閉じられる)
Connection ではなく Statement のメソッドがスローした
例外では論理・物理ともコネクションはクローズしません.
# S2Dao が明示的に Connection#close() を呼び出すことで
# 論理コネクションがクローズされます.
> ・ (3) は、ConnectionUtil#prepareStatement での例外発生で、これによりdbcp実装は、
> 物理的なコネクションを閉じる(実際にDBとのコネクションはクローズされており、
> dbcpとしてもコネクションインスタンスを解放する)
はい.
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
Seasar-user メーリングリストの案内