创建一个名为CLUSTER1的群集,其中包含QMGR1,QMGR2和QMGRI三个队列管理器,其中在QMGR1和QMGR2上创建INPUTQ的接收队列,并使得它们在群集中共享。
配置步骤如下(以下各步中给出相应的MQSC命令):
1) 分别创建三个队列管理器。
2) 设置QMGR1和QMGR2为群集的两个完全仓储库,在两个队列管理上执行MQSC命令:ALTER QMGR REPOS(CLUSTER1) MQSC命令
·在QMGR1上执行MQSC命令:
DEFINE CHANNEL(TO.QMGR1) CHLTYPE(CLUSRCVR)
TRPTYPE(TCP) CONNAME('9.68.58.228(1414)') CLUSTER(CLUSTER1)
DEFINE CHANNEL(TO.QMGR2) CHLTYPE(CLUSSDR)
TRPTYPE(TCP) CONNAME('9.68.58.228(1415)') CLUSTER(CLUSTER1)
|
· 在QMGR2上执行MQSC命令:
DEFINE CHANNEL(TO.QMGR2) CHLTYPE(CLUSRCVR)
TRPTYPE(TCP) CONNAME('9.68.58.228(1415)') CLUSTER(CLUSTER1)
DEFINE CHANNEL(TO.QMGR1) CHLTYPE(CLUSSDR)
TRPTYPE(TCP) CONNAME('9.68.58.228(1414)') CLUSTER(CLUSTER1)
|
·在QMGRI上执行MQSC命令:
DEFINE CHANNEL(TO.QMGRI) CHLTYPE(CLUSRCVR)
TRPTYPE(TCP) CONNAME('9.68.58.228(1416)') CLUSTER(CLUSTER1)
DEFINE CHANNEL(TO.QMGR1) CHLTYPE(CLUSSDR)
TRPTYPE(TCP) CONNAME('9.68.58.228(1414)') CLUSTER(CLUSTER1)
|
3) 定义三个队列管理器的群集发送和群集接收通道。
4) 在QMGR1和QMGR2上定义群集共享队列INPUTQ,在QMGR1和QMGR2上,分别执行MQSC命令:DEFINE
QLOCAL(INPUTQ) CLUSTER(CLUSTER1)这时,在QMGRI上可以看到这两个被共享出来的队列。
5) 验证配置成功在QMGRI上,利用MQ第一步中提供的例子程序API Exerciser,向INPUTQ发送消息,注意,在打开该队列的时候,一定要选择MQOO_BIND_NOT_FIXED选项。
public class MQMessageSender {
public static void main(String[] args) {
try {
// set mq environment
MQEnvironment.hostname = "0.0.0.0";
//MQEnvironment.port = 1414;
MQEnvironment.channel = "CHL.SVRCONN";
// define mq manager
MQQueueManager mqmanager = new MQQueueManager("TEST");
int openOptions = MQC.MQOO_OUTPUT + MQC.MQOO_FAIL_IF_QUIESCING;
// connect to queue
MQQueue mq = mqmanager.accessQueue("QUE_IN", openOptions);
// define message
MQMessage putmessage = new MQMessage();
String msgtext = "TEST2";
/*String filename = "C:\\Test.txt";
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(filename)));
StringWriter sw = new StringWriter();
String temp = "";
while ((temp = in.readLine()) != null) {
sw.write(temp);
sw.write('\n');
}
msgtext = sw.toString();*/
//putmessage.writeString(msgtext);
putmessage.writeString(msgtext);
// send message
MQPutMessageOptions pmo = new MQPutMessageOptions();
mq.put(putmessage, pmo);
// disconnect mq manager
mqmanager.disconnect();
System.out.println("put message ok");
} catch (Exception e) {
System.out.println(e.toString());
}
}
}
public class MQMessageReceiver {
private String hostname;
private int port;
private String channel;
private String queueManager;
private String queue;
private int depth;
private static final Log log = LogFactoryImpl.getLog(MQMessageReceiver.class.getName());
public static void main(String[] args) {
log.info("-----[Start]-----");
ClassPathXmlApplicationContext xmlContext = new ClassPathXmlApplicationContext("MQSetting.xml");
MQMessageReceiver receiver = (MQMessageReceiver) xmlContext.getBean("mqMessageReceiver");
MQQueueManager mqmanager = null;
try {
// Set mq environment
MQEnvironment.hostname = receiver.getHostname();
MQEnvironment.port = receiver.getPort();
MQEnvironment.channel = receiver.getChannel();
// Define mq manager
mqmanager = new MQQueueManager(receiver.getQueueManager());
int openOptions = MQC.MQOO_INPUT_AS_Q_DEF + MQC.MQOO_FAIL_IF_QUIESCING;
// Connect to queue
MQQueue mq = mqmanager.accessQueue(receiver.getQueue(), openOptions);
// Define message
for (int i = 0; i < receiver.getDepth(); i++) {
MQMessage retrievedMessage = new MQMessage();
retrievedMessage.resizeBuffer(14436);
// Receive message
MQGetMessageOptions pmo = new MQGetMessageOptions();
pmo.options = MQC.MQGMO_ACCEPT_TRUNCATED_MSG | MQC.MQGMO_SYNCPOINT | MQC.MQGMO_WAIT;
// pmo.waitInterval = 3000;
mq.get(retrievedMessage, pmo);
String msgText = retrievedMessage.readString(retrievedMessage.getMessageLength());
log.info("Message id: " + retrievedMessage.messageId.toString());
log.info("Message: " + msgText);
}
// Disconnect mq manager
mqmanager.disconnect();
log.info("-----[Completed]-----");
} catch (Exception e) {
log.info(e.toString());
try {
mqmanager.disconnect();
} catch (Exception e1) {
;
}
}
}
分享到:
相关推荐
【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 产品的技术特性、架构和价值。下面是根据白皮书的内容生成的相关知识点。 概述 在概述...
WebSphere® MQ (也称MQSeries)以一致的、可靠的和易于管理的方式来连接应用程序,并为跨部门、企业范围的集成提供了可靠的基础。通过为重要的消息和事务提供可靠的、一次且仅一次的传递,Websphere MQ 可以处理...
**MQ与WebSphere MQ概述** MQ(Message Queuing)是一种中间件技术,它允许应用程序通过消息传递进行异步通信。这种技术的核心理念是通过消息队列来解耦发送方和接收方,使得它们可以在不同的时间运行,甚至在不同...
Linux 上的 WebSphere MQ 开发快速入门 本文将介绍如何在 Linux 上安装和配置 WebSphere MQ,以及如何使用 Java 应用程序开发 MQ 环境。本文将通过示例应用程序说明如何向队列发送消息和从队列接收消息。 ...
【标题】:“Websphere MQ入门教程-使用IBM Websphere MQ” 【正文】: IBM WebSphere MQ(原名MQSeries)是IBM提供的一款企业级的消息中间件产品,它允许不同应用程序、系统和网络在不同时区和平台之间交换消息。...
WebSphere MQ 8.0 自带的 JAR 包是一组关键组件,它们构成了 IBM 的消息中间件解决方案,用于在不同应用程序之间可靠地传递数据。这些 JAR 文件位于 `WebSphere MQ\java\lib` 目录下,是开发、配置和运行与 ...
IBM Websphere MQ入门教程 IBM Websphere MQ是IBM公司开发的一款消息队列中间件,旨在提供一个可靠的异步通信机制,实现不同应用程序之间的数据交换和集成。下面是该教程的知识点总结: 中间件的概念和优点 ...
《WebSphere MQ 系统管理指南 6.0》是一份详尽的文档,旨在为IT专业人士提供关于IBM WebSphere MQ版本6.0的全面系统管理指导。此指南覆盖了WebSphere MQ的基础知识、配置、操作与维护,以及高级主题,如故障排除和...
Websphere MQ Programming Guide,Websphere MQ Using C++,WebSphere MQ Using Java,WEBSPHERE MQ6.0 JAVA编程,WebSphere MQ基础教程,IBM WEBSPHERE MQ教程,精通WebSphere MQ,WebSphere MQ开发快速入门,IBM ...
IBM WebSphere MQ是一个先进的消息中间件产品,它提供了一个可靠的消息传输系统,用于应用程序、Web服务和Web 2.0技术。它为不同计算平台和操作系统间的消息通信提供了一个统一的解决方案。WebSphere MQ的v7版本特别...
Websphere MQ 是一款强大的中间件,用于在企业系统中实现可靠、高效的消息传递。它提供了统一的接口,使得不同的应用程序和服务能够通过消息队列进行通信,而不必直接依赖于对方的时间限制或运行状态。本教程将深入...
【Websphere MQ入门教程7】是一本专为初学者和WebSphere MQ系统管理员及开发者设计的实用指南。全书涵盖了WebSphere MQ的基础知识、系统管理和应用开发等多个方面,旨在帮助读者深入理解这一消息中间件的工作原理和...
《精通WebSphere MQ》一书深入探讨了IBM WebSphere MQ这一强大的消息中间件技术,旨在为读者提供全面、深入的理解和实践经验。以下是基于该书标题、描述、标签以及部分内容提炼的关键知识点: ### 1. 消息中间件...
Java监控WebSphere MQ 7.5中间件信息主要涉及到的是如何使用Java编程语言与IBM的WebSphere MQ消息中间件进行交互,以便收集、分析和管理MQ的运行时信息。WebSphere MQ,以前被称为MQSeries,是IBM提供的一种企业级的...
根据提供的文档信息,本文将对《WebSphere MQ - Messages.pdf》这一资料进行深入解析,并从中提炼出相关的IT知识点。此文档主要围绕WebSphere MQ的消息处理技术展开,详细介绍了消息查找、阅读方法以及不同系列下的...