访问ActiveMQ死信队列中的消息消费后重新投递到webservice或socket

Accessing messages in Dead letter Queue of ActiveMQ and redeliver to webservice or socket after consumption

我正在使用 ActiveMQ 在 Java 中编写应用程序,其中我使用生产者和异步消费者机制,其中生产者发送的消息不会因网络而被消耗 failures.Hence 这些消息被发送到ActiveMQ的死信队列。

我的问题是如何访问死信队列中的消息并通过在消费者中使用它并发送到网络服务或套接字来执行重试 etc.Any 代码示例是太好了。

DLQ 与任何主题或队列一样,您可以像任何主题或队列一样订阅它并使用累积的消息。这是列表 http://activemq.apache.org/advisory-message.html

要订阅它的 DLQ 的名称是 ActiveMQ.DLQ 如果您没有 individualDeadLetterStrategy,您可以订阅并在 onMessage 方法上处理您的业务。 http://activemq.apache.org/message-redelivery-and-dlq-handling.html

Hassen 关于设置使用 DLQ 条目的 MDB 的可能性完全正确。

然而,设置重新传递策略的正确位置是在队列或主题本身(参见 http://activemq.apache.org/redelivery-policy.html)上,而不是使用死信队列。事实上,您只有一个用于 MOM 的 DLQ 实例,它将包含来自所有不同队列/主题的消息,并在那里设置故障转移机制将意味着管理不同的消息结构