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