java - 将消息从死信移回主题

标签 java azureservicebus servicebus azure-servicebus-queues

背景:

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

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

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

问题:

当我连接到我公司的主题时,我不知道消息最终去向哪里?他们不去任何订阅。我没有看到任何数字上升( Activity 计数、死信计数等)。

问题:

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

最佳答案

该解决方案很简单,并且已经在 stackoverflow 上传播。

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

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

附带说明一下,我已经找到了关于此 link 的实际问题的答案。根据@PramodValavala-MSFT的建议

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

关于java - 将消息从死信移回主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55945678/

相关文章:

java - 结束时打印第一个数组元素

java - 如何从控制台输入字符串获取控制字符

azure - 如果从服务总线触发逻辑应用程序,如何识别我的关联 ID 或标识符

Azure服务总线: The connection string used for an Service Bus client must specify the Service Bus namespace host and either a Shared Access Key

.net - 如何处理 nservicebus 中的消息顺序?

azure - 使用 Windows Azure 服务总线 可以从 Azure 网站使用吗?

java - 获取目录中与文件名中特定字符串匹配的图像文件名列表

java - 创建 jar 后,nimbus 的外观和感觉不会出现

c# - Windows 服务总线 LockDuration 属性的值

azure - 服务总线/请求转发