如何在Jboss AS 7上看到来自DLQ的消息?

时间:2012-07-25 08:42:35

标签: java jboss7.x hornetq

我正在使用Jboss AS 7.1.1,我需要查看DLQ(死信队列)中的消息。

我尝试为它编写一个简单的MDB:

@MessageDriven(messageListenerInterface = MessageListener.class, activationConfig = {
        @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
        @ActivationConfigProperty(propertyName = "destination", propertyValue = "java:/queue/DLQ"),
        @ActivationConfigProperty(propertyName = "maxSession", propertyValue = "1") })
public class DLQMDB implements MessageListener{
public void onMessage(Message message) {
    try {
        process(message);
    } ...
}
}

我编写了另一个抛出错误的MDB,因此消息将对DLQ执行,但DLQ MDB永远不会被触发。

我不知道是不是因为DLQ中没有消息或MDB没有正确定义。

我做错了什么?是否有其他方法可以在DLQ中查看消息(如日志记录,管理界面)?

1 个答案:

答案 0 :(得分:1)

最后让它工作,我遇到了配置问题:

<address-setting match="jms.queue.MetricEvents">
      <dead-letter-address>jms.queue.MyQueue</dead-letter-address>
      <expiry-address>jms.queue.ExpiryQueue</expiry-address>
      <redelivery-delay>0</redelivery-delay>
      <max-delivery-attempts>0</max-delivery-attempts>
      <max-size-bytes>10485760</max-size-bytes>
      <address-full-policy>BLOCK</address-full-policy>
      <message-counter-history-day-limit>10</message-counter-history-day-limit>
 </address-setting>

一旦我删除了:

<max-delivery-attempts>0</max-delivery-attempts>
一切正常。