WebSphere MQ 学习笔记 - 远程管理

1. 在消息送往远程队列管理器之前, 本地队列管理器必需有

  1)至少一个通道
  2)一个传输队列
  3)一个通道初始化器
  4)一个远程队列定义

  2. 对于本地队列管理器, 则需要一个侦听器

  3. 一个通道的两端各有一个通道的定义, 两个定义必需有相同的名字,共通构成一个消息通道.

  4. 每个消息通道两端都有一个消息通道代理(MCA), 他们从传输队列中提取消息.

  5. 传输队列是一个本地队列, 用于在MCA提取消息并传递到远程队列管理器之前临时存放消息. 定义远程队列时,应该声明传输队列.

  6. 可以使用pipelining使MCA能够多线程传递消息.

  7. 建立集群

  在每个队列管理器上,都应该定义集群发送(CLUSSDR)和集群接收(CLUSRCVR)

  8. 远程管理示例:

  1) crtmqm source.queue.manager; //源队列管理器
  crtmqm target.queue.manager; //目标队列管理器

  2) 源队列管理器:
  定义从源队列管理器向目标队列管理器发送明令的通道
  DEFINE CHANNEL('source.to.target') +
  CHLTYPE(SDR) +
  CONNAME(192.168.1.90) +
  XMITQ('target.queue.manager') +
  TRPTYPE(TCP)
  定义接收反馈信息的接收通道
  DEFINE CHANNEL('target.to.source') +
  CHLTYPE(RCVR) +
  TRPTYPE(TCP)
  定义侦听器
  DEFINE LISTENER('source.queue.manager') +
  TRPTYPE(TCP)
  定义传输队列(名字应该与远程队列管理器一致)
  DEFINE QLOCAL('target.queue.manager') +
  USAGE(XMITQ)

  3) 目标队列管理器
  定义用于反馈给源队列管理器信息的通道
  DEFINE CHANNEL('target.to.source') +
  CHLTYPE(SDR) +
  CONNAME(192.168.1.90) +
  XMITQ('source.queue.manager') +
  TRPTYPE(TCP)
  定义用于接受源队列管理器命令的通道
  DEFINE CHANNEL('source.to.target') +
  CHLTYPE(RCVR) +
  TRPTYPE(TCP)
  定义侦听器
  DEFINE LISTENER('target.queue.manager') +
  TRPTYPE(TCP)
  定义传输队列
  DEFINE QLOCAL('source.queue.manager') +
  USAGE(XMITQ)

  4) 在源端启动侦听器
  START LISTENER('source.queue.manager')
  在目的端启动侦听器
  START LISTENER('target.queue.manager')

  5) 分别启动两端的传送通道
  源: START CHANNEL('source.to.target')
  目的:START CHANNEL('target.to.source')

  6) 每一个队列管理器都有一个命令服务器(command server)用来处理从远程队列管理器传来得命令。
  通常命令服务器自动启动,也可以手动启动: strmqcsv MQM_NAME
  显示命令服务器状态:
  DISPLAY QMSTATUS CMDSERV
  停止命令服务器: endmqcsv MQM_NAME ( -c, 受控方式关闭, -i立即关闭)

  7) 在源端间接运行目标队列管理器的MQSC
  runmqsc -w 30 target.queue.manager
  (注:使用了-w参数,则source.queue.manager应该是其所在结点的默认队列管理器)
  运行结果:
  5724-H72 (C) Copyright IBM Corp. 1994, 2005. ALL RIGHTS RESERVED.
  启动队列管理器 target.queue.manager 的 MQSC。
  
  end
  1 : end
  未读取 MQSC 命令。
  接收到 0 命令响应。
  
  源队列管理器的定义脚本
  DEFINE CHANNEL('source.to.target') +
  CHLTYPE(SDR) +
  CONNAME('192.168.1.90(1414)') +
  XMITQ('target.queue.manager') +
  TRPTYPE(TCP);
  DEFINE CHANNEL('target.to.source') +
  CHLTYPE(RCVR) +
  TRPTYPE(TCP);
  DEFINE LISTENER('source.queue.manager') +
  TRPTYPE(TCP) +
  port(1415);
  DEFINE QLOCAL('target.queue.manager') +
  USAGE(XMITQ);
  目标队列管理器的定义脚本
  DEFINE CHANNEL('target.to.source') +
  CHLTYPE(SDR) +
  CONNAME('192.168.1.90(1415)') +
  XMITQ('source.queue.manager') +
  TRPTYPE(TCP);
  DEFINE CHANNEL('source.to.target') +
  CHLTYPE(RCVR) +
  TRPTYPE(TCP);
  DEFINE LISTENER('target.queue.manager') +
  TRPTYPE(TCP) +
  port(1414);
  DEFINE QLOCAL('source.queue.manager') +
  USAGE(XMITQ);
请使用浏览器的分享功能分享到微信等