동기화 악몽 - IIS 없이 2개의 SQL CE 인스턴스 간에 병합 복제(또는 RDA)를 사용할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/1291346

문제

우리는 다음 사항을 동기화하는 것과 관련된 다음 문제에 직면해 있습니다.

  • 1개의 중앙 집중식 서버(IIS / MSSQL 2005)
  • ClickOnce에서 배포하는 많은 데스크톱 WPF 클라이언트
  • 많은 모바일 클라이언트 - (Windows CE)

대체 텍스트 http://img502.imageshack.us/img502/8246/deployment.png

다음과 같은 까다로운 제약 조건이 적용됩니다.

  • 모든 동기화 관계는 양방향입니다.
  • 데스크톱 및 모바일 노드에는 오프라인 모드가 필요합니다.
  • 모바일 노드는 중앙 서버와 동기화할 수 없지만 USB를 통해 데스크톱 노드와 동기화됩니다.데스크톱 노드는 중앙 서버가 아닌 모바일 클라이언트용 서버 역할을 합니다.그런 다음 모바일 노드의 업데이트는 데스크톱과 동기화한 다음 해당 데스크톱을 중앙 서버와 동기화하여 중앙 서버로 전파해야 합니다. .

끔찍한.

데스크탑과 서버를 동기화하기 위해 병합 복제를 사용할 수 있다는 것을 알고 있습니다. 서버는 공급자, 데스크탑은 구독자로서 모두 좋습니다.하지만 모바일과 데스크톱 노드를 동기화하는 것은 어떻습니까?SQL Server + ISS가 없으면 데스크톱은 게시자가 될 수 없는 것 같습니다. 그렇죠?MSSQL CE는 데스크톱에만 배포할 수 있습니다.

이런 경우에도 노드가 구독자이자 게시자일 수 있습니까?이 배열은 병합 복제 아키텍처에서 지원되지 않는 것 같습니다. 허브 앤 스포크가 유일하게 지원되는 모델인 것 같습니다.

우리는 가능한 솔루션으로 RDA 또는 병합 복제를 제거할 수 있는지 확인하려고 노력하고 있습니다. 그렇다면 아마도 MS Sync Framework를 추구할 것입니다.

아마도 우리가 고려할 수 있는 다른 기술이 있을까요?

모두 감사합니다.

애쉴리

업데이트:우리는 이제 막 MS Sync Framework를 사용하기 시작했는데 정말 훌륭합니다!

도움이 되었습니까?

해결책

귀하의 특정 질문과 직접적인 관련이 없는 이유로 RDA/병합 복제를 가능한 솔루션으로 제거할 수 있다고 생각합니다.Microsoft는 이를 광고하지 않지만(분명한 이유로) 복제 프로세스 도중에 네트워크 연결이 끊어질 수 있는 조건(Windows Mobile 클라이언트에서 매우 자주 발생함)에서는 병합 복제가 100% 신뢰할 수 없습니다.

이 문제로 인해 클라이언트 데이터베이스에 대한 변경 사항이 때때로 마스터 데이터베이스에 완전히 전파되지 않는 경우가 있지만 이러한 일이 발생했다는 징후는 감지할 수 없습니다.상상할 수 있듯이 이는 나쁜 일입니다. 특히 RDA가 광고된 대로 작동한다는 가정을 기반으로 이 솔루션을 고객에게 판매한 경우에는 더욱 그렇습니다.이 문제에 대해 우리가 찾은 유일한 단기 해결책은 매우 투박한 이중 중복 프로세스를 구현하여 클라이언트에서 추가되거나 수정된 ​​각 레코드가 오류 없이 서버에 전달되는지 확인하는 것이었습니다.장기적인 해결책은 다시는 RDA를 어떤 용도로도 사용하지 않는 것이었습니다.

이 문제는 RDA의 최신 버전에서 수정되었을 수 있지만(2년 전 최신 버전에서 문제가 발생했습니다), 저는 결코 알 수 없습니다(한 번 물린 후 두 번 부끄러움).

업데이트:그건 그렇고, 이것에 대해 이야기를 나눈 많은 사람들(Microsoft 지원 기술 포함)이 이것이 사실일 수 있다는 것을 부인했지만 확인하는 것은 매우 쉽습니다.클라이언트에 많은 데이터를 추가한 다음 복제를 시작한 다음 중간에 장치에서 USB 케이블을 빼냅니다(클라이언트가 ActiveSync를 통해 Windows Mobile에 연결되어 있다고 가정).

내가 약간 불만스러워 보인다면 부분적으로는 이것이 MS 기술이 마침내 말하도록 강요받은 것이기 때문입니다(실제 인용문)."음, 계속 복제하세요. 데이터는 결국 병합될 것입니다."

다른 팁

확인하십시오 협업 시나리오 Microsoft Framework 2.0의 (피어 투 피어). 공급자는 두 개의 SQL Server Compact 데이터베이스를 직접 동기화 할 수 있도록합니다. 또한 다른 제공 업체와 직접 동기화 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top