我正在尝试设置可以在BizTalk 2010中一次运行的最大数量的业务流程。我发现我可以在主机级别为Orchestration指定限制,并可以选择指定暂停并按规范恢复(在主机设置的“业务流程限制”选项卡上)。
基于阅读我在MSDN上可以找到的限制文档,我正在解释为“Pause at”设置指定的数字,BizTalk“暂停”并且不再启动新的编排,直到活动数量为止业务流程是< = Resume at设置的规范。这是一个准确的解释吗?
答案 0 :(得分:2)
看看这个页面; BizTalk Settings Dashboard
特别是“暂停”部分说;
指定要存储订阅的最大邮件数。 当订阅的消息等待消耗大于或等于指定的数量时,消息不会传递给订阅实例。消息的最小数量是'resume at'值。 例如,如果将Pause at value设置为100,则表示业务流程有100条未完成的消息,MessageBox将停止发送其他消息。
答案 1 :(得分:2)
我对此设置的理解(假设它与BizTalk 2006之后的Throttling PauseAt / ResumeAt entry in BTSNTSvc.exe.config相同)是它将消息的数量限制为任何单个子描述(任何类型的端口或编排),而不一定是特定类型的并发编排数。此订阅的任何其他消息都将在消息框中排队。 (恕我直言,我发现BTS Throttling设置更多是BizTalk的自我保护机制,而不是特定于应用程序的调优机制)
如果您需要限制特定类型的业务流程数量(例如,如果BizTalk使用有限的WCF或SQL资源重载下游应用程序),您将需要实现Singleton Orchestration的变体(即并发业务流程< = N)。 Richard Seroter描述了这样一种机制here(负载平衡/循环调度,尽管我们在评论中使用了Mike S建议的随机数生成修改)。由于单个业务流程将处理所有/多个消息,例如单个业务,因此存在一些额外的稳健性问题。尽可能紧密地确定您的消息和变量的范围。你还需要监控单身人士以确保积压的消息不会太高 - 我们发现,一旦你得到10k +消息排队在一个单一的处理时间减慢。