我使用ActiveMQ用Java编写应用程序,其中iam使用生产者和异步消费者机制,其中生产者发送的消息不会因网络故障而被消耗。因此,这些消息被发送到ActiveMQ的死信队列。
我的问题是如何访问死信队列中的消息,并通过在消费者中消费并发送到web服务或套接字等来对其执行重试。任何代码示例都会很棒。
答案 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实例,它将包含来自所有不同队列/主题的消息,并设置故障转移机制,这将意味着管理不同的消息结构