[Seasar-user:21160] Re: 動的なデータソース切り替えについて
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]
2011年 11月 16日 (水) 20:24:23 JST
小林さん
大久保です。
ありがとうございます。
その方法で試してみます。
よろしくお願いいたします。
Koichi Kobayashi <[E-MAIL ADDRESS DELETED]>:
> 小林 (koichik) です.
> > デフォルトではJdbcManagerやDataSourceFactoryがシングルトン(デフォルトの
> ライフサイクル)のため、
> > 一度dataSourceFactory.setSelectableDataSourceName(dataSourceName)を実行
> してしまうと、
> > 次のリクエストから同じDBのコネクションを取得してしまいます。
> Interceptor で datasourceName を設定しているなら、try〜finally で
> 確実に初期値に戻せるはず。
> というか、次のリクエストでも Interceptor が datasourceName を
> 設定するはずですよね?
> > また、複数スレッドから同時アクセスされる場合、タイミングによっては、
> > 適切なDBへのコネクションが取れないのではないかと思います。
> ThreadLocal に情報を持っているのでその心配はありません。
> Date: Wed, 16 Nov 2011 10:19:23 +0900
> From: 大久保俊 [E-MAIL ADDRESS DELETED]>
> Subject: [Seasar-user:21144] 動的なデータソース切り替えについて
> > お世話になっております。大久保と申します。
> >
> > 現在、SAStruts+S2JDBCを使ってウェブアプリケーションを作成しています。
> >
> > 今回、『Seasar2徹底入門』の7.3章の「動的にデータソースを切り替える」を参
> 考に、
> > DBの振り分け(マスタ、スレーブ)をしようと考えています。
> > (SelectableDataSourceProxyを使う方法です。)
> > 具体的には、Actionのメソッドに対してアノテーションでマスタ向けかスレーブ
> 向けかを指定し、
> > SwichDataSourceInterceptorでアノテーションの情報を元に、
> > dataSourceFactory.setSelectableDataSourceName(dataSourceName)を実行して
> います。
> > (アノテーションがない場合は、マスタ向けとしています。)
> >
> > デフォルトではJdbcManagerやDataSourceFactoryがシングルトン(デフォルトの
> ライフサイクル)のため、
> > 一度dataSourceFactory.setSelectableDataSourceName(dataSourceName)を実行
> してしまうと、
> > 次のリクエストから同じDBのコネクションを取得してしまいます。
> > また、複数スレッドから同時アクセスされる場合、タイミングによっては、
> > 適切なDBへのコネクションが取れないのではないかと思います。
> > (間違っていたら、ごめんなさい。)
> >
> > この対応として、JdbcManagerのライフサイクルをrequestに変更しようかと考え
> ています。
> > 動作やパフォーマンスの面で、この方法で大丈夫でしょうか?
> > もし、もっと良い方法があれば、ご教示いただければ幸いです。
> >
> > 以下、実行環境です。
> > Java 1.6
> > Tomcat 6.0
> > Seasar 2.4.41
> >
> > 分かりにくい説明で申し訳ございませんが、よろしくお願いいたします。
> --
> {
> name: "Koichi Kobayashi",
> mail: "[E-MAIL ADDRESS DELETED]",
> blog: "http://d.hatena.ne.jp/koichik/",
> twitter: "@koichik"
> }
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20111116/80da2b50/attachment.html>
Seasar-user メーリングリストの案内