jboss - 如何获取 Topic 中 JMS 消息的数量

标签 jboss jms messaging subscriber

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

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

我在 Internet 或文档中都找不到任何信息:(

我使用 JBoss Messaging 1.4.4。

最佳答案

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

为此,您需要使用 JMX。查看 MBean attributes of the Topic MBeanTopicMBean#getMessageCounters() 的文档和/或 java 文档中. depth MessageCounter 的属性应该是你要找的。但是,老实说,我不知道你打算用这些信息做什么,以及这是否对主题有意义。只要消息尚未传递给所有订阅者,并且每个订阅者通常不了解其对等方,消息就会保留在主题中。那么一个 MDB 将如何解释大量消息呢?

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

编辑:正如 skaffman 指出的那样,JBoss Messaging 已更名为 HornetQ。看起来 API 中发生了一些变化,但概念仍然适用。文档是 here .

关于jboss - 如何获取 Topic 中 JMS 消息的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1594893/

相关文章:

tomcat - JBoss/Tomcat/Struts2 服务器启动时间点?

java - ActiveMQ 故障转移传输 - 为什么有这么多连接?

java - 高性能 JMS 消息传递

iphone - iOS RTP 库/教程/示例

java - 使用 Redis 实现 JMS/AMQP 消息传递模式

java - 应用程序(JBoss + Hibernate + Infinispan)性能在相同数据上下降

java - 需要使用双向 SSL 安全 Web 服务的 Java 客户端桌面应用程序示例

java - Wildfly 如何使用自定义模块中的部署类

java - JMS。在 WildFly 12 中向 ActiveMQ 中的主题发送简单的主题消息失败

jms - ActiveMQ 和预取限制