.Net环境下操作IBM WebShpere MQ

本人在用C#连接UNIX下的Websphere时,总是会有代号2059的错误。但本人在测试环境下,用的是windows安装环境下的Websphere没有错误,百思不得其解,后看到此文,发现要设置一下环境变量,(由于Queue Manager的CCSID使用819,故增加系统的环境变量),后来成功。

转发此文。

.Net环境下操作IBM WebShpere MQ

http://www.cnblogs.com/mshwu/articles/1068198.html

大约在两年前项目使用了IBM MQ,本人积累了部分在.Net环境下操作IBM MQ的经验。现将经验与大家分享。

IBM WebShpere MQ 简单介绍:

具体的详细信息大家可以在IBM的网站和网上有许多的学习资料。

IBM MQ是实现了消息队列的一个中间件,它可以运行在现在所有流行的平台上。在我们的项目中主要使用的是AS400和UNIX平台上。

在IBM MQ中主要分为以下几个对象:

Queue Manager

队列管理器

主要负责管理队列、通道等,类似与Oracle中的Oracle实例的概念,在一台服务器中可以定义多个Queue Manager。

Queue

队列

是存放Message的对象,是我们主要操作的对象。类似与Oracle中的表的概念。

Message

消息

实际放入Queue中的消息,该消息可以存储字符串、Stream等对象。

Channel

通道

是我们的应用以及两个Queue Manager操作的链接对象

Process

过程

Queue的分类:

Local Queue

本地队列

主要存储消息的对象

Remote Queue

远程队列

和另外一个Queue Manager通讯的队列

Mode Queue

模板队列

建立一个队列模板,通过这个模板可以建立与模板相同属性的动态队列。

Dynamic Queue

动态对了(临时队列)

可以在程序中创建和删除的临时队列

Channel类型:

在我们介绍中只使用了类型为SVRCONN的通道。

.Net连接Queue Manager的关键要素:

.Net的程序需要以下几个关键要素才能连接的一个Queue Manager上。

1、 Address & Port

MQ的服务器地址以及要连接的Queue Manager的监听端口,默认端口1414。

2、 Queue Manager Name

要连接的Queue Manager的名字,区分大小写,默认全部大写。

3、 Channel Name

SVRCONN类型的Channel的名字,需要注意的是该Channel的属性MCAUSER必须设置为一个足够权限的系统用户,否则不能连接成功。

4、 CCSID

CCSID是Queue Manager的编码字符集,需要Queue Manager的CCSID与你的.Net操作系统的CCSID互相兼容或者一致才能成功连接。默认情况下UNIX平台的Queue Manager的CCSID为819,而简体中文版的Windows的CCSID为1381。这两个编码字符集是不能兼容的,所以需要调整。

调整有两种方式:

1) 调整Queue Manager的CCSID,调整成与1381兼容的即可,不一定需要调整成1381

2) 在不能调整Queue Manager时需要配置Windows的环境变量,在Windows的环境变量中增加MQCCSID的环境变量,值需要与Queue Manager的CCSID一致或兼容。

在我们介绍的例子中使用环境如下:

Server:Sun OS 5.9

Address

192.168.128.115

Port

1414(默认端口)

Queue Manager Name

SGS.MGR

Channel Name

SGS.CHANNEL

Queue Manager的属性如***意红色部分):

Display Queue Manager details.

DESCR( ) DEADQ( )

DEFXMITQ( ) CHADEXIT( )

CLWLEXIT( ) CLWLDATA( )

REPOS( ) REPOSNL( )

COMMANDQ(SYSTEM.ADMIN.COMMAND.QUEUE) QMNAME(SGS.MGR)

CRDATE(2007-04-02) CRTIME(16.24.23)

ALTDATE(2007-04-02) ALTTIME(16.24.23)

QMID(SGS.MGR_2007-04-02_16.24.23) TRIGINT(999999999)

MAXHANDS(256) MAXUMSGS(10000)

AUTHOREV(DISABLED) INHIBTEV(DISABLED)

LOCALEV(DISABLED) REMOTEEV(DISABLED)

PERFMEV(DISABLED) STRSTPEV(ENABLED)

CHAD(DISABLED) CHADEV(DISABLED)

