2009-12-28 2 views
1

내 응용 프로그램이 server1의 1-10K, server2의 10-10K와 같은 여러 데이터베이스에 걸쳐있는 경우 올바른 데이터베이스를 가리 키도록 세션 개체를 어떻게 수정할 수 있습니까?nhibernate 세션에서 다중 연결 문자열을 가질 수 있습니까?

nhibernate의 세션에서 연결 문자열을 변경하면 모든 사람에게 영향을 미치고 현재 요청이 올바르지 않습니다.

답변

2

NHibernate에서 특정 데이터베이스에 연결 문자열을 보유하고 ISession 인스턴스를 생성하는 것은 ISessionFactory입니다. 다중 데이터베이스 지원의 경우 계속 진행중인 NHibernate Shards을 살펴보십시오.

+0

최대 절전 모드가 더 성숙한 지 궁금합니까? – mrblah

+0

예, 'Hibernate Shards'는 ​​더 성숙한 프로젝트입니다. –

2

한 세션에서 한 번에 하나의 연결 만 가질 수 있습니다. 더 많은 것을 갖기 위해서는 NHibernate가 기본 형식으로 지원하지 않는 분산 또는 심지어 임시 트랜잭션 의미론이 필요하다.

당신이 NHibernate를 사용하고 있다면 아마 SQL Server를 사용하고있는 것입니다. 이것은 링크 된 서버와 뷰에 가장 적합한 후보로 들립니다. 모든 다른 데이터베이스의 데이터를 통합하는 뷰가있는 "기본"데이터베이스를 하나 가질 수 있습니다. 사실 이것은 테이블 파티셔닝에 대한 꽤 표준적인 접근 방식이며, 유일한 차이점은 기본 테이블이 다른 데이터베이스에 있다는 것입니다.

관련 문제