import java.io.IOException;
import java.util.Hashtable;
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.MQPutMessageOptions;
import com.ibm.mq.MQQueue;
import com.ibm.mq.MQQueueManager;
import com.ibm.mq.constants.MQConstants;
/**//*
* 可以在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 {
qMgr = new MQQueueManager("HUANG", new Hashtable());
qQueue = qMgr.accessQueue("HUANGQ1", MQConstants.MQOO_OUTPUT);
//HOST_NAME = "localhost";
//PORT = 1414;
//qManager = "HUANG";
//Q_NAME = "CBMQ";
//CHANNEL = "CBRS001";
//CCSID = 1381; // 表示是简体中文,
//// CCSID的值在AIX上一般设为1383,如果要支持GBK则设为1386,在WIN上设为1381。
//
Msg = "MQ测试发送12321321321";
//// 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) {
e.printStackTrace();
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);
}
}
/**//*
* 取过一次,下次就没有了
*/
@SuppressWarnings("deprecation")
//public void GetMsg() {
//try {
//MQMessage retrievedMessage = new MQMessage();
//
//MQGetMessageOptions gmo = new MQGetMessageOptions();
//gmo.options += MQC.MQPMO_SYNCPOINT;
//
////gmo.options = MQC.MQOO_INPUT_AS_Q_DEF + MQC.MQOO_FAIL_IF_QUIESCING;
//
//
///*设置打开选项以便打开用于输出的队列,如果队列管理器停止,我们也已设置了选项去应对不成功情况*/
////gmo.options = MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING;
//
///*打开队列*/
////MQQueue queue = qMgr.accessQueue("HUANGQ2", gmo.options, null, null, null);
////qQueue = qMgr.accessQueue(Q_NAME, gmo.options );
//
//
//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 GetMsg() throws IOException, MQException {
String messageString;
qMgr = new MQQueueManager("HUANG");
// 构造队列管理器;
// queueManager = new MQQueueManager(queueManagerName);
// 设置队列打开选项为可读取且可存放;
int openOptions = MQC.MQOO_BROWSE|MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING;
// int openOptions = MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING;
// 从本地队列获取消息;
// qQueue = qMgr.accessQueue("HUANGQ1", MQConstants.MQOO_OUTPUT);
qQueue = qMgr.accessQueue("HUANGQ1", openOptions);
// 构造新消息对象,为读取队列中的消息做准备;
MQMessage message = new MQMessage();
// 构造读取消息选项对象;
MQGetMessageOptions gmo = new MQGetMessageOptions();
// 指定读取消息选项值;
gmo.options = MQC.MQOO_OUTPUT;
// 从已经打开的队列中读取消息,并存放到已构建消息对象中;
qQueue.get(message, gmo);
// 从读出的消息中解析消息内容;
if (message.getMessageLength() > 0)
{
messageString = message.readString(message.getMessageLength());
System.out.println(messageString);
}
}
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 WebSphere MQ安装包详解】 IBM WebSphere MQ,前身为IBM MQSeries,是IBM公司推出的一款企业级的消息中间件产品。它在信息技术领域扮演着至关重要的角色,为跨网络、操作系统和应用程序提供了高效、安全的...
IBM WebSphere MQ入门教程 IBM WebSphere MQ 是一种基于消息队列的中间件,用于实现不同的应用程序之间的异步通信。下面是对 IBM WebSphere MQ 的入门教程的总结,涵盖了 WebSphere MQ 的原理、体系结构、重要特点...
IBM WebSphere MQ 技术白皮书 IBM WebSphere MQ 技术白皮书是 IBM 公司发布的一份技术白皮书,旨在介绍 IBM WebSphere MQ 产品的技术特性、架构和价值。下面是根据白皮书的内容生成的相关知识点。 概述 在概述...
在IT行业中,IBM WebSphere MQ(也称为IBM MQ)是一种广泛使用的中间件,它允许应用程序在不同的网络协议、操作系统和硬件之间可靠地交换消息。在这个“Java下操作IBM Websphere MQ的项目案例”中,我们将探讨如何...
【IBM WebSphere MQ安装使用教程详细图解】 IBM WebSphere MQ,简称MQ,是一款由IBM提供的消息中间件,它允许应用程序之间可靠地交换信息,无论它们位于何处或使用何种操作系统。本教程旨在指导用户在Windows系统上...
IBM websphereMQ 8.0.0.5 lib包; IBM\WebSphere MQ\java\lib下的文件 文件列表: com.ibm.mq.jms.Nojndi.jar com.ibm.mq.pcf.jar com.ibm.mq.allclient.jar com.ibm.mq.postcard.jar com.ibm.mq.axis2.jar ...
在本文中,我们将深入探讨如何使用C#编程语言与IBM WebSphere MQ进行交互,实现消息的发送和接收。IBM WebSphere MQ(前身为MQSeries)是一种企业级的消息中间件,它提供了一种可靠且可扩展的方式,使得应用程序可以...
在文件系统中定位并删除对应文件,例如在路径`WebSphereMQ\Qmgrs\QM!02\queues\QL!B\Q`下。 - 显示队列QL.B的属性以确认其仍然存在但已损坏: `display queue(QL.B)` - 浏览队列QL.B,验证队列已损坏: `...
【配置IBM WEBSPHERE MQ触发器】是IBM企业级消息中间件产品中的一项重要功能,它允许用户在消息进入或离开队列时自动执行特定的操作,例如启动应用程序、执行脚本或者更新数据库。这一特性使得MQ系统能更好地与业务...
IBM WebSphere MQ 8.0 linux 安装包 part1
IBM Websphere MQ入门教程 IBM Websphere MQ是IBM公司开发的一款消息队列中间件,旨在提供一个可靠的异步通信机制,实现不同应用程序之间的数据交换和集成。下面是该教程的知识点总结: 中间件的概念和优点 ...
**IBM WebSphere MQ v6.0 知识点详解** IBM WebSphere MQ,原名IBM MQSeries,是IBM推出的一款企业级消息中间件产品。它为应用程序之间提供可靠的、安全的数据传输服务,允许不同系统、不同平台之间的数据通信,极...
### IBM WebSphere MQ 知识点详解 #### 一、业务背景及问题分析 在当前信息化高度发达的时代背景下,企业面临着复杂多样的信息技术环境。**IBM WebSphere MQ**(以下简称WMQ)作为一种成熟的消息中间件产品,旨在...
【标题】:“Websphere MQ入门教程-使用IBM Websphere MQ” 【正文】: IBM WebSphere MQ(原名MQSeries)是IBM提供的一款企业级的消息中间件产品,它允许不同应用程序、系统和网络在不同时区和平台之间交换消息。...
IBM WebSphere MQ 8.0 linux 安装包 part3,IBM WebSphere MQ 8.0 linux 安装包 part3
【IBM WebSphere MQ入门教程】 IBM WebSphere MQ,前身为IBM MQSeries,是IBM公司推出的一款企业级消息中间件产品,它提供了一种可靠、高效、安全的方式在不同应用程序之间传输数据,支持多种操作系统和编程语言,...
Websphere MQ是IBM提供的一款高效、可靠的中间件产品,用于在不同的应用程序和系统之间传递消息。本入门教程旨在帮助初学者理解其基本原理、体系结构及其在IT环境中的重要作用。 中间件是一种位于应用软件和系统...
【IBM WebSphere MQ基础篇(官方教材)】 IBM WebSphere MQ,通常简称为WMQ,是一种高效、可靠的消息中间件,由IBM Software Group开发。它提供了在分布式环境中进行应用程序间通信的能力,确保了数据的传输独立于...
根据提供的信息,我们可以总结出以下关于“IBM WebSphere MQ Windows版快速入门”的关键知识点: ### 一、概述 - **标题**: IBM WebSphere MQ Windows版快速入门 - **描述**: 该文档为IBM WebSphere MQ在Windows...
IBM websphere MQ教学材料0094