mq通道binding解决方法

====思路=============
1、首先确认网络和端口是否通

ping ip
telnet ip 端口
2、确认接收方监听是否开启。 
ps -ef |grep runmqlsr (aix系统)
3、重置通道
========解决=========
本次我遇到的问题是mq通道的端口设置为一个范围,但是此端口被占用,
netstat -an |grep 端口号 可以看出
重新设置mq通道的端口,重置端口后解决;

====================

实时查看MQ中间件运行状态

====================

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)

请使用浏览器的分享功能分享到微信等