首页 -> Java -> 正文

基于WebSphere MQ的收发消息程序

来源:网络摘录 日期:2008-09-16 13:35 点击:2

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所示:

基于WebSphere MQ的收发消息程序

图3 程序运行结果界面

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

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





发表评论

昵称:    邮箱:
切换编辑器:         默认编辑器:
3~2000 字节 - 禁用BB代码 - 使用HTML代码 - 认证码

 

[JAVA 起点网]

[欢迎投递文章]       [加入我们]

www.startajava.com

Pageloaded in: 0.00489s Queries: 0 Powered By PHPCF.Com