다음을 통해 공유


BizTalk Server 메시지의 순서가 지정된 배달

메시지가 순차적으로 전달되면 특정 순서대로 MessageBox 데이터베이스에 게시된 메시지가 메시지 상자에 게시된 것과 동일한 순서로 각 해당 등록자에게 전달될 수 있습니다.

순차적 메시지 전달 구성

순차적 메시지 전달은 다음 위치에서 구성할 수 있습니다.

  • 오케스트레이션에서 셰이프 받기
  • 송신 포트

기존 전송 사용 시의 순차적 전달

FILE 및 HTTP와 같은 특정 전송에서는 순차적 전달 개념과 일치하지 않는 프로토콜을 사용합니다. 그러나 이러한 전송을 사용하는 경우에도 전송에 바인딩된 포트가 순차적 전달용으로 표시되어 있으면 BizTalk Server에서는 현재 아웃바운드 메시지가 성공적으로 송신될 때까지 다음 메시지가 전송되지 않도록 하여 순차적 전달을 적용합니다. 이를 위해 BizTalk Server에서는 각 메시지를 단일 일괄 처리로 묶어 전송 어댑터에 전달한 후, 어댑터가 메시지 상자에서 해당 메시지를 성공적으로 삭제할 때까지 기다렸다가 다른 일괄 처리에 포함된 다음 메시지를 어댑터로 전달합니다.

사용자 지정 어댑터에 대한 순차적 전달

사용자 지정 수신 어댑터를 사용할 경우 특별히 고려해야 할 사항이 있습니다. 수신 중에 순차적 전달을 지원하는 사용자 지정 어댑터를 작성할 경우 어댑터는 다음을 수행해야 합니다.

  • 메시지 일괄 처리를 제출한 후 사용자 지정 수신 어댑터는 다음 일괄 처리를 제출하기 전에 BizTalk Server BatchComplete 콜백을 기다려야 합니다. 자세한 내용은 Batch-Supported 수신 어댑터에 대한 인터페이스를 참조하세요.

  • 파이프라인에서 메시지가 실패하면 다시 시작 불가능 상태로 일시 중단되어야 합니다. BTS를 사용합니다. 메시지 플래그를 적절하게 지정하려면 BizTalk Server SuspendAsNonResumable 메시지 컨텍스트 속성입니다.

참고

일시 중단된 메시지가 나중에 다시 시작되면 메시지 순서가 잘못될 수 있습니다. 이를 방지하려면 실패한 메시지를 다시 시작 불가능 상태로 일시 중단합니다.

사용자 지정 어댑터 빌드에 대한 자세한 내용은 사용자 지정 어댑터 개발을 참조하세요.

종단 간 순차적 메시지 처리에 필요한 조건

종단 간 순차적 전달을 제공하려면 다음 조건을 충족해야 합니다.

  • BizTalk Server로 메시지를 전송할 때 메시지 순서를 유지하는 어댑터를 사용하여 메시지를 수신해야 합니다. BizTalk Server 이러한 어댑터의 예는 MSMQ 및 MQSeries입니다. 또한 HTTP 또는 SOAP 어댑터를 사용하여 메시지를 순서대로 전송할 수도 있지만 이러한 경우 HTTP 또는 SOAP 클라이언트에서 메시지를 한 번에 하나씩 전송하여 메시지 순서를 유지해야 합니다.

  • 주문 배달 옵션이 로 설정된 True송신 포트를 사용하여 이러한 메시지를 구독해야 합니다.

  • 오케스트레이션을 사용하여 메시지를 처리하는 경우 오케스트레이션의 instance 하나만 사용해야 하며, 오케스트레이션은 순차적 호송을 사용하도록 구성되어야 하며, 오케스트레이션 수신 포트의 Ordered Delivery 속성을 로 설정True해야 합니다.

제한

다음에 대해서는 메시지의 순차적 전달이 지원되지 않습니다.

  • BizTalk Server 2013 R2 및 이전 버전의 동적 송신 포트

  • 정적 송신 포트에서 주문된 배달을 지원하지 않는 어댑터 유형에 대한 BizTalk Server 2016(및 최신 버전) 동적 송신 포트

  • 백업 전송

상호 작용

