在确认之前,客户端是否可以接收队列的多条消息?

时间:2013-01-28 18:35:32

标签: jms activemq ack

我的节目将收到相当缓慢的消息;我希望他们坚持到队列中,直到我收到所有这些并承认所有这些。我收到一堆消息之前我不知道是否有足够的消息。

我的问题:队列会阻塞,在传递第二个消息之前等待第一条消息的确认吗?

2 个答案:

答案 0 :(得分:0)

我使用示例生产者/消费者代码对此进行了测试。消费者实际上有一些代码(如果你切换到ClientAcknowledge)。它接收一堆消息(其中10个)并且只响应最后一个消息。

答案 1 :(得分:0)

将确认模式设置为Session.CLIENT_ACKNOWLEDGE时,您可以获得所需数量的消息。消息将被锁定在服务器上,因此其他消费者无法同时检索它们。所以答案是否定的,队列不会阻塞(甚至可能有特定于提供者的设置可以做到这一点,我不知道)。

但是,您只能同时确认所有内容。因此,当您收到10条消息,并且您确认其中一条消息(无关紧要)时,所有消息都将被确认。

检查您的参考Controlling Message Acknowledgment