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