송신 포트에 대해 순차적 전달이 구성되면 BizTalk Server에서 구성된 다른 동작과 관련해서 다음과 같은 상호 작용이 발생할 수 있습니다.

  • 동일한 송신 포트에 대한 "현재 메시지 실패 시 후속 메시지 송신 중지" 설정이 다음과 같은 경우

    • 틀렸습니다. 실패한 메시지만 일시 중단(다시 시작 불가능)되고 모든 후속 메시지는 계속 처리됩니다. 이 경우 실패하지 않은 메시지의 순서는 보존되지만 시퀀스 내에서 간격이 발생할 수 있습니다. 예를 들어 순서 101, 102 및 103이 수신되고 순서 102가 일시 중단되면 순서 101과 103은 순서대로 계속 처리됩니다.

    • 맞습니다. 메시지 중 하나라도 처리되지 못하면 송신 포트 인스턴스가 일시 중단됩니다. 이 경우 정렬된 메시지 집합 내의 모든 후속 메시지가 일시 중단됩니다. 이 설정에서는 실패한 메시지가 전달될 때까지 후속 메시지가 전달하지 못하게 하여 메시지 순서를 유지합니다.

  • solicit-response 송신 포트에 "현재 메시지 실패 시 후속 메시지 전송 중지" 속성이 로 true설정되어 있고 응답에 대한 수신 파이프라인의 디스어셈블리 단계에 대해 복구 가능한 교환 처리가 구성된 경우 응답 디스어셈블 시 복구 가능한 오류가 있는 경우 송신 포트는 메시지 전송을 중지하지 않습니다(즉, instance 일시 중단되지 않음).

  • 순서가 지정된 송신 포트를 삭제하기 전에 연결된 인스턴스가 없는지 확인합니다. 연결된 인스턴스가 있으면 해당 인스턴스를 먼저 종료한 후 송신 포트를 삭제해야 합니다.

File 전송 사용 시의 순차적 전달

메시지는 File 어댑터에 순서대로 도착합니다. FILE 어댑터는 단일 파일에 메시지를 추가하거나 일련의 파일에 쓸 수 있으며 그러한 경우 다음과 같은 결과가 나타납니다.

  • 메시지 데이터가 단일 파일에 추가될 경우 개별 메시지는 순서대로 추가됩니다. 추가 모드에서 송신 전송이 작동하는 경우에만 FILE 어댑터를 사용하는 송신 포트에 순차적 전달 옵션을 사용할 수 있습니다.

  • 메시지가 개별 파일에 기록되면 파일 이름에 순서가 반영되어 이름이 순차적으로 지정됩니다. 이러한 경우 어댑터에 의해 기록된 파일에서는 시간 순서(예: 파일을 만든 시간 또는 수정한 시간)와 관련된 파일 시스템 속성이 반드시 메시지 도착 순서를 반영하지는 않습니다.

순차적 전달이 성능에 미치는 영향

참고

2020년 BizTalk Server 시작하여 순서가 지정된 배달이 있는 동적 송신 포트의 경우 여러 아웃바운드 위치에서 순서를 유지할 필요가 없으므로 여러 송신 포트 인스턴스를 사용하여 여러 아웃바운드 위치로 전송된 메시지를 병렬로 처리하여 더 높은 처리량을 달성할 수 있습니다.

메시지의 순차적 전달을 위해 BizTalk Server에서는 메시지 경로의 다양한 포인트에서 순차적 메시지의 처리를 serialize해야 합니다. 이 작업은 메시지의 병렬 처리를 위해 여러 호스트 인스턴스를 사용하는 경우와 같은 확장 기술에는 맞지 않습니다. 순차적 전달을 사용하면 여러 호스트 인스턴스에서 실행되도록 구성된 포트의 경우도 순차적 전달을 위해 단일 호스트 인스턴스에서만 실행됩니다. 그러나 이러한 경우에는 순차적 메시지 전달을 처리하는 호스트 인스턴스에 오류가 발생했을 때 실패한 메시지가 사용 가능한 다른 호스트 인스턴스에서 다시 처리될 수 있으므로 높은 가용성을 유지할 수 있습니다.

주문 배달을 사용하도록 설정하면 기본 재시도 간격 은 5분입니다. 성능을 향상시키려면 다시 시도 간격을 가장 낮은 값인 1분으로 설정하십시오. 재시도 간격 속성은 0(0) 값을 사용할 수 있지만 0은 유효하지 않습니다. 재시도 횟수는 필요한 재시도 횟수로 조정할 수도 있습니다. 예를 들어 요청이 1분 안에 처리되어야 하고 송신 포트 대상에 <항상 액세스할 수 있는 경우 두 값을 모두 1로 설정합니다.

다시 시도 값을 변경하려면 송신 포트에 대한 전송 고급 옵션을 구성하는 방법으로 이동합니다.

순차적 전달에 대한 자세한 내용은 다음을 참조하십시오.

BizTalk: 엔드투엔드 순서가 지정된 메시지 처리 옵션

BizTalk: 주문 배달

참고 항목

MSMQ 어댑터를 사용하여 순차적 메시지 전달
MQSeries 어댑터를 사용하여 순차적 메시지 전달