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端的遠程連接和以上相仿,要建立雙向的傳輸網絡也是同樣的道理。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章