IBM MQ消息通道尚未出现

时间:2016-01-04 12:33:47

标签: ibm-mq

我正在尝试在IBM MQ v8上设置消息通道。

我在Ubuntu Linux上运行IBM MQ Server 8.x。

我有2个队列管理器QM1和QM2。

在QM1上,我创建了一个发送者频道,在QM2上,我创建了一个接收器频道。

在QM1上:

远程队列定义

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')

在配置结束时,我的发送方通道仍处于“重试”状态,接收方通道仍处于“非活动”状态。

如何让这个频道正常运行?

2 个答案:

答案 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 您的发送方和接收方渠道可以解决此问题。