【问题标题】:Handling messages without subscription in BizTalk 2010在 BizTalk 2010 中处理没有订阅的消息
【发布时间】:2016-04-14 08:10:34
【问题描述】:

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

有什么方法可以路由路由失败,在终止到具有以下约束的不同编排后会发生路由失败。\

  • 我需要原始消息类型来处理消息;
  • 我对管道中发生的错误不感兴趣(这也是自定义的)。这些应该像往常一样暂停。

我尝试在接收形状上使用过滤器,但由于路由仍然失败,它似乎无法识别消息。

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

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

【问题讨论】:

  • 等一下,需要您重新部署的第 3 方组件是什么?也许我们可以解决这个问题。
  • @Johns-305 第 3 方的 dll 加载到 BizTalk 中,并被我的解决方案的某些 dll 使用,这导致需要导入这些 dll。如果 BizTalk 中存在任何实例,则此导入将崩溃。 3dr 方目前不支持并排。
  • 他们不能提供不同的版本吗?需要明确的是,它们是 BizTalk 程序集,而不是普通的常规 .Net 程序集。
  • 正确,他们不能提供不同的版本。他们的包包含两个作为常规 .NET 程序集的 BizTalk 程序集。但是最后一个可以通过在 GAC 中替换它们来更新。通常这也可以使用 BizTalk 程序集,但在这种情况下,我从我的代码中调用了重新设计的编排。因此,最好在管理控制台中导入 dll,然后在 GAC 中更新它们。

标签: biztalk biztalk-2010


【解决方案1】:

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

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

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

【讨论】:

  • 选项 1 也将处理管道中的错误,因此选项 2(包括检查错误)似乎是一个实施选项。
【解决方案2】:

在处理同步调用时,您通常会在一分钟左右得到响应。通常,设置维护窗口会是更好的选择。几分钟内没有收到的请求应该可以让您清理并更新您的资源/工件。

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

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

【讨论】:

  • 在这种情况下,会发生更多暂停,我不想将其放入操作人员的队列中。手动操作应保持在最低限度。
猜你喜欢
  • 2018-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多