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

C# 操作 IBM WebSphere MQ 實戰範例

     編輯:關於C語言

環境準備

安裝 IBM WebSphere MQ 5.3 CSD05 後,會在 bin 目錄產生 amqmdnet.dll。將其加入專案參考,即可使用 IBM.WMQ 命名空間下的類別操作佇列管理器、佇列與訊息。

常見操作程式碼範例

1. 建立本地佇列

var agent = new PCFMessageAgent("QM_janus");
var request = new PCFMessage(CMQCFC.MQCMD_CREATE_Q);
request.AddParameter(MQC.MQCA_Q_NAME, "test_queue");
request.AddParameter(MQC.MQIA_Q_TYPE, MQC.MQQT_LOCAL);
var response = agent.Send(request);

2. 刪除佇列

var agent = new PCFMessageAgent("QM_janus");
var request = new PCFMessage(CMQCFC.MQCMD_DELETE_Q);
request.AddParameter(MQC.MQCA_Q_NAME, "test_queue");
var response = agent.Send(request);

3. 從佇列讀取訊息

var qMgr = new MQQueueManager("QM_janus");
var queue = qMgr.AccessQueue("postcard", MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_FAIL_IF_QUIESCING);
var gmo = new MQGetMessageOptions
{
    Options = MQC.MQGMO_WAIT,
    WaitInterval = 1000,
    MatchOptions = MQC.MQMO_NONE
};
var message = new MQMessage();
queue.Get(message, gmo);
// 讀取 message 内容...

4. 寫入訊息到佇列

var qMgr = new MQQueueManager("QM_janus");
var queue = qMgr.AccessQueue("postcard", MQC.MQOO_OUTPUT);
var message = new MQMessage();
message.WriteString("message body");
queue.Put(message);

5. 列舉所有佇列名稱

var agent = new PCFMessageAgent("QM_janus");
var request = new PCFMessage(CMQCFC.MQCMD_INQUIRE_Q_NAMES);
request.AddParameter(MQC.MQCA_Q_NAME, "*");
var response = agent.Send(request);
var names = response[0].GetStringListParameterValue(CMQCFC.MQCACF_Q_NAMES);

注意事項

  • 作者提到中文版 MQ 在佇列時間戳記與本機時間相差 8 小時,可能涉及時區設定或 MQ 伺服器配置,需進一步排查。
  • 所有 PCF 指令均透過 PCFMessageAgent 發送,屬於可程式化命令格式(PCF)介面,適合管理操作。
  • 實際部署時需處理連線重試、例外捕捉與資源釋放(Dispose)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved