快速业务通道

基于WebSphere MQ的收发消息程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-25
B之间是如何进行通信的。可以看到有两个队列,各队列里面存放着要接收或者发送的消息。

程序和队列之间的方形图表示MQI(消息队列接口API)。程序就是使用MQI来和MQ的实时程序--队列管理器进行通信的。

简单地说:MQ的核心部分是一个能够存储消息的服务器及一组能够转发消息的进程,分布在多个系统(异地、异种平台)上的应用程序依靠这种机制来交换要处理的数据2。队列管理器作为一个服务器,把消息以可靠的方式存储,即使机器发生故障重新启动后依然不会丢失,其可靠级别与数据库服务器相等。队列管理器间通过特别的交换机制保证数据不会因为底层网络的故障而丢失,并且能够在多点间接力式地传送。

JMS是J2EE中的一个接口标准,为JAVA程序定义了一种标准的使用消息交换数据的编程方式,但JMS本身并不能实现消息的传送,一个调用JMS的应用程序发出消息调用后,具体的消息传送工作还需要底层的消息中间件来执行传送工作。JMS的作用就是使应用程序开发人员不需要关心底层的传送软件的种类,同一段程序,既可以用MQ传送,也可以用其他消息中间件来传送,如WEBLOGIC内含的具有消息中间件功能的部件。

MQ软件提供一个JAVA软件包,里面有JMS类库,和一套MQ的类库。不熟悉MQI编程方法的程序员可以用JMS,比较熟悉MQI编程方法的程序则可以用MQ类库来编程。下面的小程序是使用Java实现从队列管理器QM_SERVER中的队列INITQ写入或读出消息。

package transfer; import com.ibm.mq.*; public class SendMSG1 {  private MQQueueManager qMgr;//定义一个队列管理器变量  public static void main(String args[])  {   new SendMSG1();  }  public SendMSG1()  {   MQEnvironment.hostname="192.168.1.18";//本地IP   MQEnvironment.channel="CHANNEL1";//用来通信的通道   MQEnvironment.CCSID =1381;   try{    qMgr=new MQQueueManager("QM_SERVER");//队列管理器名称    int openOptions=MQC.MQOO_INPUT_AS_Q_DEF|MQC.MQOO_OUTPUT|MQC.MQOO_INQUIRE;    MQQueue queue=qMgr.accessQueue("INITQ",openOptions,null,null,null);    //建立连接    MQMessage hello=new MQMessage();//要写入队列的消息    try{     hello.format=MQC.MQFMT_STRING ;     hello.characterSet=1381 ;     hello.writeString("这是测试!");    }    catch(java.io.IOException ex)    {}finally{};    MQPutMessageOptions pmo=new MQPutMessageOptions();    for (int i=1;i<=5;i++)//将消息依次写入队列    {     hello.expiry=-1; //设置消息用不过期     queue.put(hello);//将消息放入队列    }    queue.close() ;//关闭队列    qMgr.disconnect() ; //断开连接   }   catch(Exception ex)   {}   finally{};  } }

程序的运行结果如下图3所示:

图3 程序运行结果界面

这个例子仅仅是向队列INITQ写入了5条相同的消息,当然,在实际应用中,消息可能是多种多样的,如果要传送数据库的内容,则可以在写入消息时,用一些特殊的符号来将各字段的数据区分开,那么在消息读出时,也可以根据此特殊的符号来读取数据。依据同样的步骤:和队列管理器建立连接-从队列读取消息---关闭队列---断开连接,可以用Java写出如何从队列中读出消息。

MQ有许多显著的优点,比如借住在不同的平台上使用相同的应用程序接口,它能轻松的实现跨平台通信,从而能够使开发人员避开网络的复杂性;比如它对消息的处理不依赖于时间,在消息创建和发送时,不受时间的限制,增加了处理的灵活性......

总之,MQ的特点以及IBM公司在企

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号