2013-12-13 53 views
0

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

我们使用的是一个MDB侦听上队列中的进来的消息,当它接收它更新数据库的任何消息和Sens在一个transaction.Transaction电子邮件是CMT。现在

,正在发生的事情是,有时mesages不被消费者拿起他们在DLQ结束。虽然从JMX控制台消息计数中我可以看到消息曾经到达队列A但是然后进入DLQ。

这种情况发生间歇性和不扔在日志中的任何异常无论是。

什么似乎工作大部分时间被重新启动服务器。不知道幕后发生了什么。

** 29天后,同样的问题已经返回。 这遵循一种模式,但随着每次重启而变化。 有2个群集serevrs也负载平衡,P1和P2。 前两封电子邮件发送并由P1-Email处理发送 下一封电子邮件Resquest发送至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)。 自那时起,应用程序一直运行顺利。

回答

0

如果在消息发送到DLQ可以提供详细日志信息,将更好地深入到这个问题。

0

日志没有包含任何有用的信息;甚至没有例外给出提示。 最后,将本地tx数据源更改为xa数据源,结果很成功。想知道它背后是否有原因。