병합 동기화 동안 비즈니스 논리 실행
적용 대상: SQL Server
비즈니스 논리 처리기 프레임워크로 병합 동기화 과정 동안 호출되는 관리 코드 어셈블리를 작성할 수 있습니다. 어셈블리에는 동기화 중에 데이터 변경, 충돌 및 오류와 같은 다양한 조건에 대응할 수 있는 비즈니스 논리가 포함됩니다. 비즈니스 논리 처리기 프레임워크는 간단한 프로그래밍 모델을 제공하며 병합 프로세스가 어셈블리에 제공하는 데이터는 ADO.NET 데이터 집합 형식이므로 독점 인터페이스를 학습하는 대신 ADO.NET 대한 지식을 활용할 수 있습니다. 비즈니스 논리 처리기 프로그래밍에 대한 자세한 내용은 다음을 참조하세요.
API(애플리케이션 프로그래밍 인터페이스) 호출 참조: Microsoft.SqlServer.Replication.BusinessLogicSupport
비즈니스 논리 처리기를 구현하는 방법에 대한 지침: 병합 아티클에 대한 비즈니스 논리 처리기 구현
비즈니스 논리 처리기를 사용합니다
병합 동기화 프로세스는 다음을 수행하기 위해 비즈니스 논리 처리기를 호출할 수 있습니다.
사용자 지정 변경 처리
사용자 지정 충돌 해결
고객 오류 해결
참고 항목
지정한 비즈니스 논리 처리기는 동기화되는 모든 행에 대해 실행됩니다. 네트워크 서비스 또는 다른 애플리케이션에 대한 호출과 복잡한 논리가 성능에 영향을 줄 수 있습니다.
사용자 지정 변경 처리
충돌하지 않는 데이터 변경 내용을 처리하는 동안 비즈니스 논리 처리기를 호출할 수 있으며 다음 세 가지 작업 중 하나를 수행할 수 있습니다.
데이터 거부
이는 지정된 구독자 간에 변경 내용을 전파하지 않으려는 애플리케이션에 유용합니다. 예를 들어 관리자는 구독자의 파티션에 속하지 않는 삽입을 필터링하거나 구독자에서 수행된 삭제를 거부할 수 있습니다. 또 다른 예로, 인벤토리를 더 이상 사용할 수 없으므로 애플리케이션이 구독자에 입력한 주문을 거부할 수 있습니다.
데이터 수락
이 작업은 게시자 또는 구독자에서의 데이터 변경 내용을 전파하기 전에 확인할 필요가 있는 애플리케이션에 유용합니다. 예를 들어 중간 계층 애플리케이션은 필드에서 들어오는 새 주문을 검사하고 중간 계층의 확보 워크플로 프로세스와 통합할 수 있습니다.
사용자 지정 데이터 적용
이는 특정 데이터 값 또는 작업을 재정의해야 하는 애플리케이션에 유용합니다. 예를 들어 애플리케이션은 행 삭제를 행의 상태 열을 "deleted" 값으로 설정한 다음, 삭제를 수행하는 클라이언트의 ID를 추적하는 특수 업데이트로 변환할 수 있습니다. 이 방법은 감사 또는 워크플로에 유용할 수 있습니다.
사용자 지정 충돌 해결
병합 복제는 충돌 감지 및 해결을 제공하므로 기본 확인 전략을 수락하거나 충돌에 대한 사용자 지정 해결을 선택할 수 있습니다. 자세한 내용은 고급 병합 복제 충돌 검색 및 해결을 참조하세요. 충돌하는 데이터 변경 내용을 처리하는 동안 비즈니스 논리 처리기를 호출할 수 있으며 다음 두 작업 중 하나를 수행할 수 있습니다.
기본 해결 수락
충돌을 검토하고, 추가 작업을 수행하고, 사용자 지정 충돌 로그 메시지를 기록해야 할 수 있는 애플리케이션에 유용합니다.
사용자 지정 해결 수행
이는 비즈니스 논리와 관련된 데이터 값을 선택하고 이 사용자 지정 데이터 세트와 동기화 프로세스를 제공해야 하는 애플리케이션에 유용합니다. 예를 들어 애플리케이션은 게시자 및 구독자 데이터 집합의 값을 결합하여 새 버전의 적용되는 행을 제공할 수 있습니다.
고객 오류 해결
오류가 발생하는 변경 내용을 전파하는 동안 사용자 지정 논리를 호출할 수 있습니다. 논리는 다음 두 작업 중 하나를 수행할 수 있습니다.
기본 오류 해결 수락
이 기능은 오류를 검토하고 추가 작업을 수행하고 사용자 지정 오류 로그 메시지를 기록해야 할 수 있는 애플리케이션에 유용합니다.
사용자 지정 오류 해결 적용
이는 비즈니스 논리와 관련된 데이터 값을 선택하고 이 사용자 지정 데이터 세트와 동기화 프로세스를 제공해야 하는 애플리케이션에 유용합니다. 예를 들어 복제 프로세스에서 중복 키 위반이 발생하는 경우 비즈니스 논리 처리기는 키가 더 이상 충돌하지 않는 새 버전의 데이터 변경을 제공할 수 있습니다. 그러면 게시자 및 구독자에서 변경한 내용이 데이터베이스에 유지될 수 있으며 복제 프로세스에서 삭제로 실패한 삽입을 보정할 필요가 없습니다.
비즈니스 논리 처리기에 대한 배포 시나리오
비즈니스 논리 처리기는 다음에 배포할 수 있습니다.
배포자. 비즈니스 논리가 배포자에서 실행되도록 밀어넣기 구독을 사용합니다.
구독자입니다. 비즈니스 논리가 구독자에서 실행되도록 끌어오기 구독을 사용합니다.
웹 동기화를 사용하는 경우 IIS(인터넷 정보 서비스) 서버입니다. 웹 동기화와 동기화된 끌어오기 구독을 사용하면 비즈니스 논리 처리기가 IIS 서버에서 실행됩니다.