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

WebSphere MQ 訊息收發程式設計指南:核心概念、通訊機制與 Java 實作範例

     編輯:Java 程式設計入門

核心概念速覽

  • 訊息:資訊基本單位,含應用資料與訊息描述符(ID、類型、優先級、過期時間等)。最大 100MB(v5+),預設 4MB。
  • 佇列:安全、有序的訊息儲存區。應用程式透過讀寫佇列交換資料,無需直接連線,支援異步(發送後不等待回覆)與同步模式。
  • 佇列管理器:MQ 運行時核心,管理佇列、通道、訊息路由、持久化與可靠傳遞。可靠度等同資料庫伺服器,支援叢集與跨平台傳遞。

通訊架構與流程

應用程式透過 MQI(Message Queue Interface)與佇列管理器互動。發送端寫入目標佇列,接收端從關聯佇列讀取。佇列可位於發送端、接收端或中間節點,視通道連線狀況而定。MQ 甚至可在訊息到達時自動啟動目標程式(觸發機制)。

關鍵優勢:發送端無需關心接收端是否在線、忙碌或機器故障;訊息滯留佇列待處理,保證不遺失。

JMS 與 MQ 的關係

JMS 是 J2EE 定義的標準訊息 API,屬於抽象介面。應用呼叫 JMS,底層由 MQ 等中間件實際傳送。JMS 讓應用碼與具體中間件解耦,同一程式可切換 MQ、WebLogic JMS 等提供者。

Java 寫入訊息完整範例

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 {
            qMgr = new MQQueueManager("QM_SERVER");
            int openOpts = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT | MQC.MQOO_INQUIRE;
            MQQueue queue = qMgr.accessQueue("INITQ", openOpts, null, null, null);

            MQMessage msg = new MQMessage();
            msg.format = MQC.MQFMT_STRING;
            msg.characterSet = 1381;
            msg.writeString("這是測試!");

            MQPutMessageOptions pmo = new MQPutMessageOptions();
            for (int i = 1; i <= 5; i++) {
                msg.expiry = -1; // 永不過期
                queue.put(msg, pmo);
            }
            queue.close();
            qMgr.disconnect();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

實戰建議

  • 實際訊息常包含多欄位,約定特殊分隔符(如 |、JSON)區分字段,接收端解析還原
  • 讀取訊息遵循相同連線步驟,改呼叫 queue.get() 取出
  • MQ 跨平台、非時間依賴、高可靠特性,使其成為金融、電信、政府企業級整合首選
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved