2010-04-22 3 views
1

다른 SQL Server 데이터베이스간에 변경 내용을 동기화하는 동기화 응용 프로그램을 디자인하려고합니다.동기화 프레임 워크 : SqlSyncProvider ItemConflicting 대 ApplyChangeFailed

ItemConflicting 이벤트 수신, 충돌과 관련된 지식 저장 및 모든 충돌을 오프라인으로 해결하는 것에 기반한 디자인이 등장했습니다.

그러나 ApplyChangeFailed 이벤트 만 발생시킬 수있는 것으로 보입니다. SqlSyncProvider가 ItemConflicting 이벤트를 사용하지 않는 몇 가지 이유가 있습니까? 나는 사건에 잘못 붙어 있나?

내가 걱정하는 이유는 ItemConlficting 이벤트를 사용하면 충돌을 기록하고 ApplychangeFailed 이벤트로 달성 할 수없는 방식으로 나머지 동기화를 계속할 수 있기 때문입니다.

답변

0

ApplyChangeFailed는 단순히 충돌 또는 오류를 표시하기 위해 발생합니다. 충돌을 해결하거나 해결할 행의 지정 여부에 관계없이 동기화 프로세스를 계속 진행할 수 있어야합니다.

"지식"을 저장한다는 의미가 확실하지 않습니까? 동기화 지식을 언급하고 있습니까? 아니면 충돌하는 행을 언급하고 있습니까?

ApplyChangeFailed 이벤트 매개 변수에는 필요한 경우 충돌하는 행에 액세스 할 수있는 속성이 있습니다. 그런 다음 conflictign 행을 인터셉트 한 다음 ApplyAction을 continue 또는 RetryNextSync로 설정할 수 있습니다.

관련 문제