[Seasar-user:17733] Re: [S2JDBC]JNDIで設定されたDataSourceを利用した場合の挙動
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2009年 6月 12日 (金) 15:30:30 JST
小林 (koichik) です.
Date: Fri, 12 Jun 2009 13:42:10 +0900
From: IZUNO Tadashi <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:17728] [S2JDBC]JNDIで設定されたDataSourceを利用した場合の挙動
> JNDIで設定されたDataSourceを利用した場合と、jdbc.diconで設定したDataSourceを利用する場合で挙動が異なるので教えてください。
Tomcat 側で設定した DataSource は JTA のことを
知らないので,そのままではトランザクション制御
されません.
> (データベース情報をサーバで設定したいのは、アプリケーションサーバ毎にデータベースが異なる為です。)
通常の (ConnectionPool 等が設定されている) jdbc.dicon に
定義されている XADataSourceImpl の代わりに
DataSourceXADataSource を使ってください.
<component
class="org.seasar.extension.dbcp.impl.DataSourceXADataSource">
<property name="dataSourceName">"java:comp/env/jdbc/test"</property>
</component>
DataSourceXADataSource を使うと,指定された名前で
JNDI ルックアップした DataSource からコネクションを
取得するようになります.
jdbc.dicon の DataSource -> ConnectionPool ->
DataSourceXADataSource -> Tomcat の DataSource
という流れでコネクションが取得され,その際に JTA と
連携します.
この場合,ConnectionPoolImpl の maxPoolSize を 0 に
すると,Seasar2 側ではコネクションをプールしなく
なります.
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
Seasar-user メーリングリストの案内