IBM MQSeries使用指南
(來源:sp.sampleClose();
}catch(Exception e) {
e.printStackTrace();
}
}
}
五.遠程管理
MQ在WINDOWS平臺下具有圖形化管理界面,但在UNIX平臺下卻只能通過命令行來進行操作。這樣就給使用者帶來很大的不便。我們都希望能通過圖形界面來進行管理配置。為了實現我們的想法,我們就必須建立遠程管理。
實現遠程管理有以下幾個步驟:
1.被管理隊列管理器上的命令隊列SYSTEM.ADMIN.COMMAND.QUEUE存在并可用。對于MQ 2版本應執行 amqscoma.tst 腳本來創建。
2.使用strmqcsv命令來啟動被管理隊列管理器上的命令服務器。
3.確定被管理隊列管理器上的服務器連接通道SYSTEM.ADMIN.SVRCONN是否存在,如果不存在則創建它。
4.一般Unix、Linux平臺中MQ默認的字符集為819,而Windows平臺為1381,所以你必須改變其字符集,使兩邊的字符集相同。一般改被管理的字符集。
5.如果被管理隊列管理器上的操作用戶與管理隊列管理器上的操作用戶不同,那么你首先要確認管理隊列管理器上的操作用戶在被管理隊列管理器上存在并且有管理MQ的權限,再者,你需要修改服務器連接通道SYSTEM.ADMIN.SVRCONN的MCAUSER屬性為管理隊列管理器上的操作用戶。
6.啟動被管理隊列管理器上的偵聽器。
做完這些工作之后,直接在管理隊列管理器的MQ管理工具中顯示被管理隊列管理器即可。然后你就可以象操作本地隊列管理器一樣,在被管理隊列管理器上定義你需要的MQ對象。
六.通道維護
在配置遠程連接的時候,我們曾經創建過進程定義。那我們為什么要去創建進程定義呢?這就涉及MQ通道維護的概念。
通道長時間沒有消息觸發就會自動斷開連接,不再保持運行狀態。時間的長短可以由自己設定,默認值為6000秒。消息請求再次來臨的時候,就必須再次啟動通道。有些通道,如服務器連接通道、接收方通道等是自動觸發啟動的。當消息請求發送到通道后,通道立即啟動,進入運行狀態。但也有一些通道不會自動啟動,最典型的就是發送方通道。當有消息請求需要使用通道進行消息傳遞的時候,發送方通道也不會自動啟動并把消息發送到遠程隊列,而是把消息留在了與其相關聯的傳輸隊列中。
但是,在實際應用中我們又不可能每過一段時間去啟動一次通道,或當有消息來再去啟動通道。那應該怎么辦?首先我們創建一個進程定義,這個進程定義的目的就是用來啟動發送方通道。然后我們在傳輸隊列的進程名稱屬性欄指定剛才定義的進程定義名稱,再把觸發器控制開關打開。這樣,當有消息進入傳輸隊列后,傳輸隊列的觸發器會啟動觸發執行指定的進程,從而啟動發送方通道,把消息傳輸到遠程隊列中去。
七.總結
也許你會說你已經理解了MQ,包括基本概念、配置、管理以及程序的編寫,那么恭喜你。我也希望如此。不過MQ也許并非如此簡單,因本人水平有限,也只能到此為止,希望大家再接再厲。順便說一句,如果有什么好想法,千萬別忘了告訴我一聲。