[Seasar-user:11366] Re: requiresNewTxにてcommit時に例外が発生した場合にRollbackされない
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2007年 10月 31日 (水) 23:00:34 JST
小林 (koichik) です.
Date: Wed, 31 Oct 2007 22:06:29 +0900
From: 鈴木 順 <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:11365] Re: requiresNewTxにてcommit時に例外が発生した場合にRollbackされない
> jdbc.diconは以下の様になってました。
>
> <component name="DataSource"
> class="javax.sql.DataSource">
> @[E-MAIL ADDRESS DELETED]("java:comp/env/jdbc/cim")
> </component>
JTA 実装を含んだ AP サーバを利用する場合は上記の
ような設定になります.
# jta.dicon の変更も必要になりますが.
その場合,ルックアップした DataSource の水面下では
XADataSource が使われ,AP サーバの持つ JTA 実装と
連携します.
Tomcat は (標準では) JTA 実装を持たないし,普通に
commons DBCP を使った場合は水面下に XADataSource が
いるわけでもありません.
そのため,JTA とは連携しません.
> XADataSourceに変えてみます。
[Seasar-user:11364] の 3 では ConnectionPool や
<component name="DataSource"
class="org.seasar.extension.dbcp.impl.DataSourceImpl"/>
の設定も必要なのでお忘れなく.
# S2DBCP を普通に使う場合とほとんど同じ設定で,
# XADataSourceImpl が DataSourceXADataSource に,
# ConnectionPoolImpl の maxPoolSize が 0 に
# 変わるだけです.
> org.seasar.hibernate3.S2SessionFactoryで
> XA対応されているものってないのでしょうか?
S2Hibernate では Hibernate 側に XA を
意識させないようになっています.
今回の問題は Hibernate は一切関係なく,
JDBC を直接使った場合でも同じように
S2Tx によるトランザクション制御が機能しない
状態になります.
--
<signature>
<name>Koichi Kobayashi</name>
<e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
</signature>
Seasar-user メーリングリストの案内