[seasar-s2dao-dev:582] Re: 複数DBスキーマへの動的切り替えについて
Yasuo Higa
[E-MAIL ADDRESS DELETED]
2008年 1月 31日 (木) 20:25:55 JST
ひがです。
>
> お世話になります
> やまだと申します。
>
> 以前質問させて頂いた、
> 複数DBスキーマへの動的切り替えについてですが、
>
> SelectableDataSourceProxyを用いて
> 2つのDBスキーマ(DB01とDB02)をプログラムから切替えてアクセスしました。
> (S2JDBCで行いました)
>
> すると実行時、以下の警告が出力されます。
> しかしテーブルからのデータ取得(Select)は出来ています。
> -----------------------------------------------------------------
> 2008/01/28 16:10:29 org.seasar.framework.log.Logger log
> 警告: org.seasar.extension.dbcp.impl.ConnectionPoolImplのプロパ
> ティ(XADataSource)が見つからないので設定をスキップします
> 2008/01/28 16:10:29 org.seasar.framework.log.Logger log
> 警告: org.seasar.extension.dbcp.impl.ConnectionPoolImplのプロパ
> ティ(XADataSource)が見つからないので設定をスキップします
> -----------------------------------------------------------------
> この警告の原因はなぜだか教えて頂けないでしょうか。
> -----------------------------------------------------------------
>
> ・jdbc.diconの内容
> --------------------------------------------------------------
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"
> "http://www.seasar.org/dtd/components21.dtd">
> <components namespace="jdbc">
> <include path="jta.dicon"/>
> <include path="jdbc-extension.dicon"/>
>
> <component
> class="org.seasar.extension.jdbc.impl.BasicResultSetFactory"/>
> <component
> class="org.seasar.extension.jdbc.impl.ConfigurableStatementFactory">
> <arg>
> <component
> class="org.seasar.extension.jdbc.impl.BasicStatementFactory"/>
> </arg>
> <property name="fetchSize">100</property>
> </component>
>
>
> <component name="DB01DataSource"
> class="org.seasar.extension.dbcp.impl.DataSourceImpl">
> <arg>
> <component
> class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
> <property name="xaDataSource">
> <component
> class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
> <property
> name="driverClassName">"oracle.jdbc.driver.OracleDriver"</property>
> <property
> name="URL">"jdbc:oracle:oci:@DB01"</property>
> <property name="user">"DB01_user"</property>
> <property
> name="password">"DB01_pass"</property>
> <initMethod name="addProperty">
> <arg>"includeSynonyms"</arg>
> <arg>"true"</arg>
> </initMethod>
> </component>
> </property>
> <property name="timeout">600</property>
> <property name="maxPoolSize">10</property>
> <property name="allowLocalTx">true</property>
> <destroyMethod name="close"/>
> </component>
> </arg>
> </component>
>
> <component name="DB02DataSource"
> class="org.seasar.extension.dbcp.impl.DataSourceImpl">
> <arg>
> <component
> class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
> <property name="xaDataSource">
> <component
> class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
> <property
> name="driverClassName">"oracle.jdbc.driver.OracleDriver"</property>
> <property
> name="URL">"jdbc:oracle:oci:@DB02"</property>
> <property name="user">"DB02_user"</property>
> <property
> name="password">"DB02_pass"</property>
> <initMethod name="addProperty">
> <arg>"includeSynonyms"</arg>
> <arg>"true"</arg>
> </initMethod>
> </component>
> </property>
> <property name="timeout">600</property>
> <property name="maxPoolSize">10</property>
> <property name="allowLocalTx">true</property>
> <destroyMethod name="close"/>
> </component>
> </arg>
> </component>
>
> <!-- from JNDI -->
>
> <component name="dataSourceFactory"
>
> class="org.seasar.extension.datasource.impl.DataSourceFactoryImpl" />
>
> <component name="dataSource"
>
> class="org.seasar.extension.datasource.impl.SelectableDataSourceProxy"/>
> </components>
XADataSourceをコンストラクタで設定しているからですね。
プロパティで設定すると警告は消えると思います。
seasar-s2dao-dev メーリングリストの案内