[Seasar-user:8228] 複数データソースの設定
r.m
[E-MAIL ADDRESS DELETED]
2007年 6月 11日 (月) 21:04:35 JST
お世話になってます。
水澤です。
今回、異なるOracleのデータベースへ接続する要件があり、色々試しているのですが
うまくいきません。
どなたかご教授お願いできますでしょうか?
色々調べていると、diconの設定により、複数可能ですが、S2のバージョンが2.3以前のため
同じようにいきません。
当方利用のバージョンはS2 2.4.1になります。
-----jdbc.dicon------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
"http://www.seasar.org/dtd/components24.dtd">
<components namespace="jdbc">
<include path="jta.dicon"/>
<include path="jdbc-extension.dicon"/>
<component name="resultSetFactory"
class="org.seasar.extension.jdbc.impl.BasicResultSetFactory"/>
<component name="statementFactory"
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="xaDataSourceA"
class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
<property name="driverClassName">
"oracle.jdbc.driver.OracleDriver"
</property>
<property name="URL">
"jdbc:oracle:oci:@xxxxxx"
</property>
<property name="user">"xxxx"</property>
<property name="password">"xxx"</property>
</component>
<component name="connectionPoolA"
class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
<property name="timeout">600</property>
<property name="maxPoolSize">10</property>
<property name="allowLocalTx">true</property>
<property name="XADataSource">xaDataSourceA</property>
<destroyMethod name="close"/>
</component>
<component name="dataSourceA"
class="org.seasar.extension.dbcp.impl.DataSourceImpl">
<arg>connectionPoolA</arg>
</component>
<component name="xaDataSourceB"
class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
<property name="driverClassName">
"oracle.jdbc.driver.OracleDriver"
</property>
<property name="URL">
"jdbc:oracle:oci:@xxx"
</property>
<property name="user">"xxx"</property>
<property name="password">"xxx"</property>
</component>
<component name="connectionPoolB"
class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
<property name="timeout">600</property>
<property name="maxPoolSize">10</property>
<property name="allowLocalTx">true</property>
<property name="XADataSource">xaDataSourceDWH</property>
<destroyMethod name="close"/>
</component>
<component name="dataSourceB"
class="org.seasar.extension.dbcp.impl.DataSourceImpl">
<arg>connectionPoolB</arg>
</component>
</components>
---------------------------------------------------------------------------------------
---- app.dicon ------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
"http://www.seasar.org/dtd/components24.dtd">
<components>
<include path="convention.dicon"/>
<include path="aop.dicon"/>
<include path="app_aop.dicon"/>
<include path="teedaExtension.dicon"/>
<include path="dao.dicon"/>
<include path="dxo.dicon"/>
<include path="app_dao.dicon"/>
</components>
----------------------------------------------------------------------------
---- app_dao.dicon -----------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
"http://www.seasar.org/dtd/components24.dtd">
<components namespace="app_dao">
<include path="pre_dao.dicon"/>
<component name="DaoA" class="hogeA">
<aspect>interceptorA</aspect>
</component>
<component name="DaoB" class="hogeB">
<aspect>interceptorB</aspect>
</component>
</components>
-------------------------------------------------------------------------------------
----- pre.dicon
-----------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
"http://www.seasar.org/dtd/components24.dtd">
<components namespace="pre">
<component name="interceptorA"
class="org.seasar.dao.interceptors.S2DaoInterceptor">
<arg>
<component class="org.seasar.dao.impl.DaoMetaDataFactoryImpl">
<arg>dataSourceA</arg>
<arg>statementFactory</arg>
<arg>resultSetFactory</arg>
</component>
</arg>
</component>
<component name="interceptorB"
class="org.seasar.dao.interceptors.S2DaoInterceptor">
<arg>
<component class="org.seasar.dao.impl.DaoMetaDataFactoryImpl">
<arg>dataSourceB</arg>
<arg>statementFactory</arg>
<arg>resultSetFactory</arg>
</component>
</arg>
</component>
</components>
-------------------------------------------------------------------------------------
設定ファイルはこのようにしています。
起動時に、
avax.sql.DataSourceに複数のコンポーネント(org.seasar.extension.dbcp.impl.DataSourceImpl,
org.seasar.extension.dbcp.impl.DataSourceImpl)が登録されています
とエラーが出てしまいます。
宜しくお願いいたします。
Seasar-user メーリングリストの案内