如何在主题中获取JMS消息的数量

时间:2009-10-20 14:12:09

标签: jboss jms messaging subscriber

如何获取特定JMS消息订阅者等待使用的JMS消息数?我使用Topic模型(发布/订阅)而不是Queue模型。

我希望我的MDB(消息驱动bean)能够找出有关它所监听主题的信息。要清楚;我希望我的MDB获取等待消费的消息数量。

我无法在互联网或文档中找到任何信息:(

我使用JBoss Messaging 1.4.4。

2 个答案:

答案 0 :(得分:4)

AFAIK,JMS没有指定任何内容来计算目的地中的消息数量。

您需要使用JMX。查看文档和/或MBean attributes of the Topic MBean的java文档中的TopicMBean#getMessageCounters()depth MessageCounter属性应该是您正在寻找的属性。但是,说实话,我不知道你将如何处理这些信息,如果这对主题有意义。只要消息尚未发送给所有订户,并且每个订户通常不了解其对等方,消息将保留在主题中。那么一个MDB如何解释消息的数量呢?

另请注意,我在JBoss Messaging 2.0.0.alpha1的javadoc中找不到这个MBean。我不知道它是否已被弃用(根据1.4中的代码,它不是)或者文档是否是最新的(毕竟,它是alpha1 javadoc,我找不到beta4的链接)。

编辑:正如斯卡弗曼指出的那样,JBoss Messaging已经更名为HornetQ。看起来API中有一些变化,但概念仍然适用。文档为here

答案 1 :(得分:0)

你不能,不能使用JMS API。内部JBossMessaging API可能会公开这些信息,但您必须查看该文档才能找到它。