IBM MQ 使用一例
MQ Server可以进行消息的排队、缓存等。
具体MQ Server的配置我就不介绍了,可以去IBM的网站下载一个试用版试试看。
下面是一个收发的简单的小例子,具体意思看里面的注释。
import com.ibm.mq.MQEnvironment;
import com.ibm.mq.MQException;
import com.ibm.mq.MQGetMessageOptions;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQPutMessageOptions;
import com.ibm.mq.MQQueue;
import com.ibm.mq.MQQueueManager;
/**//*
* 可以在MQ的资源管理器的某一个队列上放入测试消息、浏览消息等
* 可以放入多条消息,按先进先出的方式取得
*/
public class MQTest {
private String qManager;// QueueManager名
private MQQueueManager qMgr;
private MQQueue qQueue;
String HOST_NAME;
int PORT=0;
String Q_NAME;
String CHANNEL;
int CCSID;
String Msg;
public void init(){
try {
HOST_NAME="192.168.88.169";
PORT=1414;
qManager="QM_yfgaochun";
Q_NAME="QM_NAME1";
CHANNEL="S_yfgaochun";
CCSID=1381; //表示是简体中文, CCSID的值在AIX上一般设为1383,如果要支持GBK则设为1386,在WIN上设为1381。
Msg = "MQ测试发送Gao";
//System.out.println(Msg);
MQEnvironment.hostname = HOST_NAME; //安裝MQ所在的ip address
MQEnvironment.port=PORT; // TCP/IP port
MQEnvironment.channel=CHANNEL;
MQEnvironment.CCSID=CCSID;
qMgr = new MQQueueManager(qManager);
/**//* try {
XADataSource ds = null;
Connection con = (Connection)qMgr.getJDBCConnection(ds);
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}*/
//int qOptioin = MQC.MQOO_INQUIRE | MQC.MQOO_OUTPUT; 发送时使用
//int qOptioin = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT; 接收时使用
int qOptioin = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_INQUIRE | MQC.MQOO_OUTPUT;
qQueue = qMgr.accessQueue(Q_NAME, qOptioin);
} catch (MQException e) {
System.out
.println("A WebSphere MQ error occurred : Completion code "
+ e.completionCode + " Reason Code is "
+ e.reasonCode);
}
}
void finalizer() {
try {
qQueue.close();
qMgr.disconnect();
} catch (MQException e) {
System.out
.println("A WebSphere MQ error occurred : Completion code "
+ e.completionCode + " Reason Code is "
+ e.reasonCode);
}
}
/**//*
* 取过一次,下次就没有了
*/
public void GetMsg() {
try {
MQMessage retrievedMessage = new MQMessage();
MQGetMessageOptions gmo = new MQGetMessageOptions();
gmo.options += MQC.MQPMO_SYNCPOINT;
qQueue.get(retrievedMessage, gmo);
int length = retrievedMessage.getDataLength();
byte[] msg = new byte[length];
retrievedMessage.readFully(msg);
String sMsg = new String(msg);
System.out.println(sMsg);
}catch (RuntimeException e){
e.printStackTrace();
}catch (MQException e) {
if (e.reasonCode != 2033) //没有消息
{
e.printStackTrace();
System.out
.println("A WebSphere MQ error occurred : Completion code "
+ e.completionCode
+ " Reason Code is "
+ e.reasonCode);
}
} catch (java.io.IOException e) {
System.out
.println("An error occurred whilst to the message buffer "
+ e);
}
}
public void SendMsg(byte[] qByte) {
try {
MQMessage qMsg = new MQMessage();
qMsg.write(qByte);
MQPutMessageOptions pmo = new MQPutMessageOptions();
qQueue.put(qMsg, pmo);
System.out.println("The message is sent!");
System.out.println("\tThe message is " + new String(qByte,"GBK"));
} catch (MQException e) {
System.out
.println("A WebSphere MQ error occurred : Completion code "
+ e.completionCode + " Reason Code is "
+ e.reasonCode);
} catch (java.io.IOException e) {
System.out
.println("An error occurred whilst to the message buffer "
+ e);
}
}
/** *//**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MQTest mqst = new MQTest();
mqst.init();
try {
mqst.SendMsg(mqst.Msg.getBytes("GBK"));
//mqst.GetMsg();
} catch (Exception e) {
e.printStackTrace();
}
mqst.finalizer();
}
}
IBM MQ 使用一例相关推荐
- java连接ibm mq
http://blog.csdn.net/liaomin416100569/article/details/7254191 首先 打开 IBM websphere MQ 管理器 添加一个队列管理器 名 ...
- IBM MQ 7.1在windows和linux上安装
一.测试环境说明 本次测试linux端和windows端主要参数配置如下: Linux: 操作系统版本:SUSE Linux Enterprise Server 10 SP4 32bit MQ版 ...
- java 日期年度 35变2035_连接IBM MQ原因码报2035的错误解决办法
我们的系统使用了ibm mq,用户用来向国家局上报文件和接收文件,前几天用户说上报一直不成功.由于 开发这块程序的人已经辞职了,我觉定在我的机器部署一套,研究一下.我的思路: 在我的机器上安装mq,建 ...
- IBM MQ简单开发和应用
IBM MQ经常被一些政府公共部门,银行等企业用来做数据传输和报文收发,在互联网应用的开发中较少见到,属于一种比较老旧的应用.这里以IBM Websphere MQ 7.5版本为例介绍一下MQ的的简单 ...
- IBM MQ 搭建测试环境并测试消息的发送和接收
一,说明 MQ基于Linux环境的安装比较简单,读者可以去网上自行搜索. 本文主要在于MQ队列管理器相关的部分. OS Version: Red Hat Enterprise Linux Server ...
- IBM MQ 9.2.4 笔记大全
IBM MQ note author: joey_lee 官方文档 将测试消息放入本地队列 https://www.ibm.com/docs/en/ibm-mq/9.2?topic=queue-put ...
- IBM MQ 基本操作
IBM MQSeries使用指南 随着计算机网络和分布式应用的不断发展,远程消息传递越来越成为应用系统中不可缺少的组成部分.商业消息中间件的出现保证了消息传输的可靠性,高效率和安全性,同时也减少了系统 ...
- php ibm mq,php linux IBM MQ安装以及php对接
php linux IBM MQ安装以及php对接 输入信息test,双击回车就结束了 获取队列内容: $mqcno=array("Version"=>MQSERIES_MQ ...
- java ibm 2035,C# java 连接 IBM MQ时出现 2035 或 2013认证错误的解决方法
当C# 或 java 连接 IBM MQ 是出现 2035 或 2013的错误时 java的错误提示: com.ibm.msg.client.jms.DetailedJMSSecurityExcept ...
最新文章
- C 回顾 volatile 和 register 修饰符
- jquery生成二维码
- 手把手教你入门和实践特征工程 的全方位万字笔记,附代码下载
- FastJsonUtils 需要fastjson
- Projection of Tuple DataSet具体用法
- .Net Core HttpClient处理响应压缩
- 前端学习(1768):前端调试值之内存监控的原理和方法三
- 关于在smarty中实现省市区三级联动
- win7电脑浏览器证书过期的解决方法
- 能不能用python开发qq_用Python写一个模拟qq聊天小程序的代码实例
- ZeroForums论坛正式开始测试运行
- 231 · 自动补全
- java 工具类库 Apache Commons
- oracle去掉重复记录语句
- Unity3D开发学习
- jQuery - 滚动条插件 NiceScroll 使用详解(滚动条美化)
- QPSK调制解调原理(IQ调制)
- mysql数据库保存微信emoji表情
- ffmpeg dst时间_如何确保您的小工具自动更改DST的时间
- 驾驶证上的照片有具体要求吗?这几点需要注意
热门文章
- timer定时器_拾遗Timer定时器
- 办公室计算机网络使用情况,企事业单位办公网络的现状及解决方案.doc
- 将String类型的Json字符串转化对象或对象数组
- Requires: libstdc++.so.6(GLIBCXX_3.4.15)
- 11.MapReduce第1部分
- error C2665: “AfxMessageBox”
- Grafana + Zabbix --- 部署分布式监控系统
- 如何创建并运行java线程
- Office word中mathtype公式与LaTex公式代码互转
- matplotlib-绘制精美的图表