[Seasar-user:21587] Re: WebSphere環境でトランザクションのresume, suspendがサポートされない
Y.Uzawa
[E-MAIL ADDRESS DELETED]
2013年 4月 3日 (水) 11:25:34 JST
小林さん
いつもお世話様です。鵜澤です。
> また、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
>
Seasar-user メーリングリストの案内