CLWLLEN(100) MAXMSGL(4194304)

CCSID(819) MAXPRTY(9)

CMDLEVEL(510) PLATFORM(UNIX)

SYNCPT DISTL(YES)

Channel的属性如***意红色部分):

Display Channel details.

CHANNEL(SGS.CHANNEL) CHLTYPE(SVRCONN)

TRPTYPE(TCP) DESCR( )

SCYEXIT( ) MAXMSGL(4194304)

SCYDATA( ) HBINT(300)

MCAUSER(mqm) ALTDATE(2007-04-02)

ALTTIME(16.30.23)

SENDEXIT( )

RCVEXIT( )

SENDDATA( )

RCVDATA( )

由于Queue Manager的CCSID使用819,故增加系统的环境变量:

.Net环境下操作IBM WebShpere MQ


环境准备:

1、 安装IBM WebSphere MQ Client for Windows。(MQ客户端)

2、 安装WebSphere MQ classes for Microsoft .NET.msi。(.Net插件)

3、 在你的.Net项目中引用 amqmdnet.dll,该dll在.Net插件安装目录中可以找到。

开始编写代码:

连接Queue Manager

.Net环境下操作IBM WebShpere MQ//MQ管理实例 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ private MQQueueManager      mqQMgr=null;// MQQueueManager instance 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQprivate void CreateMng() 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ.Net环境下操作IBM WebShpere MQ .Net环境下操作IBM WebShpere MQ
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ if(this.mqQMgr==null) 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ.Net环境下操作IBM WebShpere MQ .Net环境下操作IBM WebShpere MQ
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ try 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ.Net环境下操作IBM WebShpere MQ .Net环境下操作IBM WebShpere MQ{     this.log("Create Queue Manager");                       
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ //通过MQ管理名创建MQ管理实例 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ //判断是远程连接还是本地连接 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ if(!this.checkBox1.Checked)  //本地连接 (服务器连接) 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ this.mqQMgr = new MQQueueManager(this.tbQMng.Text); 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ else //远程连接(客户端连接) 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ.Net环境下操作IBM WebShpere MQ .Net环境下操作IBM WebShpere MQ
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ string hostname = this.tbConnection.Text; //Server地址 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ string channel = this.tbChannel.Text;   //Channel 名 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ string qManager = this.tbQMng.Text;   //Queue Manager名 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ //初始化环境变量 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ                                          MQEnvironment.Hostname = hostname; 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ                                          MQEnvironment.Channel = channel; 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ                                          MQEnvironment.Port = Int32.Parse(this.textBox1.Text); //端口号 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ this.mqQMgr =new MQQueueManager(qManager); 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ                                   } 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ this.log("Create Queue Manager Sucess"); 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ                            } 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ catch(MQException ex) 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ.Net环境下操作IBM WebShpere MQ .Net环境下操作IBM WebShpere MQ
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ this.mqQMgr=null; 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ this.log("Create Queue Manager Failed!"+ex.Message+"reason:" + Convert.ToString( ex.Reason,16)); 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ                            } 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ                     } 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ              } 
.Net环境下操作IBM WebShpere MQ 
.Net环境下操作IBM WebShpere MQ

