[Seasar-user:8413] Re: Synchronization:afterCompletion(int status)の呼び出しに関して
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2007年 6月 18日 (月) 16:45:20 JST
小林 (koichik) です.
Date: Mon, 18 Jun 2007 16:06:56 +0900
From: 鈴木 順 <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:8402] Synchronization:afterCompletion(int status)の呼び出しに関して
> 現状のソースを見てみたところ、Transactionがcommitされた場合のみafterCompletionが呼び出されていると思われます。
Transaction#rollback() が呼び出された場合は
afterCompletion() は呼び出されます.
しかし,Transaction#commit() が呼び出された中でコミット
できなかった場合は afterCompletion() が呼び出されないで
抜けてしまいますね...
これはバグですので修正します.
> S2Hibernateのorg.seasar.hibernate3.impl.S2SessionFactoryImplでは
> SynchronizationImpl:afterCompletionがコールバックされた際に、
> Session(Hibernateの)の開放を行っていると思われます。
> その為、SessionがCloseされない(コネクションの開放漏れが起こるのでは?)と推測します。
トランザクションコミット時に beforeCompletion() で
例外が発生した場合などにそうなります.
--
<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 メーリングリストの案内