将死信中的消息移回主题

Moving messages from dead letter back to topic

背景:

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

稍后,我遍历了从 DLQ 收集的消息列表,并将它们发回主题。在将它们放入 List 时,我确保在放入之前创建一个新的 Message(或 BrokeredMessage)对象。

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

问题:

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

问题:

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

这个解决方案很简单,已经在 Whosebug 上传播了。

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

来获取属性

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

顺便说一下,我已经找到了我实际问题的答案 as suggested by @PramodValavala-MSFT

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