Java 每15条JMS消息卡在队列中,直到第一条消息完成
我们面临一个问题,在MDB实例没有完成处理第一条消息之前,不会从消息队列读取每15条消息 我们的留言时间为30秒。如果第一条消息消耗的时间比这长得多,那么被卡住的消息会在队列中停留30秒以上,从而在慢速消息消耗停止时超时 MDB池大小为20,但已尝试了30、10、。。。没什么区别 场景如下所示: #1消息进入队列时速度较慢,调用MDB onMessage(),消息处理 #2-14条消息进入队列,调用MDB onMessage(),处理消息 #15消息进入队列,消息未被触碰 #16-29条消息进入队列,调用MDB onMessage(),消息已处理 #30消息进入队列,消息未被触碰 。。。每15分钟就有一次 #1完成后,由于消息超时,每15条消息(卡住的消息)立即被丢弃一次 它总是每15条信息 我们在JBossEAP6.1上,使用Java7 有没有人能给我们一些关于这个问题的建议,原因是什么,去哪里找?有些东西必须被配置为15,这是造成这种情况的原因,但我们不知道它可能是什么Java 每15条JMS消息卡在队列中,直到第一条消息完成,java,jakarta-ee,jms,Java,Jakarta Ee,Jms,我们面临一个问题,在MDB实例没有完成处理第一条消息之前,不会从消息队列读取每15条消息 我们的留言时间为30秒。如果第一条消息消耗的时间比这长得多,那么被卡住的消息会在队列中停留30秒以上,从而在慢速消息消耗停止时超时 MDB池大小为20,但已尝试了30、10、。。。没什么区别 场景如下所示: #1消息进入队列时速度较慢,调用MDB onMessage(),消息处理 #2-14条消息进入队列,调用MDB onMessage(),处理消息 #15消息进入队列,消息未被触碰 #16-29条消息进入
提前谢谢 我已经解决了这个问题 这是因为基于hornetq窗口的流量控制 此帖子包含以下解决方案:
也许这与某些批量消费功能有关?我不知道您的邮件的优先级如何。但是,如何将JMSPriority设置为慢消息的低级别呢?以这种方式对消息进行优先级排序不会产生令人遗憾的效果,因为如果MDB试图到达的后端上存在服务问题,那么慢消息的速度就慢了。我们已经有了一个优先级策略,目前对所有消息都是平等的。可能是一些批量消耗,但我真的不知道在哪里查找我已经编辑了一些更彻底的测试后的问题嗨,你能告诉我在哪里可以找到发送到队列中的消息吗?如果有的话。谢谢