向本地队列(SGS.IN.01)放入消息:

  1.Net环境下操作IBM WebShpere MQprivate void button1_Click(object sender, System.EventArgs e) 
  2.Net环境下操作IBM WebShpere MQ 
  3.Net环境下操作IBM WebShpere MQ.Net环境下操作IBM WebShpere MQ .Net环境下操作IBM WebShpere MQ
  4.Net环境下操作IBM WebShpere MQ 
  5.Net环境下操作IBM WebShpere MQ //定义队列 
  6.Net环境下操作IBM WebShpere MQ 
  7.Net环境下操作IBM WebShpere MQ                     MQQueue             mqQueue=null; 
  8.Net环境下操作IBM WebShpere MQ 
  9.Net环境下操作IBM WebShpere MQ 
 10.Net环境下操作IBM WebShpere MQ 
 11.Net环境下操作IBM WebShpere MQ this.CreateMng();  //连接Queue Manager 
 12.Net环境下操作IBM WebShpere MQ 
 13.Net环境下操作IBM WebShpere MQ 
 14.Net环境下操作IBM WebShpere MQ 
 15.Net环境下操作IBM WebShpere MQ try 
 16.Net环境下操作IBM WebShpere MQ 
 17.Net环境下操作IBM WebShpere MQ.Net环境下操作IBM WebShpere MQ .Net环境下操作IBM WebShpere MQ
 18.Net环境下操作IBM WebShpere MQ 
 19.Net环境下操作IBM WebShpere MQ if(this.mqQMgr==null) 
 20.Net环境下操作IBM WebShpere MQ 
 21.Net环境下操作IBM WebShpere MQ return; 
 22.Net环境下操作IBM WebShpere MQ 
 23.Net环境下操作IBM WebShpere MQ 
 24.Net环境下操作IBM WebShpere MQ 
 25.Net环境下操作IBM WebShpere MQ this.log("Create MQQueue"); 
 26.Net环境下操作IBM WebShpere MQ 
 27.Net环境下操作IBM WebShpere MQ 
 28.Net环境下操作IBM WebShpere MQ 
 29.Net环境下操作IBM WebShpere MQ //通过MQ管理创建队列实例 
 30.Net环境下操作IBM WebShpere MQ 
 31.Net环境下操作IBM WebShpere MQ                            mqQueue=this.mqQMgr.AccessQueue(this.tbQName.Text,MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING | MQC.MQOO_INQUIRE);   
32.Net环境下操作IBM WebShpere MQ 
 33.Net环境下操作IBM WebShpere MQ//本例中this.tbQName.Text=”SGS.IN.01” 
 34.Net环境下操作IBM WebShpere MQ 
 35.Net环境下操作IBM WebShpere MQ 
 36.Net环境下操作IBM WebShpere MQ 
 37.Net环境下操作IBM WebShpere MQ 
 38.Net环境下操作IBM WebShpere MQ 
 39.Net环境下操作IBM WebShpere MQ this.log("Create MQQueue Sucess"); 
 40.Net环境下操作IBM WebShpere MQ 
 41.Net环境下操作IBM WebShpere MQ 
 42.Net环境下操作IBM WebShpere MQ 
 43.Net环境下操作IBM WebShpere MQ                     } 
 44.Net环境下操作IBM WebShpere MQ 
 45.Net环境下操作IBM WebShpere MQ catch(MQException ex) 
 46.Net环境下操作IBM WebShpere MQ 
 47.Net环境下操作IBM WebShpere MQ.Net环境下操作IBM WebShpere MQ .Net环境下操作IBM WebShpere MQ
 48.Net环境下操作IBM WebShpere MQ 
 49.Net环境下操作IBM WebShpere MQ 
 50.Net环境下操作IBM WebShpere MQ 
 51.Net环境下操作IBM WebShpere MQ this.log("Create MQQueue Failed!!"+ex.Message+"reason:" + Convert.ToString( ex.Reason,16)); 
 52.Net环境下操作IBM WebShpere MQ 
 53.Net环境下操作IBM WebShpere MQ return; 
 54.Net环境下操作IBM WebShpere MQ 
 55.Net环境下操作IBM WebShpere MQ                     } 
 56.Net环境下操作IBM WebShpere MQ 
 57.Net环境下操作IBM WebShpere MQ 
 58.Net环境下操作IBM WebShpere MQ 
 59.Net环境下操作IBM WebShpere MQ //要放入队列中的消息 
 60.Net环境下操作IBM WebShpere MQ 
 61.Net环境下操作IBM WebShpere MQMQMessage mqMsg =null;  
