[Seasar-user:21593] Re: WebSphere環境でトランザクションのresume, suspendがサポートされない

Y.Uzawa [E-MAIL ADDRESS DELETED]
2013年 4月 4日 (木) 11:07:58 JST


小林さん

お世話になっております。鵜澤です。

 リンクのご連絡ありがとうございます。勉強になりました。

 JBOSSキャッシュの件もIBMのトランザクションマネージャのポリシーと
 JBOSSの実装が噛み合ってないことなので、わざわざここで議論
 するべきでないことも理解しています。

以上です。ありがとうございました。

2013/04/04 01:00:01 Koichi Kobayashi <koichik @ improvement.jp> wrote.
> 小林 (koichik) です.
> 
> >  WAS6TransactionSynchronizationRegistryがUOWManagerをプロパティとして
> >  持っているので、UOWManagerの下で新規トランザクション管理ができるのでは
> >  と考えたのですが、そうするにしてもアプリ側がUOWActionを実装しないと
> >  いけないし、ビジネスロジックがIBMにロックインされますもんね。。
> 
> それが Seasar2 (S2Tx) でやっていることです。
> 
> http://www.ibm.com/developerworks/jp/java/library/j_j-seasar03/index.html
> 
> その場合でも、つまり UOWManager を使っても、
> suspend/resume を呼び出すことはできません。
> 
> >  とはいえTransactionManagerLookupでHibernateに渡すトランザクション
> >  マネージャを拡張できるんでなんとでもなりますが。
> 
> UOWManager をどうラップしても suspend/resume は
> できないので、なんともなりません。
> 
> JBoss Cache が suspend/resume をしない使い方に
> 限定するか、サポート対象外になるという前提で
> WAS の TransactionManager を使うか (知らずに
> GenericTransactionManagerLookup を使ってしまうと
> そうなってしまいます) のどちらかでしょう。
> 
> この件は WAS 上で JBoss Cache を使う場合の問題で
> Seasar は関係が無く、IBM に JBoss Cache のことを
> 聞いてもしょうがない気がするので、どうしても必要なら
> JBoss (RedHat) のコミュニティで相談した方がいいんじゃ
> ないかと思います。
> 
> 
> On Wed, 3 Apr 2013 11:25:34 +0900 (JST), "Y.Uzawa" <uzawa @ worksap.co.jp> wrote:
> 
> > 小林さん
> > 
> > いつもお世話様です。鵜澤です。
> > 
> > > また、TransactionSynchronizationRegistry は
> > > suspend/resume とは関係がありません。
> > 
> >  WAS6TransactionSynchronizationRegistryがUOWManagerをプロパティとして
> >  持っているので、UOWManagerの下で新規トランザクション管理ができるのでは
> >  と考えたのですが、そうするにしてもアプリ側がUOWActionを実装しないと
> >  いけないし、ビジネスロジックがIBMにロックインされますもんね。。
> >  浅はかでした。
> >  
> > > WAS では TransactionManager は
> > > サポート対象外 (存在するが、使うとサポートを
> > > 受けられない) です。
> > 
> >  知りませんでした。詳しく調べてみようと思います。
> >  そもそもTransactionManagerは開発者がAPIレベルで制御することを想定して
> >  作られて無いし当然といえば当然ですね。
> > 
> > > Hibernate との関連は意味が分かりません。
> > > 通常の使い方で Hibernate が suspend/resume を
> > > 呼び出すことがあるとは思えませんが。。。
> > 
> >  Hibernateの2ndレベルキャッシュにJbossのTreeCacheを利用した場合、
> >  このキャッシュのメカニズムではキャッシュのget、putの前後で
> >  TransactionManager#suspend, resumeを利用してるんです。
> >  なので動かなくなるかなと。当方は2ndレベルキャッシュにEhCacheを
> >  利用しているので該当はしないのですが、気になったので。
> > 
> >  とはいえTransactionManagerLookupでHibernateに渡すトランザクション
> >  マネージャを拡張できるんでなんとでもなりますが。
> > 
> > 以上よろしくお願いします。
> > 
> > 
> > 2013/04/02 21:30:00 Koichi Kobayashi <koichik @ improvement.jp> wrote.
> > > 小林 (koichik) です.
> > > 
> > > >  1.対応予定はあるかどうか
> > > 
> > > ありません。
> > > トランザクションの suspend/resume をするには
> > > TransactionManager が提供する API を使う必要が
> > > ありますが、WAS では TransactionManager は
> > > サポート対象外 (存在するが、使うとサポートを
> > > 受けられない) です。
> > > 代わりに WAS 独自の UOWManager を使う必要が
> > > ありますが、これは suspend/resume ができません。
> > > 
> > > また、TransactionSynchronizationRegistry は
> > > suspend/resume とは関係がありません。
> > > これはトランザクションがコミットまたはロールバック
> > > された時に呼び出されるコールバックを登録するだけです。
> > > 
> > > 
> > > >  2.resume、suspendの代替手段について
> > > 
> > > RequiresNew を使ってください。
> > > 
> > > Hibernate との関連は意味が分かりません。
> > > 通常の使い方で Hibernate が suspend/resume を
> > > 呼び出すことがあるとは思えませんが。。。
> > > 
> > > 
> > > On Tue, 2 Apr 2013 15:43:43 +0900 (JST), "Y.Uzawa" <uzawa @ worksap.co.jp> wrote:
> > > 
> > > > お世話になっております。鵜澤です。
> > > > 
> > > >  s2-extensionに同梱されているWebSphere用のjta-was6.dicon, jta-was7.dicon
> > > >  を利用する場合、トランザクションマネージャの実態は
> > > > 
> > > >    RestrictedTransactionManagerImpl
> > > > 
> > > >  ですが、このトランザクションマネージャはresume, suspendをサポートして
> > > >  いないと思います。この件に関して質問させてください。
> > > > 
> > > >  1.対応予定はあるかどうか
> > > > 
> > > >   TransactionSynchronizationRegistryを内部で利用していらっしゃるので
> > > >   対応すること自体はできると思いますが、なにかポリシーがありますでしょうか?
> > > > 
> > > >  2.resume、suspendの代替手段について
> > > > 
> > > >   代替と言うかそもそも、これらのAPIを利用する場合はコンポーネントを
> > > >   j2ee.requiresNewTxでアスペクトして利用するのが正しいということ
> > > >   でしょうか。
> > > > 
> > > >   しかしながら、HibernateがこれらのAPIを利用しているので、もしHibernate
> > > >   がこれらのAPIを利用するようなシーンの場合に、問題があるのではないかと
> > > >   考えています。(Hibernateでどのようなシーンで必要とされるかまでは
> > > >   わかっていないですが。)
> > > > 
> > > > 以上よろしくお願いいたします。
> > > > _______________________________________________
> > > > Seasar-user mailing list
> > > > Seasar-user @ ml.seasar.org
> > > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > > 
> > > 
> > > -- 
> > > {
> > >   name: "Koichi Kobayashi",
> > >   mail: "koichik @ improvement.jp",
> > >   blog: "http://d.hatena.ne.jp/koichik/",
> > >   twitter: "@koichik"
> > > }
> > > 
> > > _______________________________________________
> > > Seasar-user mailing list
> > > Seasar-user @ ml.seasar.org
> > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > > 
> 
> 
> -- 
> {
>   name: "Koichi Kobayashi",
>   mail: "koichik @ improvement.jp",
>   blog: "http://d.hatena.ne.jp/koichik/",
>   twitter: "@koichik"
> }
> 
> 


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