[Seasar-user:12780] Re: 【teedaExt】s2hibernateとの併用

鈴木 順 [E-MAIL ADDRESS DELETED]
2008年 2月 7日 (木) 00:14:26 JST


ひがさん

お世話になっております。鈴木です。

とりあえずApplicationInvokePhase開始前に
S2からTransactionManagerを取得して
begin→getTransactionでsessionにTransactionを入れると言うPhaseListener
と
RendererPhase後に
sessionからTransactionを取り出しあったらCommit/Rollbackをすると言うPhaseListenerを作成し、
普通のJSF方法で両PhaseListenerを有効としたら
とりあえずは動作するようになりました。
あとは例外発生時にTransactionを開放する方法を検討しようと思います。

正直JTAをあまり理解できていないので以下を教えていただけると幸いです。

そもそもTransaction管理の流儀としてTransactionManagerを操作するのが
正しいのでしょうか?MLを漁ったらUserTransactionをDIしてという方法もある
ようなので・・・
S2TestCaseを参考にコーディングしてみたら動いたと言うのが正直な状況です。

申し訳ありませんが宜しくお願いいたします。

以上




On Wed, 06 Feb 2008 17:36:46 +0900
Yasuo Higa <[E-MAIL ADDRESS DELETED]> wrote:

> ひがです。
> > 
> > お世話になっております。鈴木です。
> > 
> > 返信の方ありがとうございます。
> > 
> > invokeApplicationPhase前にトランザクション開始して、
> > renderResponsePhase後にトランザクションを終了したいと思います。
> > 
> > TeedaのVUPを常々取込みたいと考えておりますので、そのものを修正するのは避けたいと思います。
> > 
> > と言う事で、該当のPhaseで該当の処理を行うPhaseListenerの実装を作り
> > LifecycleImplにaddPhaseListenerしようと画策しております。
> > 
> > 何かLifecycleImplにPhaseListenerを設定する方法はありますでしょうか?
> > PhaseListenerAssemblerとかあるので何か方法があるかと思い質問しております。
> > 
> jarファイルに入っているteeda.diconを見ると
> LifecycleImplが定義されているのがわかります。
> それを書き換えても良いですし、
> JSF流にPhaseListenerを使ってもいいと思います。
> 
> JSFの通常のやり方で、PhaseListenerは設定できるはずです。
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user



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