【问题标题】:Parallel shapes in BizTalk ServerBizTalk Server 中的平行形状
【发布时间】:2014-11-13 05:08:14
【问题描述】:

我在 BizTalk 业务流程中使用平行形状。形状中有四个平行的分支,在每个分支中我使用一个范围形状(事务类型 = 无)和后续的 catch 块,执行逻辑放在范围形状中。

此并行 Shape 还包含在具有相应 catch 块的编排中的范围 (Transaction Type = None ) 中。

如果其中一个分支中的执行失败,那么假设的行为是什么?按照我的说法,如果一个分支的执行失败,应该已经执行了另一个分支。

但是在我的编排中,如果一个分支执行失败,则另一个分支执行甚至不会启动。似乎在前一个分支代码成功执行后,其他分支开始执行。

请告诉我这种行为的可能来源是什么?

【问题讨论】:

    标签: biztalk biztalk-2010 biztalk-2013 biztalk-orchestrations


    【解决方案1】:

    根据 MSDN,Parallel 形状将使其所有分支独立运行参见 MSDN:http://msdn.microsoft.com/en-us/library/ee253584(v=bts.10).aspx

    但是,这是从业务流程的角度来看,而不是从技术角度来看。如果您的一个分支出现故障,则完全有可能不会执行其他分支。据我所知,您无法控制执行顺序(虽然不确定)。

    查看这篇小博文了解更多信息:http://blogs.msdn.com/b/pkelcey/archive/2006/08/22/705171.aspx

    聚合器模式在这里可能是一个好主意,具体取决于您的具体情况。它会让你完全控制局势。

    【讨论】:

      【解决方案2】:

      基本上,如果其中一个分支出现故障,那么所有分支都会出现故障。要记住的关键点是:

      All branches come together at the end of the Parallel Actions shape, and processing does not continue until all have completed.
      

      因此,如果其中一个分支失败,那么它们将永远不会收敛。如果在一个分支上抛出异常,catch 块将捕获它,并且所有其他分支将停止处理任何传入的消息。据我了解,并行分支主要用于消息关联,用于需要等待多条消息到达才能继续进行的情况。分支执行的顺序由每个分支期望收到的消息的顺序决定。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-22
        相关资源
        最近更新 更多