[Seasar-user:19235] Re: データソースの動的な切り替え

kubo [E-MAIL ADDRESS DELETED]
2010年 2月 3日 (水) 21:19:14 JST


久保(jflute)です。

徳竹さん、こんばんは

まず、複数DB(データソース)と言った場合、
よく以下の二つのことがごっちゃになりやすいので、
確認させて頂きます。

A. 違うテーブル構造のDBが二つ(以上)
B. 同じテーブル構造のDBが二つ(以上)

"A" は、プログラムが明示的に静的な接続先に
対してDBアクセスするような感じです。
"B" は、扱うデータ次第で参照するDBを
動的に変えていくことが多いです。

徳竹さんのやりたいことは、"B" と考えてよろしい
ですよね?そういう前提で以下話を進めますと...

> 色々しらべた結果、s2daoまたはdbfluteではデータソース毎にdaoとdicon定義
> を複数作成してデータソースを使えるようになるようですが、diconファイルの
で、これは "A" のためのやり方を示していますので、
やりたいこととはそもそも違うと思われます。

> また、下記のサイトように実装すればs2daoやdbfluteでもJDBCのデータソースを
> daoの追加をしないで動的に変更可能なのでしょうか?
可能です。ドキュメントの "データソースの動的な切り替え"
の部分がまさしく "B" のための方法です。

> 独自Interceptorを処理させるためのdiconファイルの設定方法をご教授お願いで
> きないでしょうか?
どこにInterceptorを仕掛けるかにもよりますが、
もし、TeedaのPageクラスに仕掛けるなら、
customizer.diconで設定可能なはずです。

dbflute-teeda-exampleの "app_aop.dicon" や
"customizer.dicon" を参考にしてみて下さい。

https://www.seasar.org/svn/sandbox/dbflute/trunk/dbflute-teeda-example/src/main/resources/app_aop.dicon
https://www.seasar.org/svn/sandbox/dbflute/trunk/dbflute-teeda-example/src/main/resources/customizer.dicon

app_aop.diconで定義された "appFacesExceptionThrowsInterceptor"
が、customizer.diconにてPageクラスで動作するように設定されています。

2010/2/3 徳竹 孝司郎 <[E-MAIL ADDRESS DELETED]>:
> 初めてご質問をさせて頂きます。
> 徳竹です。
>
>
> 開発プロジェクトで、複数データソースの切り替えを動的に行う必要があり、
> ご質問させて頂きます。
>
> 開発<teeda + s2dao またはteeda + dbflute>
>
> 色々しらべた結果、s2daoまたはdbfluteではデータソース毎にdaoとdicon定義
> を複数作成してデータソースを使えるようになるようですが、diconファイルの
> 定義を追加する事でデータソースを追加して動的にデータソースを切り替えられ
> ないでしょうか?
>
> 背景としましたは、顧客単位でDBを追加し一個のWebアプリケーションで複数の
> DBに接続して処理を実施する構成を考えております。
> よって、顧客が増える度にdao追加するのではなく、データソースの定義を追加
> して動的に使用するデータソース(DB)を選択するような実装が出来ないものか
> と思い検証しております。
>
> 以下のサイトではJDBCのデータソースを動的に変えられるような説明がありまし
> たので早速ためしたのですが、作成したInterceptorをAOPする方法(diconファ
> イルの定義方法)が分かりませんでした。。。
> (DIやAOPは、何分素人なのでご迷惑をお掛けします)
>
> 独自Interceptorを処理させるためのdiconファイルの設定方法をご教授お願いで
> きないでしょうか?
>
> また、下記のサイトように実装すればs2daoやdbfluteでもJDBCのデータソースを
> daoの追加をしないで動的に変更可能なのでしょうか?
>
> 参考URL:
> http://s2container.seasar.org/2.4/ja/jdbc.html
>
> 以上であります。
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


Seasar-user メーリングリストの案内