将邮件从死信移回主题

时间:2019-05-02 04:27:47

标签: java azureservicebus servicebus azure-servicebus-queues

背景

我可以从订阅的死信队列中读取消息。我将它们收集在List中,并设置receiver.complete(message.getLockToken()),这将从DLQ中删除消息。

然后,我遍历此从DLQ收集的消息列表,并将其发送回主题。在将它们放入List时,我确实要确保先创建Message(或BrokeredMessage)的新对象。

这对我自己的个人帐户来说是一件好事。我看到数字上升了。我也可以用另一种方法阅读它们。

问题:

当我连接到公司的主题时,我不知道消息在哪里结束?他们没有任何订阅。而且我看不到任何数字上升(活动计数,死信计数等)。

问题:

这可能是因为没有规则能够处理这些消息,所以它们被自动清除了吗?这有可能吗?

1 个答案:

答案 0 :(得分:0)

该解决方案很简单,并且已经遍及stackoverflow。

当我创建一个新的消息对象new Message(oldMessage)时,它正在复制旧消息中的所有属性,包括DeadLetterReasonDeadLetterErrorDescription。您可以通过调用此消息msg.getProperties()来获取属性。

这就是消息进入以太坊的原因。我停止了它的复制,这解决了问题。

在旁注中,我已经找到link建议的关于此@PramodValavala-MSFT的实际问​​题的答案

这是我最初的问题:这可能是因为没有规则能够处理这些消息,所以它们被自动清除了吗?这有可能吗?