2012-07-25 4 views
1

에서 메시지를 수신 - 나는 두 개의 싱글 오케스트레이션이을의이 싱글-A와 싱글-B를 호출 할 수 있습니다.BizTalk 2009 싱글 오케스트레이션 내가 다소 특이한 문제가 잘못된 순서로

싱글-A 형 메시지-A의 메시지를 조립하고 직접 바운드 오케스트레이션 포트를 통해 메시지 상자로 보냅니다. 싱글 톤이기 때문에 하나의 호스트 인스턴스에서만 실행되어야합니다. 따라서 각각의 Message-A는 올바른 순서 1,2,3,4 ...로 메시지 박스에 보내집니다. HAT를 사용하면 이것이 사실임을 확인할 수 있습니다.

싱글-B는 메시지-A에 가입을 가지고있다. 싱글 톤 -B에는 싱글 톤 -A로부터 메시지를 수신하는 논리적 수신 포트가 있습니다. 이 수신 포트는 true로 설정된 배달을 주문했습니다. Singleton-B는 물론 단일 스레드입니다. 그러나 Singleton-A가 보낸 메시지가 Singleton-B에 의해 소비 될 때 잘못된 순서 1,2,4,3 ... 등으로 소비됩니다. 다시 HAT를 보면 이것이 사실임을 알 수 있습니다.

싱글-B는 메시지를 처리하는 순서

완전히 비 결정적 보인다. 여기서 무슨 일이 일어나고있는거야? 구독 평가 및/또는 호스트 대기열 대기열 처리 프로세스가 다중 스레드입니까? BizTalk가 싱글 톤 오케스트레이션 간의 주문 된 배달을 지원하지 않는다고 가정하는 것이 합리적입니까?

답변

1

이 여전히 뛰어난 문제입니다 - 나는 그것이 BizTalk 버그 믿습니다. 그러나 우리는 싱글 톤 오케스트레이션을 다른 싱글 톤 오케스트레이션의 출력에 직접 바인딩시키지 않기 위해 솔루션을 재구성했습니다.

BizTalk는 대용량 병렬 메시지 처리를 위해 주로 설계 되었기 때문에 이것은 처음부터 좋지 않습니다.