Notifications BizTalk-传递通知的路由失败

Notifications BizTalk-传递通知的路由失败,notifications,biztalk,Notifications,Biztalk,我最近遇到了一个非常奇怪的问题。以下是场景: 我有一个编排,它向配置了delivery notification=transmited的单向发送端口发送消息(顺便说一句,发送端口使用FTP适配器,但我认为适配器是什么并不重要) 当出现消息传递错误时,错误被业务流程捕获(因此意味着传递通知机制按预期工作),该业务流程执行一些日志记录,然后以编程方式终止(终止形状)。消息传递实例仍然存在,并且已挂起并可恢复 解决导致消息传递错误的问题后,我恢复挂起的消息传递实例 此时,我得到了两个非常可疑的消息

我最近遇到了一个非常奇怪的问题。以下是场景:

  • 我有一个编排,它向配置了delivery notification=transmited的单向发送端口发送消息(顺便说一句,发送端口使用FTP适配器,但我认为适配器是什么并不重要)

  • 当出现消息传递错误时,错误被业务流程捕获(因此意味着传递通知机制按预期工作),该业务流程执行一些日志记录,然后以编程方式终止(终止形状)。消息传递实例仍然存在,并且已挂起并可恢复

  • 解决导致消息传递错误的问题后,我恢复挂起的消息传递实例

此时,我得到了两个非常可疑的消息传递实例:ACK路由失败,消息传递实例仍然处于活动状态(但什么也不做…)。我确信路由失败实例是与活动消息传递实例相关的传递通知,因为它们具有相同的CorrelationToken。 还有一个细节:如果我终止活动实例,它将被挂起(不可恢复),错误消息说实例已完成,而没有使用它的所有消息

最后但并非最不重要的一点是,我只在某些环境中遇到这个问题

更新:问题似乎出现在运行BizTalk 2006 R2 SP1的BizTalk框上。在没有SP1的情况下运行BizTalk 2006 R2的框中从未出现过此问题。我会尽快确认这一点


更新2:看来我上次更新是对的:问题出现在安装SP1 CU1之后。。。因此,下一步:我将尝试找出以下CU之一是否可以纠正问题。

实际上,没有CU可以纠正所描述的问题。但还有更多:似乎所有较新的BizTalk版本都在关注:我已经用所有CU对BizTalk 2009和所有CU对BizTalk 2010进行了测试,问题仍然存在

我找到的唯一解决方案是创建订阅所有传递通知的编排。。。虽然不是很干净,但它确实起到了作用——至少大部分都很好

事实上,当使用传递通知启用失败消息的路由时,我发现了另外一个问题:AckRequired属性和关联令牌被复制到路由失败消息,这意味着如果发送端口使用此失败消息,将发布ACK(例如:ESB异常发送端口),并且如果该ACK仍在执行,则可以将其路由到原始业务流程。如果是,则将以典型的僵尸消息结束,因为业务流程不使用该ACK!
现在,试着向你的客户解释,你的开发者不应该受到指责…:p

标签不应该添加到标题中。关于暂停的不可恢复消息-谷歌“僵尸消息”感谢您的回答!是的,我已经在该方向搜索了一段时间。但是僵尸消息只有在我手动终止活动消息实例时才会出现,因此我认为这只是一个副作用。我正在从一个新的方向进行调查:似乎所有出现问题的框都运行BizTalk 2006 R2 SP1,而其他框则运行BizTalk 2006 R2 SP1n仅BTS 2006 R2不含SP1。请添加并用解决方案回答您的问题,这将使其他有相同问题的人更容易。非常感谢!