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

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2007年 10月 23日 (火) 11:11:18 JST


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

>> しかし、ロールバック時にtotal-tx-rolled-backの数値がインクリメントされるのにも関わらず、ロールバックされずにデータがDBに登録されました。
>
>コネクションプールが XAConnection を使うように
>設定されていないとか?
>
>以下のドキュメントで「Global Transaction Support」が
>Yes の方のクラス名を「Datasource Classname Value」に
>指定しているか確認してみてはいかがでしょうか.
>
>http://docs.sun.com/source/817-2177/djjdbc.html#25789

現状、データソース クラス名には oracle.jdbc.xa.client.OracleXADataSource を指定しており、グローバル トランザクションのサポートも有効にしています。

また、j2ee.diconにおけるトランザクションマネージャ(以下、TM)の設定は以下3パターンで試してみましたが、すべて失敗に終わりました。

○TMの設定例(1)
--
<component name="transactionManager" class="javax.transaction.TransactionManager">
  @[E-MAIL ADDRESS DELETED]().getTransactionManager()
</component>
--

・結果: ×
トランザクション監視データのtotal-tx-completedやtotal-tx-rolled-backの数値がインクリメントされるが、トランザクションが有効に機能しない。

○TMの設定例(2)
--
<component name="transactionManager" class="javax.transaction.TransactionManager">
  @[E-MAIL ADDRESS DELETED]()
</component>
--

・結果: ×
トランザクション監視データのtotal-tx-completedやtotal-tx-rolled-backの数値がインクリメントされず、トランザクションが有効に機能しない。


○TMの設定例(3)
--
<component name="transactionManager" class="org.seasar.extension.j2ee.JndiTransactionManager">
  <arg>initialContext</arg>
  <arg>"java:pm/TransactionManager"</arg>
</component>
--

・結果: ×
トランザクション開始時に以下の例外が発生する。
--
java.lang.IllegalStateException: Operation not allowed
	at com.sun.ejb.containers.PMTransactionManagerImpl.begin(PMTransactionManagerImpl.java:62)
	at org.seasar.extension.j2ee.TransactionManagerWrapper.begin(TransactionManagerWrapper.java:54)
(以下省略)
--
 



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