我有一个编排,它由并行形状中传入的两种类型的消息中的一种激活。消息通过 ID 和状态进行关联,然后执行编排的其余部分(并且消息合并为 1)。
我想设计一种方法来防止当两条消息之一未通过时发生编排的脱水实例。因此,基本上,如果有一条消息传入,而另一条消息没有传入,则编排实例在等待第二条消息时就会脱水。
我一直在进行大量搜索,并找到了一些不错的方法来做到这一点(如果这是串行车队),但事实并非如此,并且无法保证消息的顺序。
例如,this post对于串行车队来说非常有帮助,但仍然不能满足我的要求。
我尝试使用监听形状,将每个消息放在自己的分支上,并在第三个分支上使用延迟,但了解到如果您使用监听进行激活,则所有分支都必须激活,并且由于延迟形状无法激活编排,它不会编译。
有什么建议,还是我应该放弃并创建一个单独的数据库,以便使用管道手动关联消息?
最佳答案
根据您的描述,您的邮件标题略有不准确。脱水不是问题,问题是缺少信息。
您需要做的是将接收包装在具有超时设置的范围形状中。然后,如果另一个消息在超时时间内没有到达,则会引发超时异常,您可以处理该异常并采取适当的操作。
否则,平行形状本质上将永远等待另一个消息。
关于biztalk - 使用并行护航关联和消息丢失时防止脱水实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26226213/