BizTalk 2016 中针对内容错误的错误处理

Error handling in BizTalk 2016 for content errors

我们正在开发两个系统之间的接口,公开一组 REST 接口。

在消费者端,编排对消费者应用程序的 API 调用可能会导致内容错误(例如,消费者端未定义字典值)。因为消费者没有公开所有字典 API,我们必须将这种情况上报给运维团队,他们可以包含丢失的字典值并重新触发消息。

问题是我们的 Biztalk 开发人员说重新触发已经发送到出站队列的消息是不可能的。

真的是这样吗?如何重新触发已经离开编排并发送到出站队列的消息?

在这整个过程中,这实际上取决于您如何设计解决方案。你有几个选择:

  1. 当假设从 BizTalk 以自动方式将错误上报给操作团队时,您可以使用原始消息启动一个新的编排实例,该实例使用我会使用的相关性等待缺少数据的重新触发请求,然后在提交请求后它可以合并两者并处理它。这种方法将保留一个很长的 运行 实例,具体取决于从操作团队获得响应所需的时间。
  2. 另一种选择是在升级到数据库或其他地方之前保存消息,然后在重新触发工作流时使用一些相关 ID 检索它。这有点类似于第一个选项,除了在这种情况下你管理保存和检索来自自定义存储的消息与 BizTalk 将其保存在假脱机中,需要更多的开发工作,但如果你的数量非常多,你可能想要这样做
  3. 如果可能的话,让运营团队再次提交整个请求,但可能会丢失数据。这样您就不需要在 BizTalk 中维护状态。

根据您的具体需求和设计限制,可能还有其他选择。希望这能给你一个好的开始。这当然可以做到。