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)