使用Parallel Convoy Correlation时防止Dehydrated实例,并且缺少消息

时间:2014-10-06 23:06:36

标签: biztalk biztalk-2013 biztalk-orchestrations

我有一个业务流程,它由并行形状的两种消息中的一种激活。消息通过ID和状态进行关联,然后执行业务流程的其余部分(并将消息合并为1)。

enter image description here

我想设法一种方法来防止在两条消息中的一条没有通过时发生业务流程的脱水实例。所以基本上,1个消息进来而另一个没有,orchestration实例在等待第二条消息时脱水。

我一直在做一堆搜索,如果这是串行车队,我发现了一些不错的方法,但事实并非如此,并且无法保证消息的顺序。

例如,this post在串行车队方面非常有用,但仍不能满足我的要求。

我尝试在其自己的分支上使用每个消息的listen形状和第三个分支上的延迟,但是了解到如果要通过listen激活,则所有分支都必须激活,因为延迟形状无法激活编排,它不会编译。

任何建议,或者我应该放弃并创建一个单独的数据库,以便使用管道手动关联消息?

1 个答案:

答案 0 :(得分:5)

根据您的说明,您的邮件标题稍有不准确。脱水不是问题,缺少的信息是。

您需要做的是将接收包装在具有超时设置的范围形状中。然后,如果其他消息未在超时内到达,则会引发超时异常,您可以处理并采取适当的操作。

否则,Parallel Shape将基本上等待另一条消息。