[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 メーリングリストの案内