以上讲述了MQ的基本命令操作,但只知道这些是没有实际意义的。MQ的最终目的是实现远程通信,所以下面就以一个具体的例子来说明如何实现远程连接。这个例子的目的是建立可以实现消息传递的一对MQ服务器,它们分别基于NT和UNIX平台。 
首先在NT端建一队列管理器 
crtmqm –q QM_NT 
启动队列管理器 
strmqm QM_NT 
运行MQ控制台命令 
runmqsc QM_NT 
创建死信队列 
DEFINE QL(NT.DEADQ) DEFPSIST(YES) REPLACE 
更改队列管理器属性,设置其死信队列 
ALTER QMGR DEADQ(NT.DEADQ) 
创建进程定义 
DEFINE PROCESS(P_NT)+ 
APPLTYPE(WINDOWSNT)+ 
APPLICID(’ runmqchl -c SDR_NT -m QM_NT’) 
创建本地传输队列 
DEFINE QL(QT_NT) USAGE(XMITQ) DEFPSIST(YES) + 
INITQ(SYSTEM.CHANNEL.INITQ)+ 
PROCESS(P_NT) REPLACE 
创建远程队列定义,对应于UNIX机器上的本地队列Q_UNIX,传输队列为QT_NT 
DEFINE QREMOTE(QR_NT)+ 
RNAME(Q_UNIX) RQMNAME(QM_UNIX)+ 
XMITQ(QT_NT) 
创建发送方通道,其传输队列为QT_NT,远程主机地址为10.10.10.2,侦听端口为1414 
DEFINE CHANNEL(SDR_NT) CHLTYPE(SDR)+ 
CONNAME(‘10.10.10.2(1414)’) XMITQ(QT_NT) REPLACE 
创建服务器连接通道 
DEFINE CHANNEL(S_NT) CHLTYPE(SVRCONN) REPLACE 
 
在UNIX端创建队列管理器 
crtmqm –q QM_UNIX 
启动队列管理器 
strmqm QM_UNIX 
添加侦听程序 
修改/etc/services文件,加入一行: 
MQSeries 1414/tcp #MQSeries channel listener 
修改/etc/inetd.conf文件,加入一行(启动侦听程序) 
MQSeries stream tcp nowait mqm /usr/lpp/mqm/bin/amqcrsta amqcrsta –m QM_UNIX 
运行以下命令,以使修改起作用 
refresh –s inetd 
 
运行MQ控制台命令 
runmqsc QM_UNIX 
创建死信队列 
DEFINE QL(UNIX.DEADQ) DEFPSIST(YES) REPLACE 
更改队列管理器属性,设置其死信队列 
ALTER QMGR DEADQ(UNIX.DEADQ) 
创建接收方通道,其名字必须与远程发送方相同 
DEFINE CHANNEL(SDR_NT) CHLTYPE(RCVR) REPLACE 
创建本地队列 
DEFINE QL(Q_UNIX) DEFPSIST(YES) REPLACE 
创建服务器连接通道 
DEFINE CHANNEL(S_UNIX) CHLTYPE(SVRCONN) REPLACE 
 
经过以上操作之后,远程连接的配置工作完成。接下来需要验证配置是否正确。 
在NT端启动发送方通道 
runmqchl –c SDR_NT –m QM_NT 或 start chl(SDR_NT) 
从NT端发送消息到UNIX端 
amqsput QR_NT QM_NT 
在UNIX端接收消息 
/usr/mqm/samp/bin/amqsget Q_UNIX QM_UNIX 
 
若能收到消息,说明配置成功。
另,在NT下一般情况下在建立队列管理器时会自动建立侦听器,启动队列管理器时则会自动启动侦听程序。当然也可以手动配置侦听程序。 
修改\winnt\system32\drivers\etc\services文件,在文件中加入一行: 
MQSeries 1414/tcp #MQSeries channel listener 
启动侦听程序 
runmqlsr –t tcp –p 1414 –m QM_NT 
 
以上说明了怎样建立简单的单向传输网络。消息从NT端传送到UNIX端。建立从UNIX端到NT端的远程连接和以上相仿,要建立双向的传输网络也是同样的道理。