[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 メーリングリストの案内