[Seasar-user:11272] Re: Sun ONE Application Server 7でのS2Txの利用方法について

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2007年 10月 24日 (水) 19:58:13 JST


お世話になります。
水口です。

>AP サーバ側の設定の問題なのか,S2 側の
>設定の問題なのか,切り分けをお願いします.
>
>Seasar2 を使わず,Servlet などで UserTransaction および
>TransactionManager と DataSource を取得して
>DB の更新後にロールバックをしてみてください.

検証の結果は、下記の2の結果となりました。

>2.UserTransaction でロールバックした場合は
>   DB はロールバックされるが,
>   TransactionManager でロールバックした場合は
>   DB はロールバックされない.

つまり、TransactionManager の取得方法に問題があるということでしょうか。

ちなみに、TransactionManagerの取得方法は以下の2つの方法で試みましたが、いずれもロールバックが失敗に終わりました。
・TransactionManager tx = (TransactionManager) com.sun.enterprise.Switch.getSwitch().getTransactionManager();
・TransactionManager tx = (TransactionManager) com.sun.jts.jta.TransactionManagerImpl.getTransactionManagerImpl();

以下のドキュメントに、「ローカルトランザクションとグローバルトランザクションはどちらも、javax.transaction.UserTransaction インタフェースによって境界が設定されるので、クライアントはこのインタフェースを使う必要があります。」という記述があります。

http://docs.sun.com/source/817-0605/detrans.html#683379

もしかしたら、Sun ONE Application Server 7 はアプリケーションから TransactionManager を利用することがサポートされていないのかもしれません。
 



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