我试图在IBM v8上设置消息通道。
我正在Ubuntu上运行IBMMQServer8.x。
我有两个队列管理器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 1490On第二队列管理器(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')在配置结束时,我的发送方通道仍然处于“重试”状态,而接收方通道仍然处于“非活动”状态。
我怎样才能让这个频道运行?
发布于 2016-01-04 13:27:37
乍一看,问题似乎在于您的端口。连接的名称应该指定侦听器实际运行的端口。是1491还是1490?
CONNAME('127.0.0.1(1491)') //-QM2的侦听器在1490年
验证侦听器正在为接收的qmgr运行,并在您的名称中指定该端口。
发布于 2016-01-05 07:52:48
发送方通道处于重试状态的原因可能很多。
1.参数错误.
按照Valerie的建议检查连接名称。确保IP地址和端口号指向接收方队列管理器。
2.传输队列不可用.
确保传输队列可用。注意:有时传输队列是可用的,但它的可能会被禁用,在这种情况下,也会使发送方通道处于重试状态。发送方通道以独占模式打开传输队列,这意味着如果传输队列由另一个应用程序(例如RFHUTIL)打开,则发送方通道将无法访问传输队列,因此该信道将处于重试状态。因此,确保传输队列不会被其他应用程序打开。
3.接收通道不可用.
当接收方队列管理器关闭时,可能会出现这种情况。此外,确保接收方通道的名称与发送方通道相同(在您的情况下这似乎是正确的)。
4.接收通道和发送通道偏离序列
接收方信道和发送方信道保持用于消息传输的序列号。由于网络故障等环境问题,发送方和接收方通道之间的序列号可能会变得不一致。
重置您的发送方和接收方通道以克服此问题。
https://stackoverflow.com/questions/34591281
复制相似问题