我正在尝试在IBM MQ v8上设置消息通道。
我在Ubuntu Linux上运行IBM MQ Server 8.x。
我有2个队列管理器QM1和QM2。
在QM1上,我创建了一个发送者频道,在QM2上,我创建了一个接收器频道。
远程队列定义
DEFINE QREMOTE(RMQ1) DESCR('Remote queue for QM2') REPLACE +
PUT(ENABLED) XMITQ(QM2) RNAME(Q_ON_QM2) RQMNAME(QM2)
传输队列定义
DEFINE QLOCAL(QM2) DESCR('Transmission queue to QM2') REPLACE +
USAGE(XMITQ) PUT(ENABLED) GET(ENABLED) TRIGGER TRIGTYPE(FIRST) +
TRIGDATA(QM1.TO.QM2) INITQ(SYSTEM.CHANNEL.INITQ)
TCP / IP连接的发件人通道定义:
DEFINE CHANNEL(QM1.TO.QM2) CHLTYPE(SDR) TRPTYPE(TCP) +
REPLACE DESCR('Sender channel to QM2') XMITQ(QM2) +
CONNAME('127.0.0.1(**1491**)') //-- QM2's listener is on 1490
在第二个队列管理器(QM2)
上本地队列定义
DEFINE QLOCAL(Q_ON_QM2) REPLACE PUT(ENABLED) GET(ENABLED) +
DESCR('Local queue ')
接收方渠道定义
对于TCP / IP连接:
DEFINE CHANNEL(QM1.TO.QM2) CHLTYPE(RCVR) TRPTYPE(TCP) +
REPLACE DESCR('Receiver channel from QM1')
在配置结束时,我的发送方通道仍处于“重试”状态,接收方通道仍处于“非活动”状态。
如何让这个频道正常运行?
答案 0 :(得分:1)
乍一看,问题出在您的端口上。 连接的conname应指定侦听器实际运行的端口。是1491还是1490?
CONNAME('127.0.0.1( 1491 )')// - QM2的监听器是1490
验证侦听器是否正在为接收qmgr运行,并在conname中指定该端口。
答案 1 :(得分:0)
发送方通道进入重试状态可能有很多原因。
<强> 1。参数错误。
检查Valerie建议的连接名称。确保IP地址和端口号指向接收方队列管理器。
<强> 2。传输队列不可用。
确保传输队列可用。注意:有时传输队列可用,但 可能已禁用GET, ,在这种情况下,发送方通道也将处于重试状态。发送方通道以独占模式打开传输队列,这意味着如果传输队列被另一个应用程序(比如RFHUTIL)打开,则发送方通道将无法访问传输队列,因此通道将进入重试状态。因此,请确保其他应用程序未打开传输队列。
第3。接收方频道不可用。
当接收器队列管理器关闭时可能就是这种情况。 另外,请确保接收方通道的名称与发送方通道的名称相同(在您的情况下看起来是正确的)。
<强> 4。接收方频道和发送方频道不按顺序
接收方通道和发送方通道维护用于消息传输的序列号。由于网络故障等环境问题,发送方和接收方通道之间的序列号可能会不一致。
RESET 您的发送方和接收方渠道可以解决此问题。