2012-06-26 1 views
0

사용자의 도움과 안내가 필요한 Sync에서 직면하는 문제를 이해해 주시기 바랍니다.동일한 데이터가 클라이언트와 서버에 모두 존재하는 경우 동기화 프레임 워크에 삽입 충돌이 너무 많음

우리가 가지고있는 것 : 1) 6 개의 공통 범위와 8 개의 템플릿 기반 범위 (CLIENT 테이블의 CLIENTID 열을 기준으로 매개 변수화)로 50 개의 동기화 된 테이블. 2) 다른 PC에서 SQL Azure로 동기화해야합니다. 3) C# WPF 앱에서 클라이언트 (CLIENTID)를 선택하고 동기화 설정 (프로비저닝)을 실행 한 다음 메서드를 사용하여 동기화 프로세스를 시작합니다.

우리는 매우 자주 직면합니다. 1) 네트워크 연결 문제/시간 초과 문제로 인해 n 번째 클라이언트에서 이미 동기화 된 클라이언트가 거의 없습니다. 앱을 닫아야합니다. 특정 클라이언트에서 프로비저닝을 다시 실행하면 Selectchanges 또는 bulkInsert가 누락되었다는 예외가 발생합니다.

2) 위의 경우, 우리는 de-StoreProvision을 사용한 다음 다시 제공합니다. 이로 인해 클라이언트와 서버는 동일한 데이터 집합을 갖게됩니다. 동기화를 진행하면 INSERT CONFLICTS를 많이 사용하여 오류를 완료하는 데 7 시간이 걸립니다.

그래서 동기화가 진행되는 동안 네트워크 연결이 실패하면 성공적으로 실행 된 범위에서 COMMIT가 발생합니까? 또는 잘 실행 된 스코프가 부분 동기화를 남겨 둡니까? 전자 조항 및 재 규정 이외의 삽입 충돌 수를 제거 할 수있는 방법이 있습니까?

감사합니다.

답변

0

동기화 프레임 워크 범위의 트랜잭션 범위는 범위 수준입니다. 범위를 동기화하고 어떤 이유로 든 중단 된 경우 해당 범위에서 적용된 모든 변경 사항이 롤백됩니다.

3 개의 범위가 있고 그 중 하나가 실패하면 해당 범위 만 롤백되고 다른 두 개는 커밋됩니다.

프로비저닝을 해제 할 때 전체 상점 또는 특정 범위 만 프로비저닝 해제/재 프로비저닝합니까?

+0

의견을 보내 주셔서 감사합니다. – Raman

+0

제안 해 주셔서 감사합니다. 네가 무슨 말을 하려는지 알 겠어. 과거에는 상점 전체를 프로비저닝하지 않았지만 이제는 특정 범위 (일반적인 범위 포함)를 해제합니다. 문제는 설치하는 동안 내 앱이 손상되거나 인터넷 연결이 개가되어 설치 프로그램을 다시 시도했지만 http://screencast.com/t/bgwWyw6PQF와 같은 오류 메시지가 표시되면 이후 문제가 발생했습니다. 특정 범위의 프로비저닝을 해제하고 다시 프로 비전해야했습니다. 이로 인해 많은 인서트 충돌로 5 배나 많은 시간을 소비하게되었습니다. 클라이언트와 서버가 이미 동기화되었다는 것을 이해하도록 SQL에서 실행할 수있는 스크립트가 있습니까? – Raman

+0

설치가 실패하고 다시 동기화하려고 할 때 또 다른 오류가 발생합니다. http://screencast.com/t/aAPeAjf5JfP – Raman