IBM WebSphere MQ的C#工具类以及代码

电脑杂谈  发布时间:2019-08-15 17:02:18  来源:网络整理

websphere mq 基础教程_ibm websphere mq基础教程_ibm websphere mq 基础教程

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);

websphere mq 基础教程_ibm websphere mq基础教程_ibm websphere mq 基础教程

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);

ibm websphere mq 基础教程_websphere mq 基础教程_ibm websphere mq基础教程

/// <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)

websphere mq 基础教程_ibm websphere mq 基础教程_ibm websphere mq基础教程

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>

ibm websphere mq基础教程_ibm websphere mq 基础教程_websphere mq 基础教程

/// <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

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...