
using .WMQ;
using IBM.WMQ.PCF;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
//using IBM.WMQAX;
/// <summary>
/// MQHelp 类库
/// henrylee
/// </summary>
public class MQHelp
public MQHelp()
/// <summary>
/// 创建本地队列
/// </summary>
/// <param>队列管理器</param>
/// <param>队列名称</param>
/// <param>是否为传输队列</param>
public void CreateQueue(string qmName, string queueName, bool isTransmissionQueue = false)
PCFMessageAgent agent = new PCFMessageAgent(qmName);
PCFMessage request = new PCFMessage(CMQCFC.MQCMD_CREATE_Q);
request.AddParameter(MQC.MQCA_Q_NAME, queueName);
request.AddParameter(MQC.MQIA_Q_TYPE, MQC.MQQT_LOCAL);

if (isTransmissionQueue) request.AddParameter(MQC.MQIA_USAGE, MQC.MQUS_TRANSMISSION);
PCFMessage[] response = agent.Send(request);
/// <summary>
/// 删除队列
/// </summary>
public void DelQueue(string qmName, string queueName)
PCFMessageAgent agent = new PCFMessageAgent(qmName);
PCFMessage request = new PCFMessage(CMQCFC.MQCMD_DELETE_Q);
request.AddParameter(MQC.MQCA_Q_NAME, queueName);
PCFMessage[] response = agent.Send(request);
/// <summary>
/// 读取消息
/// </summary>
/// <returns></returns>
public string ReadMessage(string qmName, string queueName)
MQQueueManager qMgr = new MQQueueManager(qmName);
MQQueue queue = qMgr.AccessQueue(queueName, MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_FAIL_IF_QUIESCING);
MQGetMessageOptions gmo = new MQGetMessageOptions();
gmo.Options = MQC.MQGMO_WAIT;
gmo.WaitInterval = 1000;
gmo.MatchOptions = MQC.MQMO_NONE;
MQMessage message = new MQMessage();
queue.Get(message);
return message.ReadString(message.MessageLength);

/// <summary>
/// 写入消息
/// </summary>
public void WriteMessage(string qmName, string queueName, string body)
MQQueueManager qMgr = new MQQueueManager(qmName);
MQQueue queue = qMgr.AccessQueue(queueName, MQC.MQOO_OUTPUT);
MQMessage message = new MQMessage();
message.WriteString(body);
message.Format = MQC.MQFMT_STRING;
queue.Put(message);
/// <summary>
/// 获取目前管理器所有队列
/// </summary>
/// <param>队列管理器</param>
/// <param>是否涵盖功能队列</param>
/// <returns></returns>
public List<string> GetALLQueue(string qmName, bool isFindSystemQueue = false)
PCFMessageAgent agent = new PCFMessageAgent(qmName);
PCFMessage request = new PCFMessage(CMQCFC.MQCMD_INQUIRE_Q_NAMES);
request.AddParameter(MQC.MQCA_Q_NAME, "*");
PCFMessage[] response = agent.Send(request);
string[] names = response[].GetStringListParameterValue(CMQCFC.MQCACF_Q_NAMES);
List<string> result = null;
if (!isFindSystemQueue)

result = names.ToList().Where(s => !s.Contains("AMQ.") && !s.Contains("SYSTEM.")).ToList();
result = names.ToList();
return result;
/// <summary>
/// 创建远程队列
/// </summary>
/// <param>队列管理器</param>
/// <param>队列名称</param>
/// <param>远程队列管理器名称</param>
/// <param>远程队列名称</param>
/// <param>传输队列名称</param>
public void CreateRemoteQueue(string qmName, string queueName, string ycqmName, string ycqueueName, string csqueueName)
PCFMessageAgent agent = new PCFMessageAgent(qmName);
PCFMessage request = new PCFMessage(CMQCFC.MQCMD_CREATE_Q);
request.AddParameter(MQC.MQCA_Q_NAME, queueName);
request.AddParameter(MQC.MQIA_Q_TYPE,MQC.MQQT_REMOTE);
request.AddParameter(MQC.MQCA_REMOTE_Q_MGR_NAMEibm websphere mq基础教程, ycqmName);
request.AddParameter(MQC.MQCA_REMOTE_Q_NAME, ycqueueName);
request.AddParameter(MQC.MQCA_XMIT_Q_NAME, csqueueName);
PCFMessage[] response = agent.Send(request);
agent.Disconnect();
/// <summary>
/// 创建发送方通道
/// </summary>

/// <param>队列管理器</param>
/// <param>通道名称</param>
/// <param>传输队列名称</param>
/// <param>IP地址与端口号 例:localhost(1415) </param>
public void CreateChannelBySend(string qmName, string channelName, string transmissionQueueName, string iPPort)
PCFMessageAgent agent = new PCFMessageAgent(qmName);
PCFMessage request = new PCFMessage(CMQCFC.MQCMD_CREATE_CHANNEL);
request.AddParameter(CMQCFC.MQCACH_CHANNEL_NAME, channelName);
request.AddParameter(CMQCFC.MQIACH_CHANNEL_TYPE,MQC.MQCHT_SENDER);
request.AddParameter(CMQCFC.MQCACH_CONNECTION_NAMEibm websphere mq基础教程, iPPort);
request.AddParameter(CMQCFC.MQCACH_XMIT_Q_NAME, transmissionQueueName);
PCFMessage[] response = agent.Send(request);
agent.Disconnect();
/// <summary>
/// 创建接受方通道
/// </summary>
/// <param>队列管理器</param>
/// <param>管道名称</param>
public void CreateChannelByReceive(string qmName, string channelName)
PCFMessageAgent agent = new PCFMessageAgent(qmName);
PCFMessage request = new PCFMessage(CMQCFC.MQCMD_CREATE_CHANNEL);
request.AddParameter(CMQCFC.MQCACH_CHANNEL_NAME, channelName);
request.AddParameter(CMQCFC.MQIACH_CHANNEL_TYPE, MQC.MQCHT_RECEIVER);
PCFMessage[] response = agent.Send(request);
agent.Disconnect();
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-119351-1.html
马总
弃我就宰你
如果真的有蛆