2009-07-04 7 views
2

웹 응용 프로그램에서 SubSonic v2.3 사용. 각 클라이언트 (200+)는 자체 데이터베이스를 갖습니다. 우리는 데이터베이스 호출을위한 저장소를 생성 할 때 클라이언트에 대한 연결 문자열을 넣었습니다. 지금 우리가 보는 것은 클라이언트 A가 클라이언트 B와 거의 동시에 요청을 할 수 있다는 것입니다. 클라이언트 A는 클라이언트 B의 데이터를 얻을 수 있습니다. 이것은 각 클라이언트가 동일한 페이지를 요청할 때 발생하는 것으로 보입니다. 나는 SubSonic이 하나의 DB를 위해 만들어 졌음을 알고 있지만, 다중 데이터베이스 지원을 얻기 위해 기본 공급자에서 연결 문자열을 전환하는 것에 관한 여러 게시물을 읽었습니다. 확인해야 할 사항에 대한 통찰력이 도움이 될 것입니다.다중 데이터베이스 문제

답변

2

모든 것은 스레딩과 관련하여 해결됩니다. 2.2 (현재 버전)에서는 SharedDbConnectionScope를 사용하여 호출을 래핑 할 수 있습니다. 그러면 연결 문자열이 재설정됩니다.

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

이렇게하면 스레드로부터 안전한 방식으로 호출이 격리되고 연결 문자열이 변경됩니다. 이 문제에 대한 우리의 문서를 업데이 트해야합니다 ...

+0

나는 3.0이 여러 공급자를 가질 수 있다는 것을 알아 챘습니다. 이것이 3.0에서 이것을 비웃을 방법일까요? 2.3에서 여러 공급자를 만드는 방법에 대해 생각해 보았습니다. – JayGlynn