WebSphere MQ 學習筆記 - 遠端管理

CloudSpace發表於2009-11-27
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);

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14789789/viewspace-478248/,如需轉載,請註明出處,否則將追究法律責任。

相關文章