JMS消息转移到DLQ

时间:2013-12-13 12:18:51

标签: jboss jms message-driven-bean

JMS消息有时会移动到DLQ而不会抛出任何异常。  使用的Jboss服务器实例是4.3.0.GA_CP04_EAP。

我们正在使用一个MDB来侦听队列A上的传入消息,当它收到任何消息时它会更新数据库并在一个事务中感知电子邮件。事务是CMT。

现在,正在发生的事情是,消费者有时不会收到消息,他们最终会进入DLQ。虽然从JMX-控制台消息计数中我可以看到消息曾经到达队列A但是然后转到DLQ。

这种情况间歇性地发生,也不会在日志上引发任何异常。

大多数时候似乎有效的是重启服务器。不知道幕后发生了什么。

** 29天后,同样的问题又回来了。 这遵循一种模式,但随着每次重启而变化。 有2个集群的serevrs也可以进行负载均衡,P1和P2。 前两封电子邮件由P1-Email发送并处理 下一封电子邮件重新发送到P2-Email发送 接下来两封电子邮件将由P1-Email发送并处理 下一封电子邮件resquest转到P2-Email NOT SENT 并且循环重复

由于http://leakfromjavaheap.blogspot.in/2013/05/when-dead-letter-queue-becomes-zombie.html

上的有用信息,我找到了解决此问题的解决方法

DLQ侦听器设置为侦听任何传入消息,并在DLQ上找到任何消息后将其返回到预期目标。 此外,考虑到任何消息从DLQ传送到队列并返回到无限循环中的DLQ的情况,设置计数器以检查消息之前到DLQ的次数,如果超过限制,则被置于永久DLQ(DLQ用于DLQ)。 从那以后,应用程序一直运行顺利。

2 个答案:

答案 0 :(得分:0)

如果您可以在邮件进入DLQ时提供日志详细信息,那么最好深入研究此问题。

答案 1 :(得分:0)

日志中没有任何有用的信息;甚至不提供提示的例外。 最后,将本地tx数据源更改为xa数据源,这是成功的。仍然想知道它背后是否有原因。