2

我正在使用 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 中的消息(如日志记录、管理界面)?

4

1 回答 1

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>

一切正常。

于 2012-07-26T11:05:18.667 回答