1. WebSphere MQ的服務端的安裝和配置服務器
(1)建立名爲venus.queue.manager的默認隊列管理器。網絡
在DOS窗口命令提示符下,輸入如下命令:tcp
crtmqm -q venus.queue.manager工具
(2)啓動剛纔建立的隊列管理器。測試
在DOS窗口命令提示符下,輸入如下命令:編碼
strmqm venus.queue.manager日誌
(3)啓動MQSC命令。code
在DOS窗口命令提示符下,輸入如下命令:對象
runmqsc venus.queue.manager隊列
(4)新建名爲orange.queue的本地隊列。
輸入如下命令:
define qlocal (orange.queue)
注意:MQSC中任何小寫字母將自動轉換成大寫,除非用單引號將它們括起來。這意味着若是使用名稱Orange.Queue建立了隊列,則記住在MQSC之外其餘命令中都必須使用Orange.Queue。
(5)中止MQSC。
輸入如下命令:
end
如今,咱們已經定義瞭如下對象:
(1)名爲venus.queue.manager的默認隊列管理器。
(2)名爲ORANGE.QUEUE的隊列。
測試對象:要測試隊列管理器和隊列,請使用樣本程序amqsput(將消息放入隊列)和amqsget(從隊列獲取消息),步驟以下:
(1)啓動DOS窗口,進入到C:\Program Files\IBM\WebSphere MQ\bin目錄下。
(2)將消息放入隊列。
輸入如下命令:
amqsput ORANGE.QUEUE
顯示如下消息:
Sample amqsput0 start
Target queue is ORANGE.QUEUE
(3)輸入一些字符數據,而後雙擊"Enter"鍵,則顯示如下消息:
Sample amqsput0 end
如今消息已經被放在隊列中了。
(4)要從隊列中獲取消息,輸入如下命令:
amqsget ORANGE.QUEUE
在屏幕上將顯示您剛纔輸入的字符數據消息。暫停後,例子程序結束。
若是以上步驟都能完成,則完成了本地安裝的驗證。
注意:若是在任何階段中斷整個安裝過程,則應該從頭開始從新運行安裝。
2. WebSphere MQ客戶端的安裝和配置
若是咱們開發的基於MQ的應用與MQ服務器不在同一臺機器上,那麼就必須在MQ應用端安裝MQ客戶端。下面咱們以在Suse Linux 10下安裝WebSphere MQ v6.0 Client爲例介紹MQ客戶端在Linux下的安裝和配置步驟。
(1)解壓縮MQ客戶端安裝包:C84CJML.WebSphere MQ V6.0 Linux x86 Client.tar.gz,命令以下:
tar -xvfz C84CJML.WebSphere MQ V6.0 Linux x86 Client.tar.gz
(2)建立WebSphere MQ 必需的文件系統,命令以下:
mkdir /opt/mqm # for product code
mkdir /var/mqm # for working data
(3)創造MQ用戶和用戶組,命令以下:
groupadd mqm
useradd -d /var/mqm -g mqm -G mqm mqm
passwd mqm # change password to "password"
(4)爲mqm用戶組添加root組
cd /etc
vi group
修改 mqm:!:1000:mqm ? mqm:!:1000:mqm,root
(5)調整系統參數(視須要而定)
修改最大共享內存,命令以下:
cat /proc/sys/kernel/shmmax
echo 268435456 >/proc/sys/kernel/shmmax
修改最大文件句柄,命令以下:
cat /proc/sys/fs/file-max
echo 32768 >/proc/sys/fs/file-max
(6)轉到WebSphere MQ解壓後的目錄中,得到WebSphere MQ受權,命令以下:
./mqlicense.sh -text_only
閱讀全文後,選擇1接受受權。
(7)安裝WebSphere MQ客戶端,命令以下:
rpm -ivh MQSeriesRuntime-6.0.0-0.i386.rpm
rpm -ivh MQSeriesSDK-6.0.0-0.i386.rpm
rpm -ivh MQSeriesJava-6.0.0-0.i386.rpm
rpm -ivh MQSeriesClient-6.0.0-0.i386.rpm
rpm -ivh MQSeriesSamples-6.0.0-0.i386.rpm
(8)安裝校驗
rpm -qa | grep MQSeries
結果以下則代表MQ 客戶端的安裝已成功。
MQSeriesRuntime-6.0.0-0
MQSeriesSDK-6.0.0-0
MQSeriesJava-6.0.0-0
MQSeriesClient-6.0.0-0
MQSeriesSamples-6.0.0-0
3. WebSphere MQ的服務端和客戶端的互聯
本節的WebSphere MQ的服務端和客戶端不在同一臺機器上。
本節以上述1,2兩個步驟安裝好的MQ服務端和MQ客戶端爲例,介紹如何配置MQ的服務端和客戶端使二者可以互聯。
(1)服務端配置
1)點"開始"->"全部程序"->"IBM WebSphere MQ"->"WebSphere MQ 資源管理器",進入WebSphere MQ 資源管理器界面。以下圖所示:
2)建立名爲"QM_JACK"的隊列管理器
<1>選中"隊列管理器"->"新建"->"隊列管理器",以下圖所示:
<2>在隊列管理中輸入"QM_JACK",其餘選項默認不變,點"下一步":
<3>設置隊列日誌(本步驟採用系統默認設置),點"下一步":
<4>啓動隊列管理器,建立服務器鏈接通道,容許在TCP/IP上進行隊列管理器的遠程管理,點擊"下一步":
<5>設置隊列管理器QM_JACK的偵聽端口:8927(用戶能夠根據須要自行更改端口號),點擊"完成"。
<6>系統進入等待界面:
<7>隊列管理器QM_JACK建立成功
3)在QM_JACK下建立名爲"QUEUE_RECV"和"QUEUE_REPLY"的本地隊列(客戶能夠根據本身的需求隨意更改本地隊列的名字和數量,這裏建立這兩個本地隊列只是爲以後的MQ_Tuxedo項目做準備):
設置隊列名後其餘屬性全爲系統默認值,點擊"肯定"。
4)在QM_JACK下建立名爲"CNN_JACK"的服務器通道。
通道名稱設爲CNN_JACK,其餘選項保留爲系統默認設置,點擊"肯定"。
5)在MQ服務器端的計算機用戶中添加MQ客戶端所在計算機的系統用戶。好比個人MQ客戶端被Suse Linux下的root用戶使用,那麼,咱們就須要在MQ的服務端(也就是Windows xp系統中添加名爲"root"的用戶)所在的計算機系統中添加名爲"root"的用戶。具體步驟以下:
<1>點擊"開始"->"控制面板"->"計算機管理"->"系統工具"->"本地用戶和組"->"用戶",點右鍵,選"新用戶",以下圖所示:
<2>建立新用戶:root(注意:這裏的用戶名"root"是MQ客戶端所在系統的用戶名,用戶要根據具體狀況進行修改)
隨意設置一個有效密碼,選中密碼永不過時,點擊"建立"。
<3>將新用戶加入mqm組(注意:這裏的mqm組是咱們安裝完MQ Server後系統自動建立的)
啓動監聽器
Runmqlsr –m QM_JACK"
設置
export MQCHLTAB= /PTAH/AMQCLCHL.TAB
重啓機器。至此,MQ服務端的配置完成。
(2)客戶端配置
按照咱們前面的步驟,MQ客戶端是安裝在Suse Linux 10 上,因此本節以Suse Linux 10下的MQ Client v6爲例說明如何配置MQ客戶端才能連上MQ服務器。
1)設置MQSERVER環境變量,命令以下:
export MQSERVER='CNN_JACK/tcp/9.186.110.133(8927)'
參數說明:
服務器鏈接通道名稱:CNN_JACK
服務器鏈接通道協議類型:tcp
服務器IP地址:9.186.110.133
服務器鏈接通道所在的隊列管理器QM_JACK的偵聽端口:8927
2)測試客戶端與服務端的網絡鏈接
在客戶端使用ping命令檢查客戶端是否能連上服務端機器。
一樣,在服務端使用ping命令檢查服務端是否能連上客戶端機器。
測試完成後,進入下一步。
3)進入/opt/mqm/samp/bin,使用樣本程序amqsputc(用來將消息發送到服務端隊列)和amqsgetc(用來從服務端隊列中讀取消息)來測試客戶端與服務端的MQ鏈接是否暢通,具體步驟以下:
<1>輸入命令:
./amqsputc QUEUE_RECV QM_JACK
則會顯示如下消息:
Sample AMQSPUT0 start
target queue is QUEUE_RECV
<2>輸入一些字符,而後雙擊"Enter"鍵,則顯示以下信息:
Sample AMQSPUT0 end
<3>要從隊列獲取消息,則輸入以下命令:
./amqsgetc QUEUE_RECV QM_JACK
則會在屏幕上打印出剛纔輸入的字符數據消息。暫停後,;例子程序結束。
若是以上步驟都可以完成,則完成了MQ服務端和客戶端的互聯配置。
注意:有時候,MQ客戶端聯服務端時會由於兩端字符集編碼CCSID不同形成鏈接的失敗,典型錯誤是:MQCONN ended with reason code 2059。在隊列管理器的錯誤日誌(位於/var/mqm/errors/AMQERROR**.log)中有以下信息:
-------------------------------------------------------------------------------
08/23/2002 11:51:48
AMQ9541: CCSID supplied for data conversion not supported.
EXPLANATION:
The program ended because,
either the source CCSID '437' or the target CCSID '1381' is not valid,
or is not currently supported.
ACTION:
Correct the CCSID that is not valid, or ensure that the requested CCSID can be supported.
解決方法以下:在服務端用runmqsc qmname命令,輸入dis qmgr查看CCSID屬性值nnnn,在客戶端上配置環境變量: Windows 下:set MQCCSID=nnnn(在服務端看到的CCSID), Linux下:export MQCCSID=nnnn(在服務端看到的CCSID),從新啓動MQ 客戶端機器便可。