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的原因
staticMQQueueManager qMgr;staticMQQueue 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 = newMQMessage();
queue.Get(message);string s =message.ReadString(message.MessageLength);
Console.WriteLine("read:" +s);
}catch(Exception ex)
{
}finally{
queue.Close();
}
}static void SendMsg(stringmessage)
{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 = newMQMessage();
mqMsg.WriteString(message);var putOptions = newMQPutMessageOptions();try{
queue.Put(mqMsg, putOptions);
}catch(MQException mqe)
{
Console.WriteLine("发送异常终止:" +mqe.Message);
}finally{try{
qMgr.Disconnect();
}catch(MQException e)
{
}
}
}