我有一个自定义接收管道,它将大文件分解为单个文件并将它们发送到消息框,业务流程将订阅这些消息并处理它们。在我的编排中,我有几个表达式形状,用于执行.net dll中的方法。我还在每一步都添加了日志记录。在任何给定时间,消息框可能充斥着数百条消息。我注意到有些消息是多次执行的。我加倍检查以确保我没有生成相同的多个消息。这让我相信它可能与水合作用有关。根据我的研究,当一个管弦乐队被水合时,它会持续存在于它所处的形状以及dll的状态。当它恢复时,它将恢复它的持久形状而不是从头开始。
有没有人见过这个问题?我可以做哪些测试/配置来验证/纠正这个问题?!
非常感谢!
安琪
答案 0 :(得分:1)
我认为你将水合作用与持久性点混淆。结合一些try \ catch逻辑的字母可以使编排从最新的持久点重新开始。您没有发布您的业务流程的完整图片,但我看到有一个范围。你有任何异常处理吗?
无论如何,编排都无法在没有显式发送形状的情况下将任何消息发布到消息框。另请查看是否安装了最新的SP和累积更新。
答案 1 :(得分:0)
有趣的问题:)
当业务流程闲置等待某事时,会发生水化和补液。因此,它不应该在处理文件的过程中发生。
答案 2 :(得分:0)
在这种情况下,我会建议在您生成的每条新消息的管道阶段推广2个新的自定义属性 -
1)消息总数 2)当前消息号
通过这种方式,您可以在业务流程开始时或您决定的任何其他阶段跟踪,打印或保存每个消息编号,这样可以使工作更轻松。