2011-02-11 3 views
0

질문이 있습니다 NHibernate에서 이것을 수행하는 방법이 있습니까 : 데이터베이스가 오프라인 일 때 (연결 오류 등) 모든 변경 사항을 로컬 또는 다른 곳에 유지하고 데이터베이스가 올 때 온라인,이 두 데이터베이스를 resyncronize하십시오.NHibernate 오프라인 모드

어떻게 하시겠습니까? 감사합니다

답변

3

그건 NHibernate의 범위 밖입니다.

더 높은 수준의 레이어 (오류를 포착하고 다른 곳에 저장하는 세션 상단의 추상화) 또는 낮은 수준의 레이어 (연결 세부 정보를 숨기는 IDriver 구현)에서이 작업을 수행 할 수 있습니다.

둘 다 복잡합니다. 더 나은 선택은 복제 지원이있는 데이터베이스 (SqlServer는 한 가지 예입니다)를 사용하고 항상 로컬 DB와 함께 작업하고 복제 엔진이 동기화를 처리하도록하는 것입니다. 이 (어쨌든 모든 패턴에서 발생) 갈등 관리의 추가 문제

+0

MS Syncronization Framework은 어떤가? nhibernate와 함께 사용할 수 있습니까? – Luka

+0

어쩌면 ... 나는 그것을 사용하지 않았다. –

0

는 NH 범위를 벗어 디에고에 동의했다 물론

. 그 후 솔루션은 명령 패턴을 사용하여 수정 요청을 업데이트하고 각 요청을 신뢰할 수있는 대기열 (예 : MSMQ)에 넣고이 대기열의 끝에있는 실제 DB 업데이트를 수행 할 수 있습니다. 클라이언트 응용 프로그램이 NET에서 벗어나면 곧 대기열에서 변경 사항이 유지되고 연결이 다시 시작됩니다.