62.Net环境下操作IBM WebShpere MQ 
 63.Net环境下操作IBM WebShpere MQ try 
 64.Net环境下操作IBM WebShpere MQ 
 65.Net环境下操作IBM WebShpere MQ.Net环境下操作IBM WebShpere MQ .Net环境下操作IBM WebShpere MQ
 66.Net环境下操作IBM WebShpere MQ 
 67.Net环境下操作IBM WebShpere MQ int count=Int32.Parse(this.tbCount.Text); 
 68.Net环境下操作IBM WebShpere MQ 
 69.Net环境下操作IBM WebShpere MQ 
 70.Net环境下操作IBM WebShpere MQ 
 71.Net环境下操作IBM WebShpere MQ //创建消息操作实例 
 72.Net环境下操作IBM WebShpere MQ 
 73.Net环境下操作IBM WebShpere MQ                            MQPutMessageOptions mqPutMsgOpts = new MQPutMessageOptions(); 
 74.Net环境下操作IBM WebShpere MQ 
 75.Net环境下操作IBM WebShpere MQ 
 76.Net环境下操作IBM WebShpere MQ 
 77.Net环境下操作IBM WebShpere MQ 
 78.Net环境下操作IBM WebShpere MQ 
 79.Net环境下操作IBM WebShpere MQ for(int i=0;i<count;i++) 
 80.Net环境下操作IBM WebShpere MQ 
 81.Net环境下操作IBM WebShpere MQ.Net环境下操作IBM WebShpere MQ .Net环境下操作IBM WebShpere MQ
 82.Net环境下操作IBM WebShpere MQ 
 83.Net环境下操作IBM WebShpere MQ this.log("Create Message"); 
 84.Net环境下操作IBM WebShpere MQ 
 85.Net环境下操作IBM WebShpere MQ //创建消息实例 
 86.Net环境下操作IBM WebShpere MQ 
 87.Net环境下操作IBM WebShpere MQ                                   mqMsg = new MQMessage(); 
 88.Net环境下操作IBM WebShpere MQ 
 89.Net环境下操作IBM WebShpere MQ 
 90.Net环境下操作IBM WebShpere MQ 
 91.Net环境下操作IBM WebShpere MQ                                   System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); 
 92.Net环境下操作IBM WebShpere MQ 
 93.Net环境下操作IBM WebShpere MQ                                   doc.Load(this.tbMsg.Text); 
 94.Net环境下操作IBM WebShpere MQ 
 95.Net环境下操作IBM WebShpere MQ string msg=doc.OuterXml;  //以字符串的形式放入一个XML 
 96.Net环境下操作IBM WebShpere MQ 
 97.Net环境下操作IBM WebShpere MQ 
 98.Net环境下操作IBM WebShpere MQ 
 99.Net环境下操作IBM WebShpere MQ                                   mqMsg.WriteString(msg); 
100.Net环境下操作IBM WebShpere MQ 
101.Net环境下操作IBM WebShpere MQ //制定消息格式为String 
102.Net环境下操作IBM WebShpere MQ 
103.Net环境下操作IBM WebShpere MQ                                   mqMsg.Format = MQC.MQFMT_STRING; 
104.Net环境下操作IBM WebShpere MQ 
105.Net环境下操作IBM WebShpere MQ 
106.Net环境下操作IBM WebShpere MQ 
107.Net环境下操作IBM WebShpere MQ this.log("Create Message Sucess. Message:"+msg); 
108.Net环境下操作IBM WebShpere MQ 
109.Net环境下操作IBM WebShpere MQ 
110.Net环境下操作IBM WebShpere MQ 
111.Net环境下操作IBM WebShpere MQ 
112.Net环境下操作IBM WebShpere MQ 
113.Net环境下操作IBM WebShpere MQ this.log("Begin Put Message"); 
114.Net环境下操作IBM WebShpere MQ 
115.Net环境下操作IBM WebShpere MQ //发送消息 
116.Net环境下操作IBM WebShpere MQ 
117.Net环境下操作IBM WebShpere MQ                                   mqQueue.Put(mqMsg,mqPutMsgOpts); 
118.Net环境下操作IBM WebShpere MQ 
119.Net环境下操作IBM WebShpere MQ this.log("Put Message Sucess"); 
120.Net环境下操作IBM WebShpere MQ 
121.Net环境下操作IBM WebShpere MQ 
122.Net环境下操作IBM WebShpere MQ 
123.Net环境下操作IBM WebShpere MQ                            } 
124.Net环境下操作IBM WebShpere MQ 
125.Net环境下操作IBM WebShpere MQ                     } 
126.Net环境下操作IBM WebShpere MQ 
127.Net环境下操作IBM WebShpere MQ catch (Exception ex) 
128.Net环境下操作IBM WebShpere MQ 
129.Net环境下操作IBM WebShpere MQ.Net环境下操作IBM WebShpere MQ .Net环境下操作IBM WebShpere MQ
130.Net环境下操作IBM WebShpere MQ 
131.Net环境下操作IBM WebShpere MQ this.log(ex.Message); 
132.Net环境下操作IBM WebShpere MQ 
133.Net环境下操作IBM WebShpere MQ                     } 
134.Net环境下操作IBM WebShpere MQ 
135.Net环境下操作IBM WebShpere MQ              } 
136.Net环境下操作IBM WebShpere MQ

