다음을 통해 공유


BizTalk Server 사용하여 SQL에서 여러 수신 위치에서 쿼리 알림 받기

동일한 데이터베이스에서 동일한 테이블(예: 직원)에 대한 쿼리 알림을 받도록 구성된 여러 BizTalk 애플리케이션의 일부로 여러 수신 위치를 만든 시나리오를 고려합니다. 100개의 레코드가 동일한 테이블에 삽입되면 모든 수신 위치에 알림 메시지가 표시됩니다. 여러 수신 위치에서 알림을 효과적으로 수신하려면 BizTalk 애플리케이션에서 작업을 호출하여 한 수신 위치에서 알림을 받으면 다른 수신 위치가 동일한 알림을 받지 못하는 방식으로 작업을 호출할 수 있습니다. 따라서 여러 위치에서 받은 알림을 효과적으로 부하 분산할 수 있습니다.

수신 알림의 부하를 분산하기 위해 오케스트레이션을 설정하는 데 필요한 작업은 BizTalk Server 사용하여 SQL에서 쿼리 알림 받기의 경우와 동일합니다. 이 항목에서는 두 방법 간의 유일한 차이점을 나열합니다.

여러 수신 위치에서 쿼리 알림 Load-Balancing

BizTalk Server 사용하여 SQL에서 쿼리 알림 증분 받기 항목과 마찬가지로 이미 알림을 받은 레코드에 대해 UPDATE 문을 실행하여 증분 알림을 구성했습니다. 부하 분산을 구성하려면 알림을 받은 레코드를 삭제하는 저장 프로시저를 실행할 수 있습니다. 예를 들어 다음 정의를 사용하여 저장 프로시저 PROCESS_EMPLOYEE 고려합니다.

DECLARE @var int  
SELECT TOP 1 @var = Employee_ID FROM Employee  
SELECT * FROM Employee WHERE Employee_ID=@var  
DELETE FROM Employee WHERE Employee_ID=@var  

BizTalk 애플리케이션의 일부로 이 저장 프로시저를 실행하면 알림이 이미 수신된 레코드가 삭제됩니다. 따라서 다른 수신 위치는 다음 레코드에 대한 알림을 받습니다.

알림 수신을 위해 부하 분산을 구성하기 위해 수행해야 하는 개략적인 단계는 다음과 같습니다.

  1. 알림(인바운드 작업) 및 PROCESS_EMPLOYEE 저장 프로시저(아웃바운드 작업)에 대한 스키마를 만듭니다.

  2. 오케스트레이션을 추가하고 알림을 받고, 저장 프로시저를 실행하고, 저장 프로시저에 대한 응답을 얻기 위한 세 개의 메시지를 추가합니다.

  3. 보내기 및 받기 셰이프, 메시지 셰이프 생성 및 포트를 추가하여 오케스트레이션을 만듭니다. 메시지를 생성하는 데 동일한 샘플 코드를 사용하여 PROCESS_EMPLOYEE 저장 프로시저를 호출할 수 있습니다. BizTalk Server 관리 콘솔에서 작업을 수행하는 동안 C:\TestLocation\MessageIn 위치에 PROCESS_EMPLOYEE 저장 프로시저에 대한 요청 메시지가 있어야 합니다. BizTalk Server 사용하여 SQL에서 쿼리 알림 받기에서 증분 방식으로 만든 오케스트레이션의 일부로 호출하는 코드 조각이 C:\TestLocation\MessageIn에 있는 요청 XML에 따라 요청 메시지를 만들기 때문에 이렇게 합니다.

  4. 애플리케이션을 빌드하고 배포합니다. 부하 분산을 보여 주려면 BizTalk Server SQL 어댑터가 설치된 두 대의 다른 컴퓨터에 이 오케스트레이션을 배포해야 합니다.

  5. 두 컴퓨터의 BizTalk Server 관리 콘솔에서 WCF-Custom 또는 WCF-SQL 수신 위치에 대해 다음 바인딩 속성을 지정합니다.

    Binding 속성
    InboundOperationType 이를 알림으로 설정합니다.
    NotificationStatement 다음으로 설정합니다.

    SELECT Employee_ID, Name FROM dbo.Employee WHERE Status=0

    참고: 알림 문의 경우 항상 스키마 이름과 함께 테이블 이름을 지정해야 합니다. 예: dbo.Employee.
    NotifyOnListenerStart 이를 True로 설정합니다.
  6. BizTalk 애플리케이션을 시작합니다.

  7. 알림 수신을 시작하려면 EMPLOYEE 테이블에 100개의 레코드를 삽입합니다. 이렇게 하는 동안 PROCESS_EMPLOYEE 저장 프로시저를 호출하기 위한 요청 XML을 C:\TestLocation\MessageIn에서 사용할 수 있는지 확인합니다.

  8. BizTalk 애플리케이션이 알림 메시지를 삭제할 위치(두 컴퓨터 모두)를 모니터링합니다. 삽입된 100개의 레코드 중 한 위치에서는 일부 레코드에 대한 알림을 받고 다른 위치는 나머지 레코드에 대한 알림을 받습니다. 두 위치는 함께 모든 백 레코드에 대한 알림을 받게 됩니다.

참고 항목

BizTalk Server 사용하여 SQL 쿼리 알림 받기