如何以编程方式读取jms队列统计信息

时间:2016-12-23 08:56:16

标签: java jms weblogic

我找到了以下链接来读取来自JMS队列及其工作的消息。

https://blogs.oracle.com/soaproactive/entry/jms_step_3_using_the

现在我想以编程方式读取JMS队列统计信息,例如消息数,待处理消息数和消息输入/输出时间等。是否可以在 weblogic 或weblogic中为此提供任何API?

请帮忙。

3 个答案:

答案 0 :(得分:4)

统计信息是消息代理实现的一部分,因此也是特定于供应商的。一个流行的实现是ActiveMQ。它can be run in WebLogic Server or WebLogic Express

注意:显然有许多其他JMS实现,您应该仔细评估哪种实现适合您的需求。不过,我将以此为例来指出您案例的相关特征:

从版本5.3开始,ActiveMQ附带statistics plugin

  

可用于从代理或其目的地检索统计信息。

您应该能够通过向代理中的特定目的地发送消息,从代码中主动轮询统计信息,有关详细信息,请参阅链接文档。

ActiveMQ的另一个功能是Advisory messages。在您的经纪人配置中启用它

  

允许您使用常规JMS消息来观看系统。

通过这种方式,您可以被动对邮件系统中的某些事件做出反应,例如:当队列超过某个阈值时。

答案 1 :(得分:3)

JMS规范中没有用于统计的API。但是,您可以使用JMX来监视统计信息。

来自docs

  

监控JMS服务器

     

您可以监控在您的定义的活动JMS服务器上的统计信息   通过管理控制台或通过   JMSServerRuntimeMBean。 JMS服务器充当管理容器   具体是JMS模块中的JMS队列和主题资源   针对JMS服务器。

post(新方式)可能会有所帮助。

答案 2 :(得分:2)

JMS API不提供此类信息。它用于接收和发送消息,但不是从底层中间件获取统计信息。

检查您使用的基础MQ的直接API。例如,IBM WebSphere MQ具有此类API。