WebSphereMQ发送消息和读取消息

来源:互联网 发布:客户信息管理系统 软件 编辑:程序博客网 时间:2024/05/19 08:03

1.webspheremq发送消息

package com.wsmq;import com.ibm.mq.MQC;import com.ibm.mq.MQEnvironment;import com.ibm.mq.MQException;import com.ibm.mq.MQMessage;import com.ibm.mq.MQPutMessageOptions;import com.ibm.mq.MQQueue;import com.ibm.mq.MQQueueManager;/** * 发送消息程序 * @author suyunlong * */public class Send {@SuppressWarnings({ "deprecation", "unchecked" })public static void main(String[] args) {try {// 主机名称String hostName="192.9.201.150";// 端口(缺省 1414)int port=1414;// 通道名称(缺省)String channel="DC.SVRCONN";// 队列管理器名称String qManager="QM_00000000";// 队列名称 (远程队列名)String qName="RQ_88888888";// 建立MQEnvironment 属性以便客户机连接.MQEnvironment.CCSID=1381;MQEnvironment.hostname=hostName;    MQEnvironment.port=port;    MQEnvironment.channel=channel;    MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY,MQC.TRANSPORT_MQSERIES);     // 连接到队列管理器.    MQQueueManager qMgr=new MQQueueManager(qManager);    /**      * 建立打开选项以便打开用于输出的队列,进一步而言,如果队列管理器是      * 停顿的话,我们也已设置了选项去应对不成功情况.      */    int openOptions=MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING;    // 打开队列.    MQQueue queue=qMgr.accessQueue(qName, openOptions, null, null,null);    // 设置放置消息选项我们将使用默认设置.    MQPutMessageOptions pmo=new MQPutMessageOptions();    /**      * 下一步我们建立消息,MQMessage类压缩了包含实际消息数据的数据缓冲区,      * 和描述消息的所有MQMD 参数.      * 欲建立新消息,创建MQMessage类新实例以及使用writxxx(我们将使用writeString 方法.).      * MQQueue 的put()方法也可作为参数MQPutMessageOptions 类的实例.      */    // 创建消息缓冲区.    MQMessage outMsg=new MQMessage();    outMsg.encoding=1381;    outMsg.characterSet=1381;    // 设置MQMD 格式字段.    outMsg.format=MQC.MQFMT_STRING;    // 准备用户数据消息.    String msgString="有志者,事竟成,破釜沉舟,百二秦关终属楚;苦心人,天不负,卧薪尝胆,三千越甲可吞吴。";    // 现在我们在队列上放置消息.    outMsg.writeString(msgString);    // 提交事务处理.    queue.put(outMsg, pmo);    qMgr.commit();    System.out.println(" The message has been Sussesfully put/n/n#########");    // 关闭队列和队列管理器对象.    queue.close();    qMgr.disconnect();} catch(MQException ex) {System.out.println("An MQ Error Occurred: Completion Code is :" +ex.completionCode+" The Reason Code is :"+ex.reasonCode);ex.printStackTrace();} catch(Exception e) {System.out.println(e.getMessage());e.printStackTrace();}}}

2.webspheremq接收消息

package com.wsmq;import com.ibm.mq.MQC;import com.ibm.mq.MQEnvironment;import com.ibm.mq.MQException;import com.ibm.mq.MQGetMessageOptions;import com.ibm.mq.MQMessage;import com.ibm.mq.MQQueue;import com.ibm.mq.MQQueueManager;/** * 消息接收器应用程序 * 调入MQSeries Java API package * 为客户机连接设置环境属性 * 连接到队列管理器 * 为打开MQSeries 队列设置选项 * 为获取消息打开应用程序 * 设置选项,从应用程序队列获取消息 * 创建消息缓冲区 * 从队列获取消息到消息缓冲区 * 从消息缓冲区读取用户数据并在控制台上显示 */public class Receiver {@SuppressWarnings({ "deprecation", "unchecked" })public static void PtpReceiver() {try {// 主机名称String hostName="192.9.201.145";// 端口(缺省 1414)int port=1414;// 通道名称(缺省)String channel="DC.SVRCONN";// 队列管理器名称String qManager="QM_00000000";// 队列名称 (本地对列名)String qName="LQ_00000000";// 建立MQEnvironment 属性以便客户机连接MQEnvironment.hostname=hostName;MQEnvironment.port=port;MQEnvironment.channel=channel;MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY,MQC.TRANSPORT_MQSERIES);MQEnvironment.CCSID=1381; // 连接到队列管理器.MQQueueManager qMgr=new MQQueueManager(qManager);/**      * 建立打开选项以便打开用于输出的队列,      * 进一步而言,如果队列管理器是停顿的话,我们也      * 已设置了选项去应对不成功情况.      */// 打开队列.int openOptions=MQC.MQOO_INPUT_AS_Q_DEF|MQC.MQOO_INQUIRE|MQC.MQOO_FAIL_IF_QUIESCING;// 设置放置消息选项.MQQueue queue=qMgr.accessQueue(qName, openOptions, null, null, null);if(queue.getCurrentDepth()>0){MQGetMessageOptions gmo=new MQGetMessageOptions();// 在同步点控制下获取消息.gmo.options=gmo.options + MQC.MQGMO_SYNCPOINT;// 如果在队列上没有消息则等待.gmo.options=gmo.options + MQC.MQGMO_WAIT;// 如果队列管理器停顿则失败.gmo.options=gmo.options + MQC.MQGMO_FAIL_IF_QUIESCING;// 设置等待的时间限制.gmo.waitInterval=3000;/** * 下一步我们建立消息,MQMessage * 类压缩了包含实际消息数据的数据缓冲区, * 和描述消息的所有MQMD 参数. */// 创建消息缓冲区.MQMessage inMsg=new MQMessage();// 从队列到消息缓冲区获取消息.queue.get(inMsg, gmo);// 从消息读取用户数据.String msgString=inMsg.readStringOfByteLength(inMsg.getMessageLength());// 控制台输出System.out.println("The Message from the Queue is :"+msgString);}// 提交事务处理.qMgr.commit();// 关闭队列和队列管理器对象.queue.close();qMgr.disconnect();} catch(MQException ex) {System.out.println("An MQ Error Occurred: Completion Code is :" +ex.completionCode + " The Reason Code is :" + ex.reasonCode);ex.printStackTrace();} catch(Exception e) {System.out.println(e.getMessage());e.printStackTrace();}}/** * @param args */public static void main(String[] args) {PtpReceiver();}}


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 乐视手机耗电快怎么办 乐视手机费电快怎么办 最爱最恨都是你怎么办 耳朵长疱疹很痛怎么办 刚怀孕就有霉菌怎么办 车牌选错了想换怎么办 足癣传染到身上怎么办 金鱼生病了立鳞怎么办 脸上有闭口痘痘怎么办 泰迪得了皮肤癣怎么办 qq截图发不出去怎么办 半夜2点肚子饿怎么办 半夜两三点饿了怎么办 科目三预约不上怎么办 心脏支架又堵了怎么办 车辆验车过期了怎么办 车辆年审过期2天怎么办 违停单子丢了怎么办 沙发弹簧包坏了怎么办 bt种子被和谐了怎么办 苹果手机id密码忘了怎么办 墙漆颜色太深了怎么办 油漆颜色太深了怎么办 墙面漆颜色太深怎么办 古代打仗牙掉了怎么办 乐视电视没声音怎么办 老公疑心病很重怎么办啊 被安装了尿道锁怎么办 狼青小狗腿罗圈怎么办 备孕期间有霉菌怎么办 虫子进皮肤里了怎么办 生完孩子肚子越来越大怎么办 怀孕8个月肚子小怎么办 孕晚期胎儿不长怎么办 肚子上肉特别多怎么办 奶堵了有硬块怎么办 便秘5天肚子胀怎么办 上火大便拉不出来怎么办 大便拉不出来肚子痛怎么办 戒奶奶涨有硬块怎么办 忌奶的时候涨奶怎么办