从本地队列(SGS.IN.01)获取消息

  1.Net环境下操作IBM WebShpere MQ private void button2_Click(object sender, System.EventArgs e) 
  2.Net环境下操作IBM WebShpere MQ 
  3.Net环境下操作IBM WebShpere MQ.Net环境下操作IBM WebShpere MQ .Net环境下操作IBM WebShpere MQ
  4.Net环境下操作IBM WebShpere MQ 
  5.Net环境下操作IBM WebShpere MQ //定义队列 
  6.Net环境下操作IBM WebShpere MQ 
  7.Net环境下操作IBM WebShpere MQ                     MQQueue             mqQueue=null; 
  8.Net环境下操作IBM WebShpere MQ 
  9.Net环境下操作IBM WebShpere MQ 
 10.Net环境下操作IBM WebShpere MQ 
 11.Net环境下操作IBM WebShpere MQ this.CreateMng(); 
 12.Net环境下操作IBM WebShpere MQ 
 13.Net环境下操作IBM WebShpere MQ 
 14.Net环境下操作IBM WebShpere MQ 
 15.Net环境下操作IBM WebShpere MQ try 
 16.Net环境下操作IBM WebShpere MQ 
 17.Net环境下操作IBM WebShpere MQ.Net环境下操作IBM WebShpere MQ .Net环境下操作IBM WebShpere MQ
 18.Net环境下操作IBM WebShpere MQ 
 19.Net环境下操作IBM WebShpere MQ this.log("Create MQQueue"); 
 20.Net环境下操作IBM WebShpere MQ 
 21.Net环境下操作IBM WebShpere MQ //通过MQ管理实例创建队列实例,制定队列操作类型 
 22.Net环境下操作IBM WebShpere MQ 
 23.Net环境下操作IBM WebShpere MQ                            mqQueue= this.mqQMgr.AccessQueue(this.tbQName.Text,MQC.MQOO_INPUT_AS_Q_DEF+MQC.MQOO_FAIL_IF_QUIESCING); 
 24.Net环境下操作IBM WebShpere MQ 
 25.Net环境下操作IBM WebShpere MQ this.log("Create MQQueue Sucess"); 
 26.Net环境下操作IBM WebShpere MQ 
 27.Net环境下操作IBM WebShpere MQ                     } 
 28.Net环境下操作IBM WebShpere MQ 
 29.Net环境下操作IBM WebShpere MQ catch (Exception ex) 
 30.Net环境下操作IBM WebShpere MQ 
 31.Net环境下操作IBM WebShpere MQ.Net环境下操作IBM WebShpere MQ .Net环境下操作IBM WebShpere MQ
 32.Net环境下操作IBM WebShpere MQ 
 33.Net环境下操作IBM WebShpere MQ this.log("Create MQQueue Failed!!"+ex.Message); 
 34.Net环境下操作IBM WebShpere MQ 
 35.Net环境下操作IBM WebShpere MQ return; 
 36.Net环境下操作IBM WebShpere MQ 
 37.Net环境下操作IBM WebShpere MQ                     } 
 38.Net环境下操作IBM WebShpere MQ 
 39.Net环境下操作IBM WebShpere MQ 
 40.Net环境下操作IBM WebShpere MQ 
 41.Net环境下操作IBM WebShpere MQ //定义队列消息 
 42.Net环境下操作IBM WebShpere MQ 
 43.Net环境下操作IBM WebShpere MQ                     MQMessage mqMsg =null; 
 44.Net环境下操作IBM WebShpere MQ 
 45.Net环境下操作IBM WebShpere MQ try 
 46.Net环境下操作IBM WebShpere MQ 
 47.Net环境下操作IBM WebShpere MQ.Net环境下操作IBM WebShpere MQ .Net环境下操作IBM WebShpere MQ
 48.Net环境下操作IBM WebShpere MQ 
 49.Net环境下操作IBM WebShpere MQ int count=Int32.Parse(this.tbCount.Text); 
 50.Net环境下操作IBM WebShpere MQ 
 51.Net环境下操作IBM WebShpere MQ //定义消息操作 
 52.Net环境下操作IBM WebShpere MQ 
 53.Net环境下操作IBM WebShpere MQ                            MQGetMessageOptions mqGetMsgOpts=null; 
 54.Net环境下操作IBM WebShpere MQ 
 55.Net环境下操作IBM WebShpere MQ 
 56.Net环境下操作IBM WebShpere MQ 
 57.Net环境下操作IBM WebShpere MQ //队列消息操作类型实例化 
 58.Net环境下操作IBM WebShpere MQ 
 59.Net环境下操作IBM WebShpere MQ                            mqGetMsgOpts = new MQGetMessageOptions(); 
 60.Net环境下操作IBM WebShpere MQ 
 61.Net环境下操作IBM WebShpere MQ //设置消息操作超时 
 62.Net环境下操作IBM WebShpere MQ 
 63.Net环境下操作IBM WebShpere MQ                            mqGetMsgOpts.WaitInterval=15000; 
 64.Net环境下操作IBM WebShpere MQ 
 65.Net环境下操作IBM WebShpere MQ 
 66.Net环境下操作IBM WebShpere MQ 
 67.Net环境下操作IBM WebShpere MQ bool isContinue = true; 
 68.Net环境下操作IBM WebShpere MQ 
 69.Net环境下操作IBM WebShpere MQ while(isContinue && count>0) 
 70.Net环境下操作IBM WebShpere MQ 
 71.Net环境下操作IBM WebShpere MQ.Net环境下操作IBM WebShpere MQ .Net环境下操作IBM WebShpere MQ
 72.Net环境下操作IBM WebShpere MQ 
 73.Net环境下操作IBM WebShpere MQ //实例化消息 
 74.Net环境下操作IBM WebShpere MQ 
 75.Net环境下操作IBM WebShpere MQ                                   mqMsg = new MQMessage(); 
 76.Net环境下操作IBM WebShpere MQ 
 77.Net环境下操作IBM WebShpere MQ try 
 78.Net环境下操作IBM WebShpere MQ 
 79.Net环境下操作IBM WebShpere MQ.Net环境下操作IBM WebShpere MQ .Net环境下操作IBM WebShpere MQ
 80.Net环境下操作IBM WebShpere MQ 
 81.Net环境下操作IBM WebShpere MQ this.log("Begin get message"); 
 82.Net环境下操作IBM WebShpere MQ 
 83.Net环境下操作IBM WebShpere MQ //从消息队列得到消息 
 84.Net环境下操作IBM WebShpere MQ 
 85.Net环境下操作IBM WebShpere MQ                                          mqQueue.Get(mqMsg,mqGetMsgOpts); 
 86.Net环境下操作IBM WebShpere MQ 
 87.Net环境下操作IBM WebShpere MQ this.log("Begin get message Success"); 
 88.Net环境下操作IBM WebShpere MQ 
 89.Net环境下操作IBM WebShpere MQ 
 90.Net环境下操作IBM WebShpere MQ 
 91.Net环境下操作IBM WebShpere MQ //比较消息格式 
 92.Net环境下操作IBM WebShpere MQ 
 93.Net环境下操作IBM WebShpere MQ if(mqMsg.Format.CompareTo(MQC.MQFMT_STRING) == 0) 
 94.Net环境下操作IBM WebShpere MQ 
 95.Net环境下操作IBM WebShpere MQ.Net环境下操作IBM WebShpere MQ .Net环境下操作IBM WebShpere MQ
 96.Net环境下操作IBM WebShpere MQ 
 97.Net环境下操作IBM WebShpere MQ //MQC.MQFMT_RF_HEADER_2 
 98.Net环境下操作IBM WebShpere MQ 
 99.Net环境下操作IBM WebShpere MQ this.log("Message:"+mqMsg.ReadString(mqMsg.MessageLength)); 
