配置和使用WebSphere MQjava
A.設置環境變量
在shell中執行MQ的控制命令:
ctrmqm
strmqm
若識別這些命令,則說明PATH環境變量已配置好了;
若提示找不到命令,則說明需配置Linux環境變量,指定MQ的bin路徑到PATH:
可選擇修改系統的環境變量(/etc/profile文件,對所有用戶可見),
或只修改用戶mqadmin的環境變量(/var/mqm/.bash_profile,只對當前用戶可見。
下面列出前者的修改方式:
vi /etc/profile
切換到插入模式,在文件尾部加入如下內容:
export PATH=${PATH}:/opt/mqm/bin:/opt/mqm/samp/bin
exportshell
CLASSPATH=${CLASSPATH}:/opt/mqm/java/lib/com.ibm.mq.jar:/opt/mqm/samp/wmqjava/samples
其中/opt/mqm爲MQ的安裝路徑,若安裝路徑不是這個,替換之。
保存退出 :wq
重啓系統後,shell中就可執行MQ控制命令了。
B.MQ服務器單機測試 bash
任務:MQ服務器本地發送和收取消息
1.建立名爲 QM_APPLE 的缺省隊列管理器
shell命令:
crtmqm -q QM_APPLE服務器
2.啓動此隊列管理器
shell命令:
strmqm QM_APPLEjsp
3.使用 MQSC(MQ服務器控制檯)建立本地隊列
shell命令:
runmqsc QM_APPLE //啓動MQSC
define qlocal (Q1) //定義本地隊列
end //退出控制檯tcp
4.將測試消息放入本地隊列
shell命令:
amqsput Q1 QM_APPLE //調用MQ內置樣本程序向Q1隊列放入消息
此時屏幕顯示:
Sample AMQSPUT0 start
target queue is Q1
輸入消息文本(一行或多行),而後按 Enter 鍵兩次。此時屏幕顯示:
Sample AMQSPUT0 end
現已建立了測試消息並將其放入本地隊列。測試
5.從本地隊列獲取消息
shell命令:
amqsget Q1 QM_APPLE //調用MQ內置樣本程序向Q1隊列放入消息
此時會屏幕顯示:
Sample AMQSGET0 start
message <***> //×××爲消息內容
現已成功獲取消息。spa
C.兩臺MQ服務器消息通訊測試
前提:假若有兩臺MQ服務器:A和B,服務器B的IP爲192.168.222.132
A已創建隊列管理器QM_APPLE和本地隊列LQA;
B已創建並啓動隊列管理器QM_ORANGE和本地隊列LQB;
任務:實現服務器A向服務器B發送一條消息,服務器B接收並讀取該條消息。
1.服務器A定義傳輸隊列和遠程隊列
shell命令:
runmqsc QM_APPLE //啓動MQSC
define qlocal (TQA) usage (xmitq)
define qremote (RQA) rname (LQB) rqmname(QM_ORANGE) xmitq (TQA)
//定義遠程隊列:RQA-遠程隊列名稱,QM_ORANGE-遠程隊列管理器,LQB-遠程隊列管理器的本地隊列,TQA-本地傳輸隊列
end
2.服務器B定義接收方消息通道和偵聽器
shell命令:
runmqsc QM_ORANGE //啓動MQSC
define channel (QM_ORANGE.QM_APPLE) chltype (RCVR) trptype (TCP) //定義接收方消息通道
define listener (LSR.QM_ORANGE)TRPTYPE(TCP) PORT(1414) //定義偵聽器,需保證TCP端口1414沒被其餘程序使用,不然使用其餘端口
start listener (LSR.QM_ORANGE) //啓動偵聽器
end
3.服務器A建立發送方消息通道,並啓動
shell命令:
runmqsc QM_APPLE
//啓動MQSC
define channel(QM_APPLE.QM_ORANGE) chltype(sdr) conname('192.168.222.132(1414)') xmitq(TQA) trptype(tcp)
//定義發送方消息通道
start channel (QM_APPLE.QM_ORANGE)
//啓動發送方消息通道
end
4.服務器A放入測試消息
shell命令:
amqsput RQA QM_APPLE //調用MQ內置樣本程序向遠程隊列RQA放入消息
此時屏幕顯示:
Sample AMQSPUT0 start
target queue is RQA
輸入消息文本(一行或多行),而後按 Enter 鍵兩次。
此時屏幕顯示:
Sample AMQSPUT0 end
已將測試消息放入遠程隊列。
5.服務器B接收並獲取測試消息
shell命令:
amqsget LQB QM_ORANGE //調用MQ內置樣本程序向Q1隊列放入消息
此時會屏幕顯示:
Sample AMQSGET0 start
message <***> //×××爲消息內容
已成功獲取測試消息。
D.客戶機-服務器通訊測試orm
任務:客戶機向服務器發送和收取消息。 htm
1.服務器設置
(假設服務器已創建隊列管理器QM_APPLE)
shell命令:
runmqsc QM_APPLE //啓動MQSC
define qlocal (LQA) //定義本地隊列
define channel(CLIENT.QM_APPLE) chltype(SVRCONN) trptype(TCP) mcauser('mqadmin')
//定義服務器鏈接通道,mqadmin爲客戶機映射到的服務器本地MQ用戶
define listener (LSR.QM_APPLE)TRPTYPE(TCP) PORT(1414)
//定義偵聽器,需保證TCP端口1414沒被其餘程序使用,不然使用其餘端口
start listener (LSR.QM_APPLE) //啓動偵聽器
end
服務端設置完畢。
2.客戶機設置
(假設客戶機爲Linux系統,已安裝MQ客戶端)
shell命令:
vi $HOME/.bash_profile
設置環境變量PATH和MQSERVER,將下列文本添加至文件末尾:
export PATH=${PATH}:/opt/mqm/bin:/opt/mqm/samp/bin
export MQSERVER=CLIENT.QM_ORANGE/TCP/'hostname'; export MQSERVER
註銷並從新登陸以使更改生效。
3.客戶機放入消息到服務器隊列
shell命令:
amqsputc LQA QM_APPLE
//調用MQ內置樣本程序,鏈接遠程MQ服務器,並向服務器隊列放入消息
具體過程省略。
4.客戶機從服務器隊列獲取消息
shell命令:
amqsgetc LQA QM_APPLE
//調用MQ內置樣本程序,鏈接遠程MQ服務器,並從服務器隊列獲取消息
具體過程省略。
至此,完成WebSphere MQ的配置和基本功能使用。