访问ActiveMQ的死信队列中的消息,并在消费后重新发送到webservice或套接字

时间:2016-10-10 10:29:20

标签: java java-ee jms activemq jms-topic

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

我的问题是如何访问死信队列中的消息,并通过在消费者中消费并发送到web服务或套接字等来对其执行重试。任何代码示例都会很棒。

2 个答案:

答案 0 :(得分:3)

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

如果您没有ActiveMQ.DLQ,订阅它的DLQ的名称为individualDeadLetterStrategy,您订阅并使用onMessage方法开展业务。 http://activemq.apache.org/message-redelivery-and-dlq-handling.html

答案 1 :(得分:1)

Hassen完全可以设置MDB消费DLQ条目。

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