JMS主题队列大小始终为0

时间:2012-10-31 15:49:48

标签: java jms activemq geronimo

如果我将一堆消息发布到订阅者非常慢的主题。 geronimos“JMS资源”选项卡中的“队列大小”保持为0.如果我使用JMS队列而不是主题,我可以看到大小增加。在两种情况下,都会传递所有消息。

为什么主题的“队列大小”始终显示为0?

1 个答案:

答案 0 :(得分:2)

主题表示发布 - 订阅模型,当没有订阅者正在侦听时,消息将消失。因此,对主题​​大小的查询始终为零。

主题可以有多个订阅者,因此可以在多个客户端上“读取”该主题上的消息。

另一方面,队列将保留消息,直到客户端请求下一条消息。在这里,您可以查询当前持有的消息量的大小。消息只能由一个客户端提取。

另请参阅Oracle的Basic JMS API concepts

在理想情况下,这里不考虑持久性主题和临时队列。

相关问题