2009-07-04 2 views
2

WebアプリケーションでSubSonic v2.3を使用しています。各クライアント(200+)は独自のデータベースを持ちます。データベース呼び出しのリポジトリを作成するときに、クライアントの接続文字列を入力しています。私たちが今見ていることは、クライアントAがクライアントBとほぼ同じ時間にリクエストを行う可能性があるということです。クライアントAはクライアントBのデータを取得する可能性があります。これは、各クライアントが同じページを要求しているときに発生するようです。私はSubSonicが1つのDB用に構築されていることを知っていますが、複数のデータベースサポートを得るために、デフォルトのプロバイダの接続文字列を切り替えることに関するいくつかの記事を読んでいます。私がチェックする必要があるものについての洞察は役に立ちます。マルチデータベースの問題

答えて

2

あなたが見ているように、スレッドはすべてスレッドの周りで解決されます。 2.2(現在のバージョン)では、SharedDbConnectionScopeで呼び出しをラップすることができます。これにより、接続文字列がリセットされます。

using(new SharedDbConnectionScope("my connection string")){ 
    //.. do your thing here 
} 

これにより、スレッドセーフな方法で呼び出しが分離され、接続文字列が変更されます。私はこれについて私たちのドキュメントを更新する必要があります...

+0

私は3.0が複数のプロバイダを持つことができます気づいた。これは3.0でこれを傷つける方法だろうか?私は2.3で複数のプロバイダを作ることを考えました。 – JayGlynn

関連する問題