BizTalk Server의 좀비
좀비란?
좀비 메시지는 MessageBox에서 실행 중인 오케스트레이션으로 라우팅되었으며 오케스트레이션이 종료될 때 "처리 중"이었던 메시지입니다. "처리 중"인 메시지는 서비스 인스턴스로 라우팅되었으므로 서비스 인스턴스로 향하는 MessageBox 큐에 있는 메시지입니다. 등록 오케스트레이션 인스턴스에서 더 이상 메시지를 사용할 수 없으므로 메시지는 일시 중단되고 ServiceInstance/상태 값 "일시 중단됨(다시 시작 불가능)"이 표시됩니다.
좀비 서비스 인스턴스는 MessageBox에서 오케스트레이션 인스턴스로 라우팅된 메시지가 "처리 중"인 동안 완료된 오케스트레이션 인스턴스입니다. 오케스트레이션 인스턴스가 종료되었으므로 "처리 중"인 메시지를 사용할 수 없어 일시 중단되고 ServiceInstance/상태 값 "일시 중단됨(다시 시작 불가능)"이 표시됩니다.
일반적인 원인
좀비 발생은 일반적으로 다음 범주 중 하나에 해당됩니다.
제어 메시지 종료 – 오케스트레이션 엔진을 사용하면 제어 메시지를 사용하여 특정 오케스트레이션 instance 현재 실행 중인 모든 작업을 취소할 수 있습니다. 제어 메시지는 실행 중인 오케스트레이션을 즉시 중지하므로 좀비 인스턴스가 발생합니다. 많은 휴먼 워크플로 관련 디자인에서 이 메커니즘과 일부 다른 디자인을 사용합니다.
병렬 수신 수신 – 이 시나리오에서 서비스 instance n개 메시지 중 1개에 대해 대기하고 특정 메시지를 수신하면 일부 작업이 수행되고 종료됩니다. 서비스 인스턴스가 종료되고 있을 때 병렬 분기에서 메시지가 수신되면 좀비가 만들어집니다.
비결정적 엔드포인트가 있는 순차적 호송 – 이 시나리오에서는 일부 유형의 시스템 디자인 요구 사항을 충족하기 위해 특정 유형의 모든 메시지를 처리하도록 master 오케스트레이션 일정이 설계되었습니다. 이러한 디자인 요구 사항에는 순차적 전달, 리소스 디스펜서 및 일괄 처리가 포함될 수 있습니다. 이 시나리오의 경우 대체로 한 분기에 수신이 있고 다른 분기에 지연 셰이프가 있는 수신 대기를 둘러싸는 while 반복을 정의하며, 이 뒤에 일부 변수를 설정하여 while 반복이 중지되어야 함을 나타내는 구문이 있습니다. 이는 지연이 트리거될 수 있지만 메시지를 전달할 수 있으므로 비결정적입니다. 이와 같은 비결정적 엔드포인트는 좀비를 생성합니다.
좀비 서비스 instance 일시 중단되면 다음 오류 메시지가 생성됩니다.
0xC0C01B4C The instance completed without consuming all of its messages. The instance and its unconsumed messages have been suspended.
BizTalk 종결자를 사용하여 좀비를 제거할 수 있습니다.
참고 항목
UI 지침 및 개발자 API 네임스페이스 참조에서 일시 중단된 서비스 인스턴스 제거