[Seasar-user:14882] Re: S2JTA + S2Hibernate で、ConnectionPoolImpl からのコネクション取得に失敗することがある
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2008年 7月 1日 (火) 17:00:36 JST
小林 (koichik) です.
Date: Tue, 01 Jul 2008 15:06:05 +0900
From: Noriyuki Mizutani <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:14879] Re: S2JTA + S2Hibernate で、ConnectionPoolImpl からのコネクション取得に失敗することがある
> 2.4.25 のログを整形したものを添付します。
> (2つのスレッドが絡んで非常に見づらいため、エクセルで
> 色付けしました)
ありがとうございました.原因判明しました.
現在の S2DBCP はトランザクションの終了時に
コネクションをクローズしてプールに戻しています.
また,Hibernate もコネクションをクローズします.
そのため,同じコネクションに対してクローズが
2 回行われます.
コネクションプールの maxPoolSize がスレッドより
少ないと,S2DBCP がコネクションをプールに戻すと
同時に別スレッドがそのコネクションをプールから
取り出して使用します.
その後 Hibernate がコネクションをクローズすると,
そのコネクションは既に別スレッドで使われているため,
今回の現象になってしまいます.
この問題は S2JDBC でも発生する可能性があります.
S2Dao では発生しません.
対応するには S2DBCP に大きく手を加えることになるため,
rc を出すなどリリースまで時間がかかりそうなので,
現時点でたまっている修正を 2.4.26 としてリリースした後,
2.4.27 での対応にしたいと思います.
SNAPSHOT は早めに出すので,それまでは maxPoolSize を
増やして回避していただけないでしょうか.
よろしくお願いします.
--
<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 メーリングリストの案内