MQ维护工作,必须要学会查看MQ运行状态,我们都需要查看那些,下文将对其进行介绍。
1、查看队列管理器运行状态
对MQ 5.2或以上版本,执行如下命令检查队列管理器运行状态:
# dspmq
显示结果中QMNAME表示MQ队列管理器的名称,STATUS表示当前运行状态。
运行状态有如下几种:
Starting 正在启动
Running 正在运行
Ending 正在停止
Ended normally 已经正常终止
Ended immediately 已经立即终止
Ended preemtively 已经强制终止
Ended unexpectively 异常终止
注:停止MQ后建议使用dspmq命令进行状态检查是否成功关闭。
dspmq查询结果示例
QMNAME(QM00) STATUS(Running)
2、查看通道运行状态与启停通道
$ runmqsc
dis chl(*); 查看所有通道定义
dis chs(*); 查看所有通道状态,如果没有查询到通道状态,或报错AMQ8420: Channel Status not found,请启动通道
dis chs(ChannelName); 查看通道ChannelName的状态
通道状态有如下几种:
STARTING 正在启动
BINDING 正在绑定
INITIALIZING 正在初始化
RUNNING 正常
STOPPING 正在停止
RETRYING 重试
PAUSED 等待
STOPPED 已停止
REQUESTING 请求
启停通道与重置通道序号的方法:
$ runmqsc
start chl(ChannelName); 启动通道
stop chl(ChannelName); 停止通道
reset channel(ChannelName); 重置通道序号。当本地与其他MQ队列管理器的通道无法正常启动的情况,检查日志发现是通道序号不一致,此 时就需要先停止发送方通道,并在发送方和接收方进行通道计数的重置,重置后启动通道即可恢复通讯。想了解为什么要重置通道,请查看文 章:Websphere MQ消息序号Message Sequence详解
3、查看通道监听状态与启停监听
$ runmqsc
dis listner(*); 查看通道监听定义
dis lsstatu(listnerName); 查看监听状态
启动与停止监听的方法:
$ runmqsc
start lstr(listnerName); 启动监听
stop lstr(listnerName); 停止监听
4、查看队列深度
如果队列深度不断增加,不见减少,那么可能就有问题了,请检查并分析其原因。
$runmqsc
dis q(*); 查看所有各类队列的属性
dis qlocal(QName); 查看所有本地队列的属性
队列深度属性为:CURDEPTH
5、查看死信队列深度
如果死信队列深度不断增加,那就需要分析其原因。
$runmqsc
dis qlocal(DEADQName)