这里说明下ibm mq在前端的调用, 后台mq怎么建立,怎么设管道,怎么管理,我不太清楚。
因为工作涉及到的只是前台。
想知道mq的线程安全和大对象问题,有知道的人帮忙给我留言。
在某银行系统里。
我们要发MQ到server端,然后从server端收response MQ.
配置文件定义。
引用
<connector name="IbmMqConnector"
type="com.IbmMqConnector">
<property name="Gateway" value="u33.apac.ourcorp.com"/>
<property name="Port" value="1426"/>
<property name="Channel" value="CHANEL.HAHAECSID"/>
<property name="QueueManager" value="HAHA_QM.UAT"/>
<property name="SenderOptions" value="MQC.MQOO_OUTPUT"/>
<property name="ReceiverOptions" value="MQC.MQOO_INPUT_AS_Q_DEF"/>
<property name="SenderQueueName" value="ICRD.ID.TO_HAHAECS_REQ_M1.REMOTE"/>
<property name="ReceiverQueueName" value="ECS.ID.TO_HAHAICRD_RPL_M1.LISTEN"/>
<property name="WaitTime" value="30000"/>
<property name="Charset" value="037"/>
<property name="CodePage" value="IBM837"/>
<property name="TranID" value="MQII"/>
</connector>
首先我们要建立。
MQQueueManager
MQQueueManager qManager=new MQQueueManager(QueueManagerName,(Port,Channel and so on),new MQSimpleConnectionManager(timeout,ini_poolsize,maxipoolsize,mode))
这里我们看到 MQSimpleConnectionManager 里设置了timeout时间,容器大小,和发送方式。
然后我们可以建立发送队列。
MQQueue senderQueue=qManager.accessQueue(senderQueueName, senderOptions);
建立这个发送对面,我们需要它的senderQueueName和senderOptions,他们分别是string ,int 类型,并且定义在配置文件中,表示目标服务端的机器名和发送选择。
然后我们在建立接收队列。
MQQueue receiverQueue = qManager.accessQueue(receiverQueueName, receiverOptions, QueueManagerName, "*", null);
receiverQueueName,receiverOptions他们分别是string ,int 类型,并且定义在配置文件中,表示目标服务端的机器名和接收选择。
然后我们把前端收集的request里的所有值序列化成byte
ByteArrayOutputStreambos = new ByteArrayOutputStream();
bos.write(bytesMessage, 0, bytesMessage.length);
bytesMessage是request的所有值。
然后把得出的bos转化string, codePage 从配置文件里去。
String string = bos.toString(codePage);
然后再把它放在putMessage里。
MQMessage putMessage = new MQMessage();
putMessage.clearMessage();
putMessage.messageId = MQC.MQMI_NONE;
putMessage.correlationId = MQC.MQCI_NONE;
putMessage.replyToQueueName = receiverQueue.name;
putMessage.format = MQC.MQFMT_STRING;
putMessage.messageType = MQC.MQMT_REQUEST;
putMessage.putApplicationType = MQC.MQAT_JAVA;
putMessage.expiry = ((waitTime / 1000) + 1) * 10; // set the expiry time as tenths of a second
putMessage.writeString(string);
最后
MQPutMessageOptions pmo = new MQPutMessageOptions();
senderQueue.put(putMessage, pmo);
把putMessage通过senderQueue发送出去了。
接收端原理雷同。
getMessage = new MQMessage();
getMessage.messageId = putMessage.messageId;
getMessage.correlationId = putMessage.correlationId;
receiverQueue.get(getMessage, gmo);
String responseMessage = null;
if (multipleByteReading) {
int msgLength = getMessage.getMessageLength();
byte byteArray[] = new byte[msgLength];
getMessage.readFully(byteArray);
responseMessage = new String(byteArray,codePage);
} else
responseMessage = getMessage.readLine();
byte[] response = responseMessage.getBytes(codePage);
分享到:
相关推荐
标题“JMS调用IBM MQ监听模式”涉及的是Java消息服务(Java Message Service,简称JMS)与IBM WebSphereMQ(通常简称为IBM MQ)之间的交互,特别是在消息监听模式下的应用。这种模式允许应用程序被动地接收来自MQ的...
前端接收用户请求,后端服务处理请求并调用MQ,MQ将消息分发到多个消费者,每个消费者使用Redis进行快速处理,并在合适时机更新数据库。 总结,基于MQ和Redis的秒杀系统设计旨在提高并发处理能力、保证数据一致性...
Java调用IBM MQ(Message Queue)是企业级应用中常见的一种技术,用于实现应用程序之间的异步通信和消息传递。在Java环境中,IBM提供了专门的Java Connector(JMS API)来与MQ进行交互。本篇文章将深入讲解如何在...
调用MQ向指定的队列中传输xml文件,同时发送成功后到指定的队列中去读取回复的xml格式的消息
当我们谈到“activityMQ调用示例,spring集成示例”,这意味着我们将探讨如何将ActivityMQ与Spring框架整合,以实现高效、可扩展的系统架构。 首先,我们需要理解ActivityMQ的核心概念。ActivityMQ是一个基于Apache...
总的来说,某国有银行选择MQ6.0作为其消息传递的基础,是因为其强大的功能和成熟的特性,能够满足银行系统对数据传输的安全性、稳定性和高效性的严格要求。通过对MQ的深入理解和有效使用,银行可以构建起高效、可靠...
IBM MQ,原名WebSphere MQ,是IBM提供的一种消息中间件,它允许应用程序在不同的网络、操作系统和应用程序之间可靠地传输数据。通过IBM MQ,可以实现异步通信,提高系统的可扩展性和容错性。 JMeter IBM MQ插件,...
在本项目中,Proteus被用来模拟51单片机硬件平台及MQ-3传感器的工作状态,帮助开发者在实际硬件制作前验证程序逻辑和系统功能,减少实物调试的时间和成本。 【系统工作流程】 1. 驾驶员吹气进入MQ-3传感器,传感器...
通常,你需要在开发环境中安装IBM MQ客户端,并且确保.NET Framework环境支持相关的IBM MQ组件。 #### 编写C#代码连接IBM MQ 为了使用C#连接IBM MQ,我们需要引用IBM MQ提供的.NET类库。这些类库通常位于IBM MQ...
在IT行业中,消息队列(Message Queue,简称MQ)是一种常用于分布式系统中的中间件技术,用于解耦应用程序组件,提高系统的可扩展性和稳定性。WebSphere MQ是IBM公司提供的一种高效、可靠的消息传递产品,它允许应用...
基于Springboot+Mybatis+Redis+MySql+MQ的校园医疗管理系统源码+数据库.zip 基于Springboot+Mybatis+Redis+MySql+MQ的校园医疗管理系统源码+数据库.zip 基于Springboot+Mybatis+Redis+MySql+MQ的校园医疗管理系统...
IBM MQ,全称为IBM Message ...通过`mqput`命令和相应的API,开发人员可以轻松地实现在不同系统间的数据交换,确保了系统的稳定性和效率。理解并熟练运用这些工具和方法,对于提升软件系统的性能和可维护性至关重要。
在设计MQ5天然气报警系统时,开发者需要具备一定的硬件接口操作能力、传感器应用知识以及嵌入式系统编程技能。系统设计的每一个步骤都需要精心考虑,包括传感器的选择和配置、模数转换器的集成、微控制器编程逻辑,...
IBM WebSphere MQ,作为业界广泛使用的消息中间件,提供可靠的消息传递服务,确保数据在分布式系统中的安全传输。本篇文章将深入探讨如何使用古老的编程语言Delphi 7与IBM WebSphere MQ集成,实现向远程消息队列发送...
在这个“灰度系统”中,基于dubbo和spring扩展的实现,我们可以看到一套完整的灰度测试解决方案,包括接入层灰度、服务层灰度、MQ(消息队列)灰度以及外部调用灰度,支持多套灰度环境。这样的系统设计有助于开发者...
在Java中,与Message Queuing (MQ) 交互是企业级应用中常见的需求,用于解耦应用程序并提高系统的可扩展性。本篇文章将详细介绍三种不同的方法,帮助Java客户端从MQ队列接收消息。 1. **IBM WebSphere MQ JMS API**...
IBM MQ(原名WebSphere MQ)是IBM提供的一款企业级的消息中间件,它允许应用程序在不同的网络协议、操作系统和硬件之间可靠地交换信息。在这个场景中,"IBM MQ C++实例代码,连接MQ获取消息"是指使用C++编程语言与IBM...
### MQ 6.0系统管理指南知识点概览 #### 一、概述 MQ 6.0,即WebSphere MQ 6.0,是IBM推出的一款消息中间件产品,旨在为不同平台之间的应用提供高效可靠的消息传递服务。该版本在继承了前代产品的稳定性和可靠性...
总之,《WebSphere MQ 系统管理指南 6.0》不仅是一份技术手册,更是IT团队在设计、部署和维护基于WebSphere MQ的消息传递解决方案时不可或缺的伙伴。它提供了深入的理论知识、实用的操作指南和先进的策略建议,帮助...
MQ在分布式系统中的应用,极大地提高了系统间的协同效率,降低了通信复杂度,同时也为系统提供了更好的容错和扩展能力。在设计和实施MQ解决方案时,需要充分考虑系统的实际需求,优化报文格式,以实现高效、安全的...