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

                }
            }
        }

 

 

posted @ 2020-06-09 15:04  Fady  阅读(1372)  评论(1编辑  收藏  举报