[Seasar-user:2593] Re: [S2Hibernate] WebSphere のトランザクションマネージャの使用について
Yasuo Higa
higa
2005年 9月 22日 (木) 13:31:56 JST
<[E-MAIL ADDRESS DELETED]> の、
"[Seasar-user:2592] [S2Hibernate] WebSphereのトランザクションマネージャの使用について" において、
"Yamada Osamu <[E-MAIL ADDRESS DELETED]>"さんは書きました:
ひがです。
> 山田と申します。
>
> WebSphere 5.1 + seasar2.2.10 + s2hibernate1.0.6b4を使っております。
>
> トランザクションマネージャをWebSphereのもの(com.ibm.ws.Transaction.
> TransactionManagerFactory)を使用していいますが、
> commit()/rollback()時にS2Sessionが解放されないという現象が
> 起きています。
>
WebSphere5だと、
<component name="transactionManager"
class="org.seasar.extension.j2ee.SingletonTransactionManager">
<arg>"com.ibm.ejs.jts.jta.TransactionManagerFactory"</arg>
<arg>"getTransactionManager"</arg>
</component>
を使うんじゃないかと思うんですが、5.1だともしかして違いますか?
> 調べたところ、S2SessionFactoryクラスのafterCompletion(int status)
> が実行されたときに、アクティブトランザクションの取得結果がNULLに
> なっていました。またstatusも3(STATUS_COMMITTEDでしょうか)が
> 渡されているため、アクティブトランザクションが既に破棄されているのでは
> と推測しています。
>
> そこで、質問ですが
> これはS2SessionFactoryが期待したとおりの結果でしょうか?それとも
> WebSphereのトランザクションマネージャによる問題と考えるべきでしょうか。
>
afterCompletionのタイミングでアクティブなトランザクションが
存在するかどうかは、実装依存かもしれません。
前のS2Hibernateは、beforeCompletionで制御していたので、
問題なかったのですが、ロールバック処理の絡みで、
afterCompletionに持っていったのが、今回の引き金ですね。
というわけで、修正した方がいいと思います。
S2Hibernateチームの人。
---
ひがやすを(http://d.hatena.ne.jp/higayasuo/)
Seasar-user メーリングリストの案内