[Seasar-user:1891] Re: 論理的なコネクションが閉じられない?

Shotaro Tsubouchi sho-ta
2005年 4月 28日 (木) 14:15:34 JST


坪内です。

> ひがです。
>
> 2次キャッシュを使っているなら、オフにしてみるのも手です。
> 2次キャッシュは危険というのが私個人の考え。

むぅ、危険ですか。。現状はテスト中なのでオフにしてありますが、
実運用でもやめておきますかね。レスポンスは今のところ悪くないですし。

> OpenSessionInViewなんて使ってないですよね。

自分は近いことをやってます。。
S2StrutsでActionにトランザクションを掛けている状況なので。

>>>>そもそもコードを眺めることになったのは,閉じられないコネクションが
>>>>残るケースがあったためですが,発生条件が特定できず,未熟者なので
> 常に再現できるなら、解決策も考えられると思います。

今気付きましたが、S2Hibernateはどこかでトランザクションが掛かっていないと
セッションはコネクションプールのタイムアウトまでクローズされません。
(S2SessionImpl#closeがTransactionImpl#afterCompletionからしか呼ばれていないので)
トランザクションを掛け忘れているところがあると常に再現します。

http://homepage3.nifty.com/seasar/s2hibernate.htmlでも
「SessionはJTAのトランザクション中は維持され、
 トランザクションの終了時に自動的にクローズ(flushも)されます。」
とあるので仕様かもしれませんが、どこかで解放できないものでしょうか?




Seasar-user メーリングリストの案内