如何获取等待特定 JMS 消息订阅者使用的 JMS 消息数?我使用主题模型(发布/订阅)而不是队列模型。
我希望我的 MDB(消息驱动 bean)能够找出有关它所听主题的信息。要清楚;我希望我的 MDB 获得等待使用的消息数。
我在 Internet 或文档中都找不到任何信息:(
我使用 JBoss 消息 1.4.4。
如何获取等待特定 JMS 消息订阅者使用的 JMS 消息数?我使用主题模型(发布/订阅)而不是队列模型。
我希望我的 MDB(消息驱动 bean)能够找出有关它所听主题的信息。要清楚;我希望我的 MDB 获得等待使用的消息数。
我在 Internet 或文档中都找不到任何信息:(
我使用 JBoss 消息 1.4.4。
AFAIK,JMS 没有指定任何东西来计算目标中的消息数量。
为此,您需要使用 JMX。在TopicMBean#getMessageCounters()的文档和/或 java 文档中查看Topic MBean 的 MBean 属性。的属性应该是你要找的。但是,老实说,我不知道您将如何处理这些信息,以及这是否对主题有意义。只要一条消息还没有被传递给所有订阅者,并且每个订阅者通常不了解其对等点,消息就会保留在主题中。那么一个 MDB 将如何解释消息计数呢?depth
MessageCounter
另请注意,我在 JBoss Messaging 2.0.0.alpha1 的javadoc中找不到这个 MBean 。我不知道它是否已被弃用(根据 1.4 中的代码,它不是)或者文档是否不是最新的(毕竟,它是 alpha1 javadoc,我找不到 beta4 的链接)。
编辑:正如 skaffman 指出的,JBoss Messaging 已更名为 HornetQ。看起来 API 发生了一些变化,但概念仍然适用。文档在这里。
You can't, not with the JMS API. The internal JBossMessaging API may expose that information, but you'll have to go looking through that documentation to find it.