2012-07-25 49 views
1

我有一个不太常见的问题 - 我有两个singleton编排,我们称它们为Singleton-A和Singleton-B。BizTalk 2009 singleton orchestration以错误的顺序接收消息

Singleton-A组装Message-A类型的消息,并通过直接绑定编排端口将其发送到消息框。因为它是单身人士,它必须只在一个主机实例上运行。因此,每个消息-A以正确的顺序被发送到消息箱1,2,3,4 ...等等。我可以通过使用HAT确认这是真实的。

Singleton-B订阅了Message-A。 Singleton-B有一个逻辑接收端口,通过它接收来自Singleton-A的消息。此接收端口已将订单传递设置为true。 Singleton-B当然也是单线程的。但是,当Singleton-A发送的消息被Singleton-B消耗时,它们以错误的顺序1,2,4,3 ...被消耗。等等。再次看到HAT,我可以看到这是真的。

Singleton-B处理消息的顺序似乎完全不确定。这里发生了什么?订阅评估和/或主机队列入队过程是否是多线程的?假设BizTalk不会支持单体业务流程之间的有序传递是否公平?

回答

1

这仍然是一个突出的问题 - 我相信这是一个在BizTalk中的错误。然而,我们重新构建了我们的解决方案,从来没有将单身人员编排直接绑定到其他单体编排的输出。

顺便提一句,这首先是不好的设计,因为BizTalk主要是为高容量并行消息处理而设计的。