Azure SB队列将消息发送到已禁用的死信队列

时间:2014-07-09 07:35:04

标签: azureservicebus azure-servicebus-queues dead-letter

为什么我的Azure Service Bus队列在未启用时会向死信子队列发送消息?

从一开始我确保过期的消息不会被移动到死信队列(或者我认为)。

在Visual Studio Server Explorer中,我在队列中看到了这一点:

  • EnableDeadLetteringOnMessageExpiration:False

但我也看到了这一点:

  • DeadLetterMessageCount:16

我不能像往常一样将它们拉出来,所以我创建了一个临时服务来处理(摆脱)这些,这是我能够从brokeredMessage.Properties中提取的:

  • DeadLetterReason:MaxDeliveryCountExceeded
  • DeadLetterErrorDescription:10次传递尝试后无法使用消息。

我希望这些消息在未完成时保留在正常队列中。到目前为止,我已将MaxDeliveryCount更改为1000,但它并不是真正的解决方案。

我在俯瞰什么?

更新 在阅读我自己的文本后,我意识到EnableDeadLetteringOnMessageExpiration与交付计数无关。 我可以选择让我的邮件永远保留在正常队列中吗?或者我必须设置MaxDeliveryCount" 足够高"?

1 个答案:

答案 0 :(得分:2)

我有同样的问题。如果消息到达MaxDeliveryCount,即使您将其禁用,也会将其移至死信。您可能需要将MaxDeliveryCount设置为0int.MaxValue以停止动作。

注意:此信息未在任何地方记录。我通过找到专门在ServiceBus Queue上工作的人来解决这个问题。