`

MQ 前端在某银行系统的调用

 
阅读更多
这里说明下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监听模式

    标题“JMS调用IBM MQ监听模式”涉及的是Java消息服务(Java Message Service,简称JMS)与IBM WebSphereMQ(通常简称为IBM MQ)之间的交互,特别是在消息监听模式下的应用。这种模式允许应用程序被动地接收来自MQ的...

    基于mq和redis实现的秒杀系统

    前端接收用户请求,后端服务处理请求并调用MQ,MQ将消息分发到多个消费者,每个消费者使用Redis进行快速处理,并在合适时机更新数据库。 总结,基于MQ和Redis的秒杀系统设计旨在提高并发处理能力、保证数据一致性...

    java调用ibmmq最全版本jar包,包含connector

    Java调用IBM MQ(Message Queue)是企业级应用中常见的一种技术,用于实现应用程序之间的异步通信和消息传递。在Java环境中,IBM提供了专门的Java Connector(JMS API)来与MQ进行交互。本篇文章将深入讲解如何在...

    调用MQ发送xml文件并接收回复的message

    调用MQ向指定的队列中传输xml文件,同时发送成功后到指定的队列中去读取回复的xml格式的消息

    activityMQ调用示例,spring集成示例

    当我们谈到“activityMQ调用示例,spring集成示例”,这意味着我们将探讨如何将ActivityMQ与Spring框架整合,以实现高效、可扩展的系统架构。 首先,我们需要理解ActivityMQ的核心概念。ActivityMQ是一个基于Apache...

    某国有银行MQ6.0培训资料.doc

    总的来说,某国有银行选择MQ6.0作为其消息传递的基础,是因为其强大的功能和成熟的特性,能够满足银行系统对数据传输的安全性、稳定性和高效性的严格要求。通过对MQ的深入理解和有效使用,银行可以构建起高效、可靠...

    JMETER插件,进行IBM MQ测试

    IBM MQ,原名WebSphere MQ,是IBM提供的一种消息中间件,它允许应用程序在不同的网络、操作系统和应用程序之间可靠地传输数据。通过IBM MQ,可以实现异步通信,提高系统的可扩展性和容错性。 JMeter IBM MQ插件,...

    基于51单片机防酒后驾驶 MQ-3酒精检测系统的proteus仿真

    在本项目中,Proteus被用来模拟51单片机硬件平台及MQ-3传感器的工作状态,帮助开发者在实际硬件制作前验证程序逻辑和系统功能,减少实物调试的时间和成本。 【系统工作流程】 1. 驾驶员吹气进入MQ-3传感器,传感器...

    用C#连接IBM MQ

    通常,你需要在开发环境中安装IBM MQ客户端,并且确保.NET Framework环境支持相关的IBM MQ组件。 #### 编写C#代码连接IBM MQ 为了使用C#连接IBM MQ,我们需要引用IBM MQ提供的.NET类库。这些类库通常位于IBM MQ...

    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的校园医疗管理系统源码+数据库.zip 基于Springboot+Mybatis+Redis+MySql+MQ的校园医疗管理系统...

    mq.rar_MQ_ibm mq 实例代码_ibm mq 文件传输_ibm mqput怎么用_put

    IBM MQ,全称为IBM Message ...通过`mqput`命令和相应的API,开发人员可以轻松地实现在不同系统间的数据交换,确保了系统的稳定性和效率。理解并熟练运用这些工具和方法,对于提升软件系统的性能和可维护性至关重要。

    MQ5天然气报警系统设计

    在设计MQ5天然气报警系统时,开发者需要具备一定的硬件接口操作能力、传感器应用知识以及嵌入式系统编程技能。系统设计的每一个步骤都需要精心考虑,包括传感器的选择和配置、模数转换器的集成、微控制器编程逻辑,...

    Delphi向MQ远程队列发送消息

    IBM WebSphere MQ,作为业界广泛使用的消息中间件,提供可靠的消息传递服务,确保数据在分布式系统中的安全传输。本篇文章将深入探讨如何使用古老的编程语言Delphi 7与IBM WebSphere MQ集成,实现向远程消息队列发送...

    灰度系统(基于dubbo、spring扩展实现的接入层灰度、服务层灰度、mq灰度、外部调用灰度,支持多套灰度环境).zip

    在这个“灰度系统”中,基于dubbo和spring扩展的实现,我们可以看到一套完整的灰度测试解决方案,包括接入层灰度、服务层灰度、MQ(消息队列)灰度以及外部调用灰度,支持多套灰度环境。这样的系统设计有助于开发者...

    java客户端从MQ队列接收消息的三种方法

    在Java中,与Message Queuing (MQ) 交互是企业级应用中常见的需求,用于解耦应用程序并提高系统的可扩展性。本篇文章将详细介绍三种不同的方法,帮助Java客户端从MQ队列接收消息。 1. **IBM WebSphere MQ JMS API**...

    IBM MQ C++实例代码,连接MQ获取消息

    IBM MQ(原名WebSphere MQ)是IBM提供的一款企业级的消息中间件,它允许应用程序在不同的网络协议、操作系统和硬件之间可靠地交换信息。在这个场景中,"IBM MQ C++实例代码,连接MQ获取消息"是指使用C++编程语言与IBM...

    MQ 6.0系统管理指南

    ### MQ 6.0系统管理指南知识点概览 #### 一、概述 MQ 6.0,即WebSphere MQ 6.0,是IBM推出的一款消息中间件产品,旨在为不同平台之间的应用提供高效可靠的消息传递服务。该版本在继承了前代产品的稳定性和可靠性...

    WebSphere MQ 系统管理指南 6.0

    总之,《WebSphere MQ 系统管理指南 6.0》不仅是一份技术手册,更是IT团队在设计、部署和维护基于WebSphere MQ的消息传递解决方案时不可或缺的伙伴。它提供了深入的理论知识、实用的操作指南和先进的策略建议,帮助...

    利用MQ实现分布式应用系统间数据传输.pdf

    MQ在分布式系统中的应用,极大地提高了系统间的协同效率,降低了通信复杂度,同时也为系统提供了更好的容错和扩展能力。在设计和实施MQ解决方案时,需要充分考虑系统的实际需求,优化报文格式,以实现高效、安全的...

Global site tag (gtag.js) - Google Analytics