IBMMQ8.0 配置及连接(C#)
1、 创建队列管理器,输入名称,其它默认
2、 创建本地队列,输入名称、其它默认
3、 创建服务器连接通道,输入名称、其它默认
4、 右键刚刚创建的通道-属性,在MCA处输入用户(ibm mq8.0安装后默认会创建一个MUSR_MQADMIN的用户,该用户在mqm用户组下),可以用默认的也可以自己创建用户,但用户必须要属于mqm组
用户MUSR_MQADMIN所有组如下
5、 右键1中创建的队列管理器 属性,注意编码、商品,连接mq的时候要用到,认证如果不需要就置空
6、 点击监听菜单检查商品是否与队列管理器商品一至(一般不会变)
7、 开始编码连接MQ,有人说要用amqmdnet.dll、imqs23vn.dll、mqic32.dll三个dll,但我只用了amqmdnet.dll就可以了,不知道是不是mq8.0带的amqmdnet.dll的原因。或者直接nuget 安装IBMMQDotnetClient
static MQQueueManager qMgr; static MQQueue queue; static void Main(string[] args) { MQEnvironment.Hostname = "ip"; MQEnvironment.Channel = "MQ_CHL"; MQEnvironment.Port = 1415; Environment.SetEnvironmentVariable("MQCCSID", "437");//字符编码 qMgr = new MQQueueManager("TEST_QM"); queue = qMgr.AccessQueue("MQ_send", MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_FAIL_IF_QUIESCING); try { ///send //SendMsg("adsf"); ///write MQMessage message = new MQMessage(); queue.Get(message); string s = message.ReadString(message.MessageLength); Console.WriteLine("read:" + s); } catch (Exception ex) { } finally { queue.Close(); } } static void SendMsg(string message) { try { queue = qMgr.AccessQueue("LOCAL_TEST", MQC.MQOO_OUTPUT | MQC.MQOO_INPUT_SHARED | MQC.MQOO_INQUIRE); } catch (MQException e) { Console.WriteLine("打开队列失败:" + e.Message); } var mqMsg = new MQMessage(); mqMsg.WriteString(message); var putOptions = new MQPutMessageOptions(); try { queue.Put(mqMsg, putOptions); } catch (MQException mqe) { Console.WriteLine("发送异常终止:" + mqe.Message); } finally { try { qMgr.Disconnect(); } catch (MQException e) { } } }