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 或接收端程式驗證。
|)編碼,接收端解析還原queue.get(msg, gmo) 取出,MQGetMessageOptions 控制等待/瀏覽模式MQException 檢查 reasonCode(如 2033 無訊息、2059 連線失敗),實作重試與告警finally 區塊確保 queue.close()、qMgr.disconnect() 執行,避免句柄洩漏隨著企業數位化深化,WebSphere MQ 在中國市場的關鍵地位將持續鞏固。