dim*_*mal 6 java jms hornetq wildfly jms-queue
在我的应用程序中,我注意到HornetQ 2.4.1已经堆积了消息日志文件,(有时会成千上万.)我通过JMS队列使用HornetQ,我们正在使用Wildfly 8.2.通常,在启动服务器实例时,HornetQ将有3个消息日志和一个锁定文件.
消息日志文件的堆积在重新启动服务器时引起了问题,我们将看到一条日志,其中指出:
HQ221014: 54% loaded
删除文件时,服务器加载正常.我已经尝试了一些,似乎这些文件中的消息已经被处理过,但我不确定为什么它们会随着时间的推移而继续堆积.
编辑1:我发现此链接表明我们没有确认消息.但是,当我们像这样创建会话时connection.createSession(false,Session.AUTO_ACKNOWLEDGE);.
我会继续寻找解决方案.
我发现这是由于调用该方法失败造成的(出于某种原因,我目前认为它与服务器负载或网络挂起有关)afterDelivery()。我通过不那么频繁地排队来解决这个问题。它并不优雅,但它符合我的目的。
请参阅我在日志中找到的以下 HornetQ 消息:
HQ152006: Unable to call after delivery
javax.transaction.RollbackException: ARJUNA016053: Could not commit transaction. at org.jboss.as.ejb3.inflow.MessageEndpointInvocationHandler.afterDelivery(MessageEndpointInvocationHandler.java:87)
HQ222144: Queue could not finish waiting executors. Try increasing the thread pool size
HQ222172: Queue jms.queue.myQueue was busy for more than 10,000 milliseconds. There are possibly consumers hanging on a network operation
Run Code Online (Sandbox Code Playgroud)