现象
使用dis chs(*)查看通道状态的时候,看到同一个通道上出现了多条通道状态,如
$ runmqsc QMUMBFEA
5724-H72 (C) Copyright IBM Corp. 1994, 2009. ALL RIGHTS RESERVED.
Starting MQSC for queue manager QMUMBFEA.
dis chs(*)
1 : dis chs(*)
AMQ8417: Display Channel Status details.
CHANNEL(402T581) CHLTYPE(RCVR)
CONNAME(10.8.6.232) CURRENT
RQMNAME(QMU5810A) STATUS(RUNNING)
SUBSTATE(RECEIVE)
AMQ8417: Display Channel Status details.
CHANNEL(581T402) CHLTYPE(SDR)
CONNAME(10.8.6.232(1428)) CURRENT
RQMNAME(QMU5810A) STATUS(RUNNING)
SUBSTATE(MQGET) XMITQ(XM5810A)
AMQ8417: Display Channel Status details.
CHANNEL(402T581) CHLTYPE(RCVR)
CONNAME(10.8.6.10) CURRENT
RQMNAME(QMU5810A) STATUS(RUNNING)
SUBSTATE(RECEIVE)
这里很明显可以看出对于通道402T581来说有两个通道状态,而且是分别指向不同ip的。
同时伴随着对于通道402T581,经常会是不是的会由于序号不同步处于RETRYING状态
解决
出现这种情况是因为我在10.8.6.232和10.8.6.10上分别搭建了两套同一系统的MQ分别用于开发和测试环境。然而在10.8.6.10上创建发送通道402T581时,忘了修改远程的ip,导致两套环境的MQ发送通道同时连接上同一个MQ的同一个接受通道。修改10.8.6.10上发送通道的远程队列ip后,问题就解决了。
本文出自 “暗日” 博客,请务必保留此出处http://darksun.blog.51cto.com/3874064/1266690