熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

WebSphere MQ傳輸環境搭建和測試

2022-06-13   來源: JSP教程 
    在WebSphere MQ程序設計初探一文中討論了從MQ隊列管理器的本地隊列中放置和讀出消息的程序本文主要通過兩台機器搭建MQ消息傳輸的環境並編寫測試程序進行測試
第一准備工作
准備台Win環境(XP也可)通過以太網連通
機器A代碼為IP地址為
機器B代碼為IP地址為
安裝MQ 

第二創建MQ對象
A機器上
打開WebSphere MQ資源管理器新建隊列管理器名稱為QM_其余采用默認設置;
在QM_隊列管理器中創建本地隊列名稱為LQ_;
創建傳輸隊列名稱為XQ_(新建時選擇本地隊列用法設置為傳輸);
創建遠程隊列定義名稱為RQ_指定遠程隊列名稱為LQ_遠程隊列管理器名稱為QM_傳輸隊列名稱為XQ_;
創建發送方通道名稱為傳輸協議為TCP/IP連接名稱為()傳輸隊列為XQ_;
創建接受方通道名稱為采用默認設置
創建服務器連接通道名稱為DCSVRCONN采用默認設置(該通道主要給後面的測試程序使用)
B機器和A機器上的操作一樣只是命名不同如下
打開WebSphere MQ資源管理器新建隊列管理器名稱為QM_其余采用默認設置;
在QM_隊列管理器中創建本地隊列名稱為LQ_;
創建傳輸隊列名稱為XQ_(新建時選擇本地隊列用法設置為傳輸);
創建遠程隊列定義名稱為RQ_指定遠程隊列名稱為LQ_遠程隊列管理器名稱為QM_傳輸隊列名稱為XQ_;
創建發送方通道名稱為傳輸協議為TCP/IP連接名稱為()傳輸隊列為XQ_;
創建接受方通道名稱為采用默認設置
創建服務器連接通道名稱為DCSVRCONN采用默認設置

第三消息測試
在AB機器上分別啟動其發送方通道正常情況通道狀態應為正在運行
通過如下測試程序進行測試文件名為MQTestjava在機器A上進行運行(如在B上運行請讀者自行適當修改)

import javaioIOException;
import javautilHashtable;

import comibmmqMQException;
import comibmmqMQMessage;
import comibmmqMQPutMessageOptions;
import comibmmqMQQueue;
import comibmmqMQQueueManager;

public class MQSample{
    //定義隊列管理器和隊列的名稱 
    private static String qmName = QM_
    private static String qName = RQ_;
    
    private static MQQueueManager qMgr; 
    private static Hashtable properties = new Hashtable();

    public static void main(String args[]) {
        try {
            propertiesput(hostname );
            propertiesput(port new Integer());
            propertiesput(channel DCSVRCONN);
            propertiesput(CCSID new Integer());
            propertiesput(transportMQSeries);
            
            // Create a connection to the queue manager 
            qMgr = new MQQueueManager(qmNameproperties); 
            // Set up the options on the queue we wish to open 
            int openOptions = ;
            // Now specify the queue that we wish to open 
            // and the open options 
            MQQueue remoteQ = qMgraccessQueue(qName openOptions); 
            
            // Define a simple WebSphere MQ message and write some text in UTF format 
            MQMessage putMessage = new MQMessage(); 
            putMessagewriteUTF(Test); 
            // specify the message options 
            MQPutMessageOptions pmo = new MQPutMessageOptions(); 
            // accept the defaults same as MQPMO_DEFAULT
            // put the message on the queue 
            remoteQput(putMessagepmo); 
            Systemoutprintln(Message has been input into the Remote Queue);

            // Close the queue 
            remoteQclose(); 
            // Disconnect from the queue manager 
            qMgrdisconnect(); 
        }catch (MQException ex) { 
            // If an error has occurred in the above try to identify what went wrong 
            // Was it a WebSphere MQ error? 
            Systemoutprintln(A WebSphere MQ error occurred : Completion code  + pletionCode + 
           Reason code  + exreasonCode); 
        }catch (IOException ex) { 
            // Was it a Java buffer space error? 
            Systemoutprintln(An error occurred whilst writing to the message buffer:  + ex); 
        }catch(Exception ex){
            exprintStackTrace();
        }
    }
}

運行程序後請在B機器的本地隊列LQ_中檢查是否有消息存在如果有說明測試成功
讀者可以自行編寫把消息從對方的本地隊列讀取出來的程序
如果讀者對以上的內容有任何疑問可以和我聯系 
版權所有嚴禁轉載

參考資料
《WebSphere MQ System Administration Guide》Third edition (May )SC
《WebSphere MQ Using Java》Third edition (January )SC
附件MQTestjava(K) 
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19760.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.