我正在使用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中查看消息(如日志记录,管理界面)?
答案 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>
一切正常。