Java JMS主题队列大小始终为0

Java JMS主题队列大小始终为0,java,jms,activemq,geronimo,Java,Jms,Activemq,Geronimo,如果我在订阅速度非常慢的主题上发布一堆消息。geronimos“JMS资源”选项卡中的“队列大小”保持为0。如果我使用JMS队列而不是主题,我可以看到大小在增长。在这两种情况下,都会传递所有消息 为什么主题的“队列大小”始终显示为0 主题表示发布-订阅模型,当没有订阅者侦听时,消息将消失。因此,对主题大小的查询始终为零 主题可以有多个订阅者,因此可以在多个“侦听”该主题的客户端上读取消息 另一方面,队列将保留消息,直到客户端请求下一条消息。您可以在此处查询当前保留的邮件数量的大小。一条消息只能由

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


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

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

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

另一方面,队列将保留消息,直到客户端请求下一条消息。您可以在此处查询当前保留的邮件数量的大小。一条消息只能由一个客户端接收

另请参见Oracle提供的


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

也许我不清楚我的问题,但我真正想知道的是:在涉及主题且侦听器可用的场景中,如果消费者/侦听器处理消息的时间较长,消息不会消失,而不是生产商生产一个。主题消息get“queued”我想知道在哪里可以通过JMS查找特定使用者排队的消息数量。嗯,我对Geronimo不太了解,但它使用ActiveMQ。您是否检查了JMX资源,可能是“机上计数”?和