[Seasar-user:11365] Re: requiresNewTxにてcommit時に例外が発生した場合にRollbackされない
鈴木 順
[E-MAIL ADDRESS DELETED]
2007年 10月 31日 (水) 22:06:29 JST
小林さん
ありがとうございます。鈴木です。
jdbc.diconは以下の様になってました。
<component name="DataSource"
class="javax.sql.DataSource">
@[E-MAIL ADDRESS DELETED]("java:comp/env/jdbc/cim")
</component>
XADataSourceに変えてみます。
org.seasar.hibernate3.S2SessionFactoryで
XA対応されているものってないのでしょうか?
試せるのが明日になりますので、また明日報告させていただきます。
On Wed, 31 Oct 2007 21:30:26 +0900
Koichi Kobayashi <[E-MAIL ADDRESS DELETED]> wrote:
> 小林 (koichik) です.
>
> Date: Wed, 31 Oct 2007 20:31:02 +0900
> From: 鈴木 順 <[E-MAIL ADDRESS DELETED]>
> To: [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:11363] Re: requiresNewTxにてcommit時に例外が発生した場合にRollbackされない
>
> > 環境はTOMCATでDataSourceはweb.xmlに定義してあります。
>
> これが原因でしょう.
> トランザクションマネージャと連携するには,
> 単なる DataSource ではなく XADataSource が
> 必要です.
>
> 対応としては,
>
> 1.Tomcat 側で XADataSource を設定する.
> 2.S2DBCP を使用する.
> 3.S2DBCP で Tomcat の DataSource を使用する.
>
> などの方法が考えられます.
>
> 1.の場合は XADataSource に加えて JTA 実装も
> Tomcat 側に定義することになります.
> JOTM を使うことが多いようですが,自分は詳しく
> ありません.
>
> 2.は Seasar2 の一般的な利用方法です.
>
> 3.は jdbc.dicon に Tomcat 側の DataSource を
> 利用する DataSourceXADataSource を定義します.
> # XADataSourceImpl は不要になります.
> ConnectionPoolImpl の maxPoolSize を 0 にすることで,
> S2DBCP としてはコネクションプールを行わなくなります
> (トランザクションマネージャとの連携のために使用する).
>
> <component name="xaDataSource"
> class="org.seasar.extension.dbcp.impl.DataSourceXADataSource">
> <property name="dataSourceName">"java:comp/env/jdbc/DataSource"</property>
> </component>
> <component name="connectionPool"
> class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
> <property name="maxPoolSize">0</property>
> ...
> </component>
>
>
> --
> <signature>
> <name>Koichi Kobayashi</name>
> <e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
> </signature>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
Seasar-user メーリングリストの案内