Websphere mq 的基本操作_20頁5


queueSender = queueSession.createSender(q1);
queueSender.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
outMessage = queueSession.createTextMessage();
queueReceiver = queueSession.createReceiver(q1);
connection.start();
}
public void sendMessageOut(String message) throws JMSException {
outMessage.setText(message);
queueSender.send(outMessage);
}
public String receiveMessage() throws Exception{
return ((TextMessage)queueReceiver.receive()).getText();
}
public void sampleClose() throws JMSException {
queueSession.close();
connection.close();
}

public static void main(String[] args){
String rec;
sample sp = new sample();
try {
sp.sampleInit();
sp.sendMessageOut(“Hello World!”);
java.lang.Thread.sleep(4000);
rec=sp.receiveMessage();
System.out.println(“Receive text is : “+rec);
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
一般UnixLinux平台中MQ默認的字符集為819,而Windows平台為1381,所以你必須改變其字符集,使兩邊的字符集相同。一般改被管理的字符集。
5
.如果被管理隊列管理器上的操作用戶與管理隊列管理器上的操作用戶不同,那麼你首先要確認管理隊列管理器上的操作用戶在被管理隊列管理器上存在並且有管理MQ的許可權,再者,你需要修改伺服器連接通道SYSTEM.ADMIN.SVRCONNMCAUSER屬性為管理隊列管理器上的操作用戶。
6
.啟動被管理隊列管理器上的偵聽器。

做完這些工作之後,直接在管理隊列管理器的MQ管理工具中顯示被管理隊列管理器即可。然後你就可以象操作本地隊列管理器一樣,在被管理隊列管理器上定義你需要的MQ對象。

六.通道維護
在配置遠程連接的時候,我們曾經創建過進程定義。那我們為什麼要去創建進程定義呢?這就涉及MQ通道維護的概念。
通道長時間沒有消息觸發就會自動斷開連接,不再保持運行狀態。時間的長短可以由自己設定,默認值為6000秒。消息請求再次來臨的時候,就必須再次啟動通道。有些通道,如伺服器連接通道、接收方通道等是自動觸發啟動的。當消息請求發送到通道後,通道立即啟動,進入運行狀態。但也有一些通道不會自動啟動,最典型的就是發送方通道。當有消息請求需要使用通道進行消息傳遞的時候,發送方通道也不會自動啟動並把消息發送到遠程隊列,而是把消息留在了與其相關聯的傳輸隊列中。
但是,在實際應用中我們又不可能每過一段時間去啟動一次通道,或當有消息來再去啟動通道。那應該怎麼辦?首先我們創建一個進程定義,這個進程定義的目的就是用來啟動發送方通道。然後我們在傳輸隊列的進程名稱屬性欄指定剛才定義的進程定義名稱,再把觸發器控制開關打開。這樣,當有消息進入傳輸隊列後,傳輸隊列的觸發器會啟動觸發執行指定的進程,從而啟動發送方通道,把消息傳輸到遠程隊列中去。


 

以下文章點擊率最高

Loading…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營