第三章 MQ队列管理器搭建之(二)

MQ2的搭建:

1.创建队列管理器MQ2。(使用mqm用户连接MQ所在的机器,dspmq查看队列的状态,查看MQ2是否已经创建,如果已经创建则更换名称,或者删掉重建)

mqm@localhos ~>$crtmqm MQ2

2.启动队列管理器

mqm@localhos ~>$strmqmMQ2

3.进入MQ2的命令行模式

mqm@localhos ~>$runmqsc MQ2

4.定义本地队列Queue,下面的含义不再赘述参见本章的上一节。

DEFINE QLOCAL (‘Queue’) DEFPSIST (YES) MAXDEPTH(100) REPLACE

5.定义一个远程队列RemoteQueue

DEFINE QREMOTE(‘RemoteQueue’) RNAME(‘Queue’) RQMNAME(‘MQ1’) XMITQ(‘TransQueue’)

RNAME(‘Queue’) 指定了对应的目标端的队列是Queue,RQMNAME(‘MQ1’)指定了目标端的队列管理器名称为MQ1,,XMITQ(‘TransQueue’)指定了该远程队列关联的传输队列为‘TransQueue’。

6.定义一个传输队列TransQueue

DEFINE QLOCAL(‘TransQueue’) usage(XMITQ) DEFPSIST(YES) INITQ(SYSTEM.CHANNEL.INITQ) TRIGDATA(‘CHAN_QMGR2_TO_QMGR1’) TRIGTYPE(FIRST) TRIGGER REPLACE

与本地队列不同的是usage(XMITQ) ,它指定了该队列为传输队列。DEFPSIST(YES)代表队列持久化,INITQ(SYSTEM.CHANNEL.INITQ) TRIGDATA(‘CHAN_QMGR2_TO_QMGR1’) TRIGTYPE(FIRST) TRIGGER 与设置触发器相关,初始化队列为SYSTEM.CHANNEL.INITQ,被触发的通道为’CHAN_QMGR2_TO_QMGR1’,触发方式为First,每个消息到达时产生触发事件。

7.定义一个发送通道CHAN_QMGR2_TO_QMGR1

DEFINE CHANNEL(‘CHAN_QMGR2_TO_QMGR1’) CHLTYPE(SDR) CONNAME(‘192.168.xx.xx(4141)’) XMITQ(‘TransQueue’)

CONNAME指定了目标端ip和端口号,CHLTYPE(SDR)指定了通道的类型为发送,XMITQ指定了传输队列的名称。

8.定义一个接收通道CHAN_QMGR1_TO_QMGR2,该名称与发送端的发送通道名称一致。

DEFINE CHANNEL(CHAN_QMGR1_TO_QMGR2) CHLTYPE(RCVR)

9.定义一个服务器连接通道

DEFINE CHANNEL(CHAN_SERVER_CON) CHLTYPE(SVRCONN) REPLACE

10.在定义一个死性队列QDEAD

DEFINE QLOCAL (‘QDEAD’) DEFPSIST (YES) MAXDEPTH(100) REPLACE

11.给MQ1设置指定的死性队列,当消息无法到达指定的Queue中时,会被放入死性队列QDEAD

ALTER QMGR DEADQ(‘QDEAD’)

12.定义监听器LISTENER.TCP,该端口1414应用程序连接时需要指定。

DEFINE LISTENER(‘LISTENER.TCP’) TRPTYPE(TCP) CONTROL(QMGR) PORT(1414) REPLACE

13.启动监听器LISTENER.TCP

START LISTENER(‘LISTENER.TCP’)

这样就完成了MQ1与MQ2的互相通信了,需要注意的是,此处两个队列管理器的监听端口不能一样。

绊脚石乃是进身之阶。

第三章 MQ队列管理器搭建之(二)

相关文章:

你感兴趣的文章:

标签云: