[Seasar-user:2687] Re: Seasar2を用いて複数DBとのコネクションを取得するにはどうすればよいのでしょうか
Koichi Kobayashi
koichik
2005年 10月 15日 (土) 04:00:18 JST
小林 (koichik) です.
Date: Fri, 14 Oct 2005 18:24:13 +0900
From: NW李継氷 <[E-MAIL ADDRESS DELETED]>
To: <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:2686] Seasar2を用いて複数DBとのコネクションを取得するにはどうすればよいのでしょうか
> j2ee.diconでの設定を利用すれば自動的に1個のコネクションを得ら
> れます。
> 複数DBとのコネクションを取得するにはどうすればよいのでしょうか。
まず,j2ee.dicon をコピーして DB 接続ごとの dicon ファイルを
作成してください.
例えば ds1.dicon
<components namespace="ds1">
<include path="j2ee.dicon"/>
<component name="dataSource" class="...">
・・・
</component>
<component name="xaDataSource" class="...">
・・・
</component>
<component name="connectionPool" class="...">
・・・
</component>
</component>
必要なコンポーネントは 3 つだけです.
transactionManager 等のコンポーネントは削除してください.
同じように ds2.dicon も作成します.
そして j2ee.dicon から name 属性が以下の値になっている
<component> 要素を削除します.
dataSource
xaDataSource
connectionPool
ds1.dicon で記述したコネクションを使用するコンポーネント用の
dicon は ds1.dicon をインクルードします.
例えば app1.dicon
<components namespace="app1">
<include path="ds1.dicon"/>
・・・
<components>
ds2.dicon で記述したコネクションを使用するコンポーネント用の
dicon は ds2.dicon をインクルードします.
例えば app2.dicon
<components namespace="app2">
<include path="ds2.dicon"/>
・・・
<components>
もし,ds1.dicon と ds2.dicon に記述したコネクションを同時に
使用するコンポーネントがある場合は,両方をインクルードして
コンポーネントのプロパティに明示的に DataSource を設定します.
例えば app3.dicon
<components namespace="app3">
<include path="ds1.dicon"/>
<include path="ds2.dicon"/>
<component name="..." class="...">
<property name="dataSource1">ds1.dataSource</property>
<property name="dataSource2">ds2.dataSource</property>
・・・
</component>
・・・
</components>
最後に,app1.dicon や app2.dicon,app3.dicon 等を app.dicon に
インクルードします.
<components>
<include path="app1.dicon"/>
<include path="app2.dicon"/>
<include path="app3.dicon"/>
・・・
</components>
実際に確認していないので間違いがあるかもしれませんが,
だいたいこんな感じでできるかと思います.
わからない点があればまた質問してください.
--
<signature>
<name>Koichi Kobayashi</name>
<e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
</signature>
Seasar-user メーリングリストの案内