병합 동기화 중 비즈니스 논리 실행

적용 대상:SQL Server

비즈니스 논리 처리기 프레임워크를 사용하면 병합 동기화 프로세스 중에 호출되는 관리 코드 어셈블리를 작성할 수 있습니다. 어셈블리에는 동기화 중에 데이터 변경, 충돌 및 오류와 같은 다양한 조건에 대응할 수 있는 비즈니스 논리가 포함됩니다. 비즈니스 논리 처리기 프레임워크는 간단한 프로그래밍 모델을 제공하며 병합 프로세스가 어셈블리에 제공하는 데이터는 ADO.NET 데이터 집합 형식이므로 독점 인터페이스를 학습하는 대신 ADO.NET 대한 지식을 활용할 수 있습니다. 비즈니스 논리 처리기 프로그래밍에 대한 자세한 내용은 다음을 참조하세요.

비즈니스 논리 처리기 사용

병합 동기화 프로세스는 다음을 수행하기 위해 비즈니스 논리 처리기를 호출할 수 있습니다.

  • 사용자 지정 변경 처리

  • 사용자 지정 충돌 해결

  • 사용자 지정 오류 해결

참고 항목

지정한 비즈니스 논리 처리기는 동기화되는 모든 행에 대해 실행됩니다. 네트워크 서비스 또는 다른 애플리케이션에 대한 호출과 복잡한 논리가 성능에 영향을 줄 수 있습니다.

사용자 지정 변경 처리

충돌하지 않는 데이터 변경 내용을 처리하는 동안 비즈니스 논리 처리기를 호출할 수 있으며 다음 세 가지 작업 중 하나를 수행할 수 있습니다.

  • 데이터 거부

    이는 지정된 구독자 간에 변경 내용을 전파하지 않으려는 애플리케이션에 유용합니다. 예를 들어 관리자는 구독자의 파티션에 속하지 않는 삽입을 필터링하거나 구독자에서 수행된 삭제를 거부할 수 있습니다. 또 다른 예로, 인벤토리를 더 이상 사용할 수 없으므로 애플리케이션이 구독자에 입력한 주문을 거부할 수 있습니다.

  • 데이터 수락

    이 작업은 게시자 또는 구독자에서의 데이터 변경 내용을 전파하기 전에 확인할 필요가 있는 애플리케이션에 유용합니다. 예를 들어 중간 계층 애플리케이션은 필드에서 들어오는 새 주문을 검사하고 중간 계층의 조달 워크플로 프로세스와 통합할 수 있습니다.

  • 사용자 지정 데이터 적용

    이는 특정 데이터 값 또는 작업을 재정의해야 하는 애플리케이션에 유용합니다. 예를 들어 애플리케이션은 행 삭제를 행의 상태 열을 "deleted" 값으로 설정한 다음 삭제를 수행하는 클라이언트의 ID를 추적하는 특수 업데이트로 변환할 수 있습니다. 이 방법은 감사 또는 워크플로에 유용할 수 있습니다.

사용자 지정 충돌 해결

병합 복제본(replica)은 충돌 감지 및 해결을 제공하여 기본 해결 전략을 수락하거나 충돌에 대한 사용자 지정 해결을 선택할 수 있습니다. 자세한 내용은 고급 병합 복제 충돌 검색 및 해결을 참조 하세요. 충돌하는 데이터 변경 내용을 처리하는 동안 비즈니스 논리 처리기를 호출할 수 있으며 다음 두 작업 중 하나를 수행할 수 있습니다.

  • 기본 해상도 적용

    충돌을 검토하고, 추가 작업을 수행하고, 사용자 지정 충돌 로그 메시지를 기록해야 할 수 있는 애플리케이션에 유용합니다.

  • 사용자 지정 해결 수행

    이는 비즈니스 논리와 관련된 데이터 값을 선택하고 이 사용자 지정 데이터 세트와 동기화 프로세스를 제공해야 하는 애플리케이션에 유용합니다. 예를 들어 애플리케이션은 게시자 및 구독자 데이터 집합의 값을 결합하여 새 버전의 승리 행을 제공할 수 있습니다.

사용자 지정 오류 해결

오류가 발생하는 변경 내용을 전파하는 동안 사용자 지정 논리를 호출할 수 있습니다. 논리는 다음 두 작업 중 하나를 수행할 수 있습니다.

  • 기본 오류 해결 허용

    이 기능은 오류를 검토하고 추가 작업을 수행하고 사용자 지정 오류 로그 메시지를 기록해야 할 수 있는 애플리케이션에 유용합니다.

  • 사용자 지정 오류 해결 적용

    이는 비즈니스 논리와 관련된 데이터 값을 선택하고 이 사용자 지정 데이터 세트와 동기화 프로세스를 제공해야 하는 애플리케이션에 유용합니다. 예를 들어 복제본(replica) 프로세스에서 중복 키 위반이 발생하는 경우 비즈니스 논리 처리기는 키가 더 이상 충돌하지 않는 데이터 변경의 새 버전을 제공할 수 있습니다. 그러면 게시자 및 구독자에서 변경한 내용이 데이터베이스에 유지될 수 있으며, 복제본(replica) 프로세스는 삭제로 실패한 삽입을 보정할 필요가 없습니다.

비즈니스 논리 처리기에 대한 배포 시나리오

비즈니스 논리 처리기는 다음에 배포할 수 있습니다.

  • 배포자입니다. 비즈니스 논리가 배포자에서 실행되도록 밀어넣기 구독을 사용합니다.

  • 구독자입니다. 비즈니스 논리가 구독자에서 실행되도록 끌어오기 구독을 사용합니다.

  • 웹 동기화를 사용하는 경우 IIS(인터넷 정보 서비스) 서버입니다. 웹 동기화와 동기화된 끌어오기 구독을 사용하면 비즈니스 논리 처리기가 IIS 서버에서 실행됩니다.

참고 항목

병합 복제
게시 구독
데이터 동기화
병합 복제를 위한 웹 동기화