2011-02-05 3 views
2

Sync Framework 2.1에서 일괄 처리는 내장 된 지원 기능을 제공하는 것으로 보이므로 일부 공급자에서는 일괄 처리 크기와 스풀 파일 위치 (및 일부 다른 특성)를 언급 할 수 있으며 일괄 처리가 처리됩니다. 개발자는 자체 일괄 처리 논리를 작성할 필요가 없습니다.Sync Framework 2.1에서 사용자 지정 변경 내용 추적과 함께 일괄 처리를 사용하는 방법?

그러나 SQL Server 변경 내용 추적 기능을 제공하는 SqlSyncProvider 또는 DbSyncProvider와 같은 일부 공급자에서만 작동합니다. 사용자 지정 변경 내용 추적을 허용하는 ClientSyncProvider 및 DBServerSyncProvider와 같은 이전 공급자는 많은 개선이없는 것 같습니다. 새로운 일괄 처리 기능을 어떻게 사용할 수 있으며 맞춤 변경 추적 로직을 유지할 수 있는지 생각해보십시오.

커스텀 로직이 비대칭 데이터베이스를 처리하기 때문에 (서버 db가 복수 점유되고 각 클라이언트 db가 단일 임차인 인 경우) 내장형 변경 추적으로 전환 할 수있는 옵션이 없습니다.

답변

2

우리는 마침내 우리 자신의 사용자 지정 일괄 처리 솔루션을 구현하기로 결정했습니다 .- 루프에서 synchronize 메소드를 실행하여 last_sync_anchor와 new_sync_anchor 사이의 간격을 500으로 제한했습니다. 그 쯤.

바이트 인수를 제한 요소로 사용하는 MS 구현과 비교해도 이상적인 것은 아니지만 이는 우리를 위해 작동하며 변경 내용 추적 및 동기화에 대한 사용자 지정 구현을 고수 할 수 있습니다.

+0

안녕하세요 Shenoy 맞춤 배치를 구현하는 방법을 설명해 주시겠습니까? – Amalka

+0

배치 크기를 사용하여 증분 sp에 대한 매개 변수를 사용하여 처리했습니다. 매번 마지막 동기 앵커와 현재 시간 사이의 모든 행을 반환하는 대신 항상 100 행 - sp가 반환하는 100 행 이후에 상한을 설정하고 해당 테이블의 동기 앵커가 최신 행의 타임 스탬프로 설정됩니다 검색 됨. 그런 다음 동기화가 다음 배치를 위해 다시 호출됩니다. 이 방법을 사용하면 전체 동기화가 최대 개수의 행을 선택하는 루프마다 반복적으로 발생합니다. 어떤 이유로 (네트워크 대부분) 중간에 동기화가 중지되면 진행중인 마지막 배치 만 손실됩니다. –

1

일괄 처리는 SqlSyncProvider에 의해서만 지원됩니다. MemoryDataCacheSize 프로퍼티를 설정하여 DbSyncProvider에서 일괄 처리를 어느 정도 제어 할 수 있습니다. 그러나 나쁜 소식은 많은 옵션을 가지고 있지 않은 이전 버전을 사용하는 경우입니다 ...

+0

단일 멀티 테넌트 DB 동기화에 단일 테넌트 db가 여러 개인 사용자 지정 논리가 있습니다. SqlSync 공급자를 사용하여 처리 할 수 ​​없습니다. 기존 논리를 사용해야합니다. –

관련 문제