Jboss 移动到DLQ的JMS消息

Jboss 移动到DLQ的JMS消息,jboss,jms,message-driven-bean,Jboss,Jms,Message Driven Bean,JMS mesages有时会在不引发任何异常的情况下移动到DLQ。 使用的Jboss服务器实例是4.3.0.GA_CP04_EAP 我们正在使用一个MDB来侦听队列a上的传入消息,当它收到任何消息时,它会更新数据库并在一个事务中发送电子邮件。事务是CMT 现在,发生的是,有时消费者没有拿起mesages,它们最终进入DLQ。尽管从JMX-console消息计数中,我可以看到消息曾经到达队列A,但随后进入DLQ 这会间歇性发生,并且不会在日志上引发任何异常 在大多数情况下,似乎有效的方法是重新启动

JMS mesages有时会在不引发任何异常的情况下移动到DLQ。 使用的Jboss服务器实例是4.3.0.GA_CP04_EAP

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

现在,发生的是,有时消费者没有拿起mesages,它们最终进入DLQ。尽管从JMX-console消息计数中,我可以看到消息曾经到达队列A,但随后进入DLQ

这会间歇性发生,并且不会在日志上引发任何异常

在大多数情况下,似乎有效的方法是重新启动服务器。但不知道幕后发生了什么

**29天后,同样的问题又出现了。 这遵循一种模式,但随着每次重启而变化。 有两个集群SEREVR也进行负载平衡,P1和P2。 前两封电子邮件发送到P1电子邮件并由其处理 下一封电子邮件resquest转到发送的P2电子邮件 接下来的两封电子邮件将转到并由P1电子邮件处理 下一封电子邮件resquest转到P2未发送电子邮件 循环重复

我已经找到了解决这个烦人问题的方法,这要感谢在

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

如果您能在消息发送到DLQ时提供日志详细信息,最好深入研究这个问题。

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