如何获取MQ本地队列的消息PUT/GET统计信息?已启用队列及QMGR统计
获取MQ本地队列PUT/GET统计信息的方法
一、使用MQ命令行工具(runmqsc)
- 查看单个队列统计:执行
runmqsc <队列管理器名>进入交互模式,输入DISPLAY QLOCAL(<队列名>) PUTCOUNT GETCOUNT,直接返回目标队列的PUT存入次数和GET取出次数。 - 批量查看本地队列统计:输入
DISPLAY QLOCAL(*) PUTCOUNT GETCOUNT,一次性列出所有本地队列的PUT/GET统计数据。 - 注意:由于已启用队列统计,队列的
STATQ属性应为ON或ALL,确保统计数据是累计的而非仅当前会话的。
二、通过MQ编程接口查询
- 若使用Java、.NET等开发语言,可调用MQ官方API获取队列属性。以Java为例,通过队列对象的属性方法直接读取PUT/GET计数:
MQQueueManager qmgr = new MQQueueManager("QMGR_NAME"); MQQueue queue = qmgr.accessQueue("QUEUE_NAME", MQC.MQOO_INQUIRE); int putCount = queue.getIntProperty(MQC.MQIA_PUT_COUNT); int getCount = queue.getIntProperty(MQC.MQIA_GET_COUNT); queue.close(); qmgr.disconnect();
三、解析队列管理器统计日志
- 启用QMGR统计后,系统会定期生成统计日志,日志文件通常位于MQ安装目录的
var/mqm/log/<QMGR_NAME>路径下,其中包含队列级别的PUT/GET汇总数据。 - 可使用
dmpmqfmt工具格式化日志以便读取,命令示例:dmpmqfmt -i <统计日志文件路径> -o formatted_stats.txt,打开格式化后的文件即可提取目标队列的统计信息。
内容的提问来源于stack exchange,提问作者Vishnu
相关产品推荐
相关产品推荐

