在 BizTalk 2010 中处理没有订阅的消息

Handling messages without subscription in BizTalk 2010

在 BizTalk 中,我收到一条已知类型的消息,它是对我之前发送的消息的响应。当前编排通过关联集订阅响应。对于部署,我需要终止一些现有的编排,但将创建可以处理的新编排。通常这可以通过并行部署来解决,但是第三方组件的更新需要我终止。

有什么方法可以将终止后发生的路由故障路由到具有以下约束的不同业务流程。\

我尝试在接收形状上使用过滤器,但它似乎无法识别该消息,因为仍然存在路由故障。

我想到的一个替代方案是没有过滤器,但是如果两个业务流程处理相同的消息,我需要发送一些消息,这不应该出现在这个解决方案中。

解决方案只是暂时的,一个月后所有旧回复都将完成,解决方案将被删除。因此,无需部署(或停机)即可轻松删除它。

在处理同步调用时,您通常会在一分钟左右得到响应。通常,设置维护 window 是更好的选择。几分钟内没有传入请求应该可以让您清理东西并更新您的 resources/artifacts.

如果这不是一个选项,通常并行部署是专门为此设计的。但你也有限制。

另一种选择是让他们暂停并手动处理它们,或者 - 一旦暂停 - 保存暂停消息的正文并保存它们以供进一步处理(手动或您可以设置的某些特定流程)。

我看到了两个可能的选项,您必须先对每个选项进行测试。

  1. 启用失败的消息路由并将失败的响应订阅到发送端口
  2. 让他们暂停并使用 WMI 脚本来保存消息。如果这样做,您还将获得具有所有属性的上下文。

无论哪种方式,您都需要一个流程来重新提交它们。