我们有一个用例,其中我们只创建一个消费者来处理队列中的消息。消息处理器在确认之前累积一定数量的消息。以异步方式接收消息并使用事务处理会话。消息的大小非常小。当消费者未确认消息时,ActiveMQ停止向队列消费者发送消息
在某些消息并等待确认后,主动MQ停止发送更多消息给唯一消费者。我们已尝试解决方案,如consumer.prefetchSize,consumer.maximumPendingMessageLimit;但没有任何工作。 我们尝试了类似的用例,只有一个订户的持久主题,它工作正常。
有没有人遇到类似的activemq问题/行为?我们尝试了很多在不同论坛上提到的东西,但都没有帮助。
ActiveMQ的版本:的ActiveMQ 5.6.0
队列配置:耐久队列
消费者:异步并使用事务会话如确认模式
任何帮助或建议将不胜感激。谢谢。
请显示打开'QueueSession'的代码。在'QueueSession'上调用'commit'的代码。从第一次读取开始直到'commit'需要多长时间? – Beryllium
我忘记了:会话是如何关闭的(在正常情况下和例外情况下) – Beryllium
由于它太大/复杂,粘贴只是代码片段将会很难将整个代码覆盖在此处在理解我的问题上有所不同。当我创建队列的使用者时,我会在收到停止请求时打开会话并关闭会话。 –