100.Net环境下操作IBM WebShpere MQ 
101.Net环境下操作IBM WebShpere MQ                                          } 
102.Net环境下操作IBM WebShpere MQ 
103.Net环境下操作IBM WebShpere MQ else //if (mqMsg.Format.CompareTo(MQC.MQFMT_RF_HEADER_2)==0) 
104.Net环境下操作IBM WebShpere MQ 
105.Net环境下操作IBM WebShpere MQ.Net环境下操作IBM WebShpere MQ .Net环境下操作IBM WebShpere MQ
106.Net环境下操作IBM WebShpere MQ 
107.Net环境下操作IBM WebShpere MQ this.log("MessageType:"+mqMsg.Format+"\r\n"); 
108.Net环境下操作IBM WebShpere MQ 
109.Net环境下操作IBM WebShpere MQ string msg=mqMsg.ReadString(mqMsg.MessageLength); 
110.Net环境下操作IBM WebShpere MQ 
111.Net环境下操作IBM WebShpere MQ 
112.Net环境下操作IBM WebShpere MQ 
113.Net环境下操作IBM WebShpere MQ 
114.Net环境下操作IBM WebShpere MQ 
115.Net环境下操作IBM WebShpere MQ this.log(msg); 
116.Net环境下操作IBM WebShpere MQ 
117.Net环境下操作IBM WebShpere MQ                                          } 
118.Net环境下操作IBM WebShpere MQ 
119.Net环境下操作IBM WebShpere MQ//                                        else 
120.Net环境下操作IBM WebShpere MQ 
121.Net环境下操作IBM WebShpere MQ//                                        { 
122.Net环境下操作IBM WebShpere MQ 
123.Net环境下操作IBM WebShpere MQ//                                               this.log("MessageType:"+mqMsg.Format+"\r\n"); 
124.Net环境下操作IBM WebShpere MQ 
125.Net环境下操作IBM WebShpere MQ//                                               byte[] buffer = new byte[mqMsg.MessageLength]; 
126.Net环境下操作IBM WebShpere MQ 
127.Net环境下操作IBM WebShpere MQ//                                               buffer=mqMsg.ReadBytes(mqMsg.MessageLength); 
128.Net环境下操作IBM WebShpere MQ 
129.Net环境下操作IBM WebShpere MQ// 
130.Net环境下操作IBM WebShpere MQ 
131.Net环境下操作IBM WebShpere MQ//                                               this.log("byteMessage:"+System.Text.Encoding.UTF8.GetString(buffer)); 
132.Net环境下操作IBM WebShpere MQ 
133.Net环境下操作IBM WebShpere MQ//                                        } 
134.Net环境下操作IBM WebShpere MQ 
135.Net环境下操作IBM WebShpere MQ                                   } 
136.Net环境下操作IBM WebShpere MQ 
137.Net环境下操作IBM WebShpere MQ catch (MQException mqe) 
138.Net环境下操作IBM WebShpere MQ 
139.Net环境下操作IBM WebShpere MQ.Net环境下操作IBM WebShpere MQ .Net环境下操作IBM WebShpere MQ
140.Net环境下操作IBM WebShpere MQ 
141.Net环境下操作IBM WebShpere MQ // 判断异常原因,队列中没有消息 
142.Net环境下操作IBM WebShpere MQ 
143.Net环境下操作IBM WebShpere MQ if ( mqe.Reason == MQC.MQRC_NO_MSG_AVAILABLE )  
144.Net环境下操作IBM WebShpere MQ 
145.Net环境下操作IBM WebShpere MQ.Net环境下操作IBM WebShpere MQ .Net环境下操作IBM WebShpere MQ
146.Net环境下操作IBM WebShpere MQ 
147.Net环境下操作IBM WebShpere MQ this.log("Have no message  "+mqe.Message); 
148.Net环境下操作IBM WebShpere MQ 
149.Net环境下操作IBM WebShpere MQ                                                 isContinue=false; 
150.Net环境下操作IBM WebShpere MQ 
151.Net环境下操作IBM WebShpere MQ                                          } 
152.Net环境下操作IBM WebShpere MQ 
153.Net环境下操作IBM WebShpere MQ 
154.Net环境下操作IBM WebShpere MQ 
155.Net环境下操作IBM WebShpere MQ // treat truncated message as a failure for this sample 
156.Net环境下操作IBM WebShpere MQ 
157.Net环境下操作IBM WebShpere MQ if ( mqe.Reason == MQC.MQRC_TRUNCATED_MSG_FAILED ) 
158.Net环境下操作IBM WebShpere MQ 
159.Net环境下操作IBM WebShpere MQ.Net环境下操作IBM WebShpere MQ .Net环境下操作IBM WebShpere MQ
160.Net环境下操作IBM WebShpere MQ 
161.Net环境下操作IBM WebShpere MQ 
162.Net环境下操作IBM WebShpere MQ 
163.Net环境下操作IBM WebShpere MQ                                                 isContinue=true; 
164.Net环境下操作IBM WebShpere MQ 
165.Net环境下操作IBM WebShpere MQ                                          } 
166.Net环境下操作IBM WebShpere MQ 
167.Net环境下操作IBM WebShpere MQ                                   } 
168.Net环境下操作IBM WebShpere MQ 
169.Net环境下操作IBM WebShpere MQ 
170.Net环境下操作IBM WebShpere MQ 
171.Net环境下操作IBM WebShpere MQ                                   count--; 
172.Net环境下操作IBM WebShpere MQ 
173.Net环境下操作IBM WebShpere MQ                            } 
174.Net环境下操作IBM WebShpere MQ 
175.Net环境下操作IBM WebShpere MQ                     } 
176.Net环境下操作IBM WebShpere MQ 
177.Net环境下操作IBM WebShpere MQ catch (Exception ex) 
178.Net环境下操作IBM WebShpere MQ 
179.Net环境下操作IBM WebShpere MQ.Net环境下操作IBM WebShpere MQ .Net环境下操作IBM WebShpere MQ
180.Net环境下操作IBM WebShpere MQ 
181.Net环境下操作IBM WebShpere MQ this.log(ex.Message); 
182.Net环境下操作IBM WebShpere MQ 
183.Net环境下操作IBM WebShpere MQ                     } 
184.Net环境下操作IBM WebShpere MQ 
185.Net环境下操作IBM WebShpere MQ              } 
186.Net环境下操作IBM WebShpere MQ 
187.Net环境下操作IBM WebShpere MQ 
188.Net环境下操作IBM WebShpere MQ 
189.Net环境下操作IBM WebShpere MQ关闭Queue Manager的连接: 
190.Net环境下操作IBM WebShpere MQ 
191.Net环境下操作IBM WebShpere MQ private void button3_Click(object sender, System.EventArgs e) 
192.Net环境下操作IBM WebShpere MQ 
193.Net环境下操作IBM WebShpere MQ.Net环境下操作IBM WebShpere MQ .Net环境下操作IBM WebShpere MQ
194.Net环境下操作IBM WebShpere MQ 
195.Net环境下操作IBM WebShpere MQ if (this.mqQMgr!=null) 
196.Net环境下操作IBM WebShpere MQ 
197.Net环境下操作IBM WebShpere MQ.Net环境下操作IBM WebShpere MQ .Net环境下操作IBM WebShpere MQ
198.Net环境下操作IBM WebShpere MQ 
199.Net环境下操作IBM WebShpere MQ this.mqQMgr.Disconnect(); 
200.Net环境下操作IBM WebShpere MQ 
201.Net环境下操作IBM WebShpere MQ this.mqQMgr=null; 
202.Net环境下操作IBM WebShpere MQ 
203.Net环境下操作IBM WebShpere MQ                     } 
204.Net环境下操作IBM WebShpere MQ 
205.Net环境下操作IBM WebShpere MQ              } 
206.Net环境下操作IBM WebShpere MQ 
207.Net环境下操作IBM WebShpere MQ

现介绍这些,以后我会对模板对了和动态队列做一些介绍,希望对大家有所帮助。














本文转自cnn23711151CTO博客,原文链接: http://blog.51cto.com/cnn237111/669047,如需转载请自行联系原作者