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

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2013年 4月 4日 (木) 01:00:01 JST


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