无理由服务总线死信函

时间:2016-11-02 08:59:16

标签: azure azureservicebus servicebus

我在没有任何理由的情况下遇到了邮件最终死亡的问题。

当查看死信队列中的消息时(使用&#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;动态消息”的代码)

0 个答案:

没有答案