WebsphereMQ 远程队列配置

      环境:Redhat5.6,WebsphereMQ7

      安装很简单,rpm -ivh把需要的组件一个个安装好就可以了,我这里的配置是在一台机器上做的,其实远程的意思也是相对的,不一定非要多台机器,在这里本地通信指的是在同一个消息队列中,远程指的是在不同的消息队列中.

      su mqm, 进入mqm用户操作MQ, 这里要创建两个队列管理器,分别是QM1,QM2,一个是发送端,一个是接收端:

      发送端:

      crtmqm QM1      --创建队列管理器

      strmqm QM1       --启动队列管理器

      runmqsc QM1      --运行队列管理器,其实是进入其中进行相应的配置

      define qlocal(QL1) usage(xmitq) trigger trigtype(first) initq(System.channel.initq) trigdata(Q1ToQ2)      --定义本地队列,这里的配置选项多了一些,其实完全可以用最基本的默认配置

      define qremote(QR1) rname(QL2) rqmname(QM2) xmitq(QL1)      --定义远程队列,指定目的队列的名称以及其队列管理器的名称,使用的本地队列

      define chl(Q1ToQ2) chltype(sdr) conname('localhost(1415)') trptype(tcp) xmitq(QL1)      --定义远程队列的传输通道,指定其类型(sdr表示发送端), 目的队列所在的主机以及其对应的监听端口, 协议类型与使用的本地队列

      define listener(LSR1) trptype(tcp) port(1414) control(qmgr)     --定义此队列管理器对应的监听器,注意这里的port,值必须是上面目的队列监听端口号减1,并设置其由队列管理器控制,即随QM启动与停止.

      end      --完成配置

      接收端:

      crtmqm QM2      

      strmqm QM2

      runmqsc QM2

      define qlocal(QL2) usage(xmitq) trigger trigtype(first) initq(System.channel.initq) trigdata(Q1ToQ2)      --这里的名称必须与上面定义发送端的远程队列中的rname值相同

      define chl(Q1ToQ2) chltype(rcvr)      --名称必须与发送端的传输通道相同,类型为接收类型,只需简单的这两个配置即可

      define listener(LSR2) trptype(tcp) port(1415) control(qmgr)      --还是要注意端口,必须是发送端传输通道中指定的端口

      end

 

      这样就配置好了,当然还有很多地方可以简化,比如配置本地队列,其实define qlocal(QL1)即可,需要特别注意的有两个:

      1)端口的问题,发送方的端口号必须比接收方的端口号少1,即发送方的端口确定下来,接收方也就确定了,在配置时不要晕了,清楚哪个端口对应哪个QM

      2)监听器的问题,其实QM有其对应的默认监听器,但这里强烈建议像上面的过程自己手动配置一个新的,不用默认的

      现在测试一下:

      1)endmqm -i 两个消息队列,然后strmqm,为了将对应的监听器启动

      2)runmqchl -c Q1ToQ2 -m QM1      启动传输通道,其实启动的是发送端

      3)amqsput QR1 QM1      向QM1中的远程队列QR1写入消息,按两下回车结束

      4)amqsget QL2 QM2      从QM2中的本地队列QL2中取出消息,注意这里是从QL2中取,因为消息发送到远程队列之后,会转发到指定的本地队列

      经过以上步骤,WasMQ的远程队列配置就成功了!

你可能感兴趣的:(WebsphereMQ 远程队列配置)