首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

WebSphere MQ Java 開發進階:MQ 類庫直連佇列管理器收發訊息完整範例

     編輯:Java 程式設計入門

兩種開發模式選擇

  • JMS API:標準化、可攜、適合不熟 MQI 的開發者
  • MQ 專有類庫:com.ibm.mq.*,功能完整、效能最優、適合深度整合與精細控制

本文示範 MQ 類庫直連模式。

完整發送訊息程式

package transfer;
import com.ibm.mq.*;

public class SendMSG1 {
    private MQQueueManager qMgr;

    public static void main(String[] args) { new SendMSG1(); }

    public SendMSG1() {
        // 連線參數
        MQEnvironment.hostname = "192.168.1.18";
        MQEnvironment.channel  = "CHANNEL1";
        MQEnvironment.CCSID    = 1381; // 字元集

        try {
            // 1. 連線佇列管理器
            qMgr = new MQQueueManager("QM_SERVER");

            // 2. 開啟佇列(輸入/輸出/查詢)
            int openOpts = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT | MQC.MQOO_INQUIRE;
            MQQueue queue = qMgr.accessQueue("INITQ", openOpts, null, null, null);

            // 3. 建構訊息
            MQMessage msg = new MQMessage();
            msg.format = MQC.MQFMT_STRING;
            msg.characterSet = 1381;
            msg.writeString("這是測試!");

            // 4. 發送選項與批次寫入
            MQPutMessageOptions pmo = new MQPutMessageOptions();
            for (int i = 1; i <= 5; i++) {
                msg.expiry = -1; // 永不過期
                queue.put(msg, pmo);
            }

            // 5. 清理資源
            queue.close();
            qMgr.disconnect();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

執行結果驗證

程式運行後,佇列 INITQ 將含 5 筆相同訊息。可透過 MQ Explorer 或接收端程式驗證。

實戰擴充要點

  • 結構化訊息:實際業務訊息含多欄位,建議採 JSON、XML 或自訂分隔符(如 |)編碼,接收端解析還原
  • 接收訊息:同樣建立連線、開啟佇列,呼叫 queue.get(msg, gmo) 取出,MQGetMessageOptions 控制等待/瀏覽模式
  • 異常處理:捕獲 MQException 檢查 reasonCode(如 2033 無訊息、2059 連線失敗),實作重試與告警
  • 資源管理:finally 區塊確保 queue.close()、qMgr.disconnect() 執行,避免句柄洩漏

MQ 核心優勢回顧

  • 跨平台統一 API:AIX、Linux、Windows、z/OS、IBM i 同一套代碼
  • 時間解耦:發送與接收不需同時在線,訊息持久化不丟失
  • 企業級可靠度:叢集傳遞、通道重試、訊息持久化、事務支援
  • 廣泛採用:金融、電信、政府核心系統標準中間件

隨著企業數位化深化,WebSphere MQ 在中國市場的關鍵地位將持續鞏固。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved