IBM MQ 消息通道未启动

IBM MQ message channel is not coming up

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

我是 运行 IBM MQ 服务器 8.x Ubuntu Linux。

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

我在 QM1 上创建了一个 Sender Channel,在 QM2 上创建了一个 Receiver 通道。

在 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

第 2 个队列管理器 (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')

配置结束时,我的发送通道保持"Retrying"状态,接收通道保持"inactive"状态。

如何获得此频道 运行?

乍一看,问题似乎出在您的端口上。 connection 的conname 应该指定侦听器实际所在的端口运行。是 1491 还是 1490?

CONNAME('127.0.0.1(1491)') //-- QM2 的监听器在 1490

验证接收 qmgr 的侦听器 运行 并在您的 conname 中指定该端口。

发送方通道进入重试状态的原因可能有很多。

1.参数错误。

按照 Valerie 的建议检查连接名称。确保 IP 地址和端口号指向接收方队列管理器。

2。传输队列不可用。

确保传输队列可用。注意:有时传输队列可用,但它 可能被禁用, 在这种情况下,发送通道也会进入重试状态。发送方通道以独占模式打开传输队列,这意味着如果传输队列被另一个应用程序(例如 RFHUTIL)打开,则发送方通道将无法访问传输队列,因此通道将进入重试状态。因此,请确保传输队列未被其他应用程序打开。

3。接收通道不可用。

当接收方队列管理器关闭时可能会出现这种情况。 另外,确保接收通道的名称与发送通道的名称相同(在您的情况下这似乎是正确的)。

4.接收通道和发送通道乱序

接收方通道和发送方通道维护消息传输的序列号。由于网络故障等环境问题,发送方和接收方通道之间的序列号可能会变得不一致。

重置您的发送者和接收者通道以解决此问题。