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