MQ中间件通道状态STATUS(RETRYING)的问题分析与解决方法

这种问题一般发送在发送端,在我们发出启动通道的命令之后,通道进入binding的状态,若网络连接畅通并且通道定义正确,它进入正常running状态,如果出现了如下的一些问题,则通道进入retrying状态。

检查通道状态示例

$ runmqsc QMgrName
dis chs(C)
AMQ8417: Display Channel Status details.
CHANNEL(C)                              XMITQ(QX)
CONNAME(xxx.xxx.xxx.xxx (1416))         CURRENT
CHLTYPE(SDR)                            STATUS(
RETRYING)

原因可能有如下几种

1、网络连接有问题
2、通道定义不正确
3、通道两端的消息序列号(Message Sequence Number)不匹配
4、通道定义中的CONNAME(HostName (PortNumber))使用了主机名但是hosts文件中没有定义
5、接收方不能连通
6、接收端没有启动监听
7、接收端端口占用(比如其它队列管理器占用了该端口)

解决方法

阅读更多

Reason[2071]MQRC_STORAGE_NOT_AVAILABLE

客户给我发邮件,反映以下问题:也就是应用测试时,应用日志报错如下:

2018-09-27 08:53:40.688-0003 CSPS        aosRecvMerc.c 261 IBMMQ_ERROR  11825914
 CTISMQ00 k03201 8585228 31208821
连接MQ消息队列管理器[Css7806QMgr]失败
MQ Error:CompCode[2]MQRCMQCC_FAILED, Reason[2071]MQRC_STORAGE_NOT_AVAILABLE

经过分析,与搜索IBM 官网support网站,并且凭经验,综合分析,并给客户作出如下答复:

通过分析报错日志所得,针对以下问题,提出如下建议:
首先:
1、确认连接MQ的JAVA代码里,正确连接MQ 队列管理器。即队列管理器没有写错。
2、应用代码访问的MQ队列没有写错。也就是应用没有访问错误的MQ队列。
3、写入MQ 队列的报文不能太大,IBM官方建议写入队列的信息报文尽量不要超过4M,如果超过,请将报文分段写入MQ队列。
其次:
1、如果确认应用代码没有错误,并且读入MQ队列的报文没有超过4M,并且报文格式没有错误。那就按下面方法,调整系统文件大小限制和MQ 队列管理器的最大信息大小值:
如下所示:

*********************************************

  1. 1、In /etc/security/limits, increase the “data” ulimit for the account used to start the queue manager (usually root) to 192 MB or greater. Setting the data segment size (ulimit -d) to unlimited will resolve the issue. Note that the value is configured in 512 byte blocks, and -1 means unlimited.
  2. 2、In runmqsc, decrease the queue manager’s MAXMSGL attribute to something like 33554432, depending on the “data” ulimit value.

 

LINUX 静默式安装IBM MQ7 并测试和安装IBM MB8.

[root@ibmsyss ~]# pwd
/root
[root@ibmsyss ~]# ls
anaconda-ks.cfg install.log install.log.syslog Mb8_64_For_Linux.iso
[root@ibmsyss ~]# mount Mb8_64_For_Linux.iso
mount: can’t find Mb8_64_For_Linux.iso in /etc/fstab or /etc/mtab
[root@ibmsyss ~]# mount Mb8_64_For_Linux.iso /mnt
mount: /root/Mb8_64_For_Linux.iso is not a block device (maybe try `-o loop’?)
[root@ibmsyss ~]# mount -o loop Mb8_64_For_Linux.iso /mnt
[root@ibmsyss ~]# ls /mnt
IE02 license Message_Broker_Toolkit_V8.0 sample-scripts setuplinuxx64.bin
install.ini MBExplorer readmes setuplinuxx64 WebSphere_MQ_V7.0.1.3
[root@ibmsyss ~]# ls
anaconda-ks.cfg install.log install.log.syslog Mb8_64_For_Linux.iso
[root@ibmsyss ~]# cd /mnt
[root@ibmsyss mnt]# ls
IE02 license Message_Broker_Toolkit_V8.0 sample-scripts setuplinuxx64.bin
install.ini MBExplorer readmes setuplinuxx64 WebSphere_MQ_V7.0.1.3
[root@ibmsyss mnt]# cd WebSphere_MQ_V7.0.1.3/
[root@ibmsyss WebSphere_MQ_V7.0.1.3]# ls
copyright MQSeriesMan-7.0.1-3.x86_64.rpm MQSeriesMsg_Zh_CN-7.0.1-3.x86_64.rpm
gsk7bas64-7.0-4.27.x86_64.rpm MQSeriesMsg_cs-7.0.1-3.x86_64.rpm MQSeriesMsg_Zh_TW-7.0.1-3.x86_64.rpm
gsk7bas-7.0-4.27.i386.rpm MQSeriesMsg_de-7.0.1-3.x86_64.rpm MQSeriesRuntime-7.0.1-3.x86_64.rpm
lap MQSeriesMsg_es-7.0.1-3.x86_64.rpm MQSeriesSamples-7.0.1-3.x86_64.rpm
licenses MQSeriesMsg_fr-7.0.1-3.x86_64.rpm MQSeriesSDK-7.0.1-3.x86_64.rpm
mqlicense.sh MQSeriesMsg_hu-7.0.1-3.x86_64.rpm MQSeriesServer-7.0.1-3.x86_64.rpm
MQSeriesClient-7.0.1-3.x86_64.rpm MQSeriesMsg_it-7.0.1-3.x86_64.rpm MQSeriesTXClient-7.0.1-3.x86_64.rpm
MQSeriesConfig-7.0.1-3.x86_64.rpm MQSeriesMsg_ja-7.0.1-3.x86_64.rpm PreReqs
MQSeriesEclipseSDK33-7.0.1-3.x86_64.rpm MQSeriesMsg_ko-7.0.1-3.x86_64.rpm readadd.txt
MQSeriesJava-7.0.1-3.x86_64.rpm MQSeriesMsg_pl-7.0.1-3.x86_64.rpm READMEs
MQSeriesJRE-7.0.1-3.x86_64.rpm MQSeriesMsg_pt-7.0.1-3.x86_64.rpm
MQSeriesKeyMan-7.0.1-3.x86_64.rpm MQSeriesMsg_ru-7.0.1-3.x86_64.rpm

阅读更多