我在没有任何理由的情况下遇到了邮件最终死亡的问题。
当查看死信队列中的消息时(使用&#34; Service Bus Explorer&#34;),人们经常可以看到deatlettering的原因,但在这种情况下(如下所述),没有理由。< / p>
我有一个主题,有2个订阅。其中一个订阅有一个SQLFilter,其中:
State = 'Evaluate'
另一个订阅有一个'AutoForward' = mymessages
和一个或多个规则,其中每个规则都有CorrelationFilter和SqlAction,例如:
CorrelationId = 'A'
Action = 'Set [sys].SessionId = 'A'
大部分时间这都很完美,但有时一两条消息会在第二次订阅的死信队列中结束。
此订阅包含:
EnableDeadLetteringOnMessageExpiration = false
EnableDeadLetteringOnFilerEvaluationError = false
MaxDeliveryCount = 99999
在SBE中查看无法解决的邮件时,它有:
DeliveryCount = 0
MessageExpiration = 2018-01-01
MessageId = X
在查看我的日志时,我可以看到我实际上收到了来自“mymessages&#39;”的MessageId = X的消息。收到消息后,第二个订阅中的对应规则将被删除。
似乎最终在deadletter队列中的消息是重复的?!
有人可以解释实际发生了什么,为什么消息会被破坏?
(我的解决方案中没有“手动&#39;动态消息”的代码)