MQ基础知识及操作指南

合集下载

mq的使用方法

mq的使用方法

mq的使用方法(最新版3篇)目录(篇1)1.MQ 简介2.MQ 的使用方法3.MQ 的优点4.MQ 的缺点5.MQ 的未来发展正文(篇1)一、MQ 简介消息队列(Message Queue,简称 MQ)是一种应用程序之间的通信机制,通过将消息发送到队列中,然后再从队列中读取消息,实现异步处理和解耦。

消息队列具有可靠性、灵活性和可扩展性等特点,广泛应用于系统解耦、异步处理、流量削峰等场景。

二、MQ 的使用方法1.选择合适的 MQ 软件:目前市场上有很多优秀的 MQ 软件,如RabbitMQ、Kafka、RocketMQ 等,根据实际需求选择合适的 MQ 软件。

2.搭建 MQ 环境:根据所选 MQ 软件的官方文档,搭建相应的环境,包括安装、配置和启动 MQ 服务。

3.生产者发送消息:生产者通过编写代码将消息发送到队列中,代码中需要引入 MQ 相关的库,并配置相应的生产者信息。

4.消费者接收消息:消费者也需要编写代码从队列中接收消息,同样需要引入 MQ 相关的库,并配置相应的消费者信息。

5.处理消息:消费者接收到消息后,进行相应的业务处理,如数据分析、文件存储等。

三、MQ 的优点1.可靠性:消息队列采用持久化存储,保证了消息的可靠传输。

2.灵活性:消息队列可以方便地进行扩展,支持分布式系统。

3.异步处理:消息队列允许生产者与消费者解耦,提高了系统的并发能力。

4.流量削峰:消息队列可以缓存大量消息,有效解决系统瞬时流量过大的问题。

四、MQ 的缺点1.复杂性:消息队列引入了新的概念和架构,增加了系统的复杂性。

2.维护成本:消息队列需要定期进行维护,如监控、备份和恢复等。

3.学习成本:消息队列技术较为复杂,需要投入较多精力学习和掌握。

五、MQ 的未来发展随着大数据和人工智能技术的发展,消息队列在未来将发挥更大的作用。

同时,随着云计算和容器技术的普及,消息队列将更加便捷地应用于各种场景。

目录(篇2)1.MQ 的概念和作用2.MQ 的基本组件3.MQ 的使用方法4.MQ 的优点和局限性正文(篇2)一、MQ 的概念和作用消息队列(Message Queue,简称 MQ)是一种应用程序之间的通信模式,通过将消息发送到队列中,然后再从队列中读取消息,实现异步处理和解耦。

(转)IBMmq基本使用

(转)IBMmq基本使用

(转)IBMmq基本使⽤⼀、下载7.5 Trial版本这是下载⽹址,下载前先必须注册IBM ID,下载完成后⼀路Next即可(注:windows上安装时,会询问是否域环境,初次学习时,为简单起见,建议选择No)安装完成后,MQ的Bin⽬录会⾃动添加到环境变量Path中,以后就可以直接⽤Dos命令⾏窗⼝操作(当然,也可以⽤图形化GUI⽅式通过IBM WebSphere MQ Explorer来管理)注:安装时,强烈建议⽤管理员Administrator⾝份安装,否则安装完成后,有可能license⽆法⽣效、runmqsc命令模式下⽆法正常执⾏命令.⼆、创建队列管理器WIN + R键,输⼊cmd,进⼊命令⾏窗⼝,键⼊:crtmqm QM_TEST创建⼀个队列管理器QM_TEST(你可以改成⾃⼰想要的名字),如果把整个MQ理解成⼀个数据库实例,QM_TEST相当于就是db instance中的schema(或user)命令⾏创建的队列管理器默认是不活动状态的,可以⽤strmqm QM_TEST来启动队列管理器三、创建队列如果说“队列管理器”是db中的schema,那么"队列"就相当于db中的Table了,⽽队列中的每条"消息",就相当于Table中的每条记录,继续在命令⾏窗⼝模式下,输⼊runmqsc QM_TEST将进⼊MQ的交互命令模式,继续输⼊define qlocal(Q1)将创建⼀个本地队列Q1(你可以改成⾃⼰需要的名字),如果此时你打开 "开始菜单->程序->IBM WebSphere MQ->WebSphere MQ Explorer (Installation1)"也能同步在图形界⾯下,看到这个队列最后键⼊end,退出MQ的交互命令模式。

四、发送消息继续在Windows命令模式下,输⼊amqsput Q1 QM_TEST这⾥系统将处于等待⽤户输⼊的状态,随便输⼊⼀些消息,然后连敲⼆次回车,完成消息发送五、接收消息amqsget Q1 QM_TEST把刚才的put换成了get,将从队列管理器QM_TEST的队列Q1中,把消息取出来六、进阶指南熟悉以上命令⾏操作后,还可以⽤图形化的操作⽅式再强化⼀遍(建议还是多⽤命令⾏模式,因为有些操作只能⽤命令⾏完成,⽐如后⾯要提到的修改队列管理器编码)WebSphere MQ Explorer中,从"帮助"菜单⾥调出帮助⽂档,⾥⾯有⼀个不错的教程,强烈推荐新⼿看⼀遍不过,"教程2:将消息发送⾄远程队列"这⾥,帮助⽂档上有⼏个细节没讲透,导致初次⽤命令⾏照着做,可能会不成功,⼏个要点如下:1、通道命名问题发送⽅与接收⽅的通道名称,必须⼀样,这样⼆边才能对应起来2、接收⽅必须要有侦听器,⽽且要处于激活状态3、发送⽅的发送通道中,连接名称格式为:"<接收⽅HostName或IP地址>(接收⽅-队列管理器-侦听器的TCP端⼝) ,不包括"<>“,⽐如⽐如:yangjm(1514)或172.12.134.14(1514)4、发送⽅的发送通道必须处于激活状态,如果通道启动失败,尝试右键->ping/复位,如果还不⾏,检查上述要点1-3是否设置有问题七、远程连接问题图形⽅式添加“远程队列管理器”时,如果远程队列也是7.x或以上版本,当前登录⽤户是管理员时,将提⽰权利不⾜,拒绝连接,原因是7.0以上,MQ提⾼了安全性,会默认拦截管理员,详情可参考IBM上的解释解决⽅式:1. 更换当前⽤户,建⼀个mqm⽤户组(MQ安装后,会默认创建该Windows⽤户组)的⽤户,然后以该⽤户⾝份登录操作2.参考IBM上的解释,如果出于学习⽬的,最简单的做法,就是在runmqsc交互模式下,键⼊ALTER QMGR CHLAUTH(DISABLED) 直接关闭通道认证(⽣产环境不推荐这么做)另外,要想本机上的队列能被远程管理,前提是该队列管理器允许远程管理,操作⽅式:队列管理器上右击->选择"远程管理...",接下来的事情⼤家都知道⼋、字符集编码问题每个队列管理器,都有⼀个CCSID的属性,对应的就是字符集编码,在windows系统中,这个编码应该是1381,如果你是⽤其它OS(⽐如linux)的配置通过脚本导⼊MQ的,可能编码就不是1381了,这会导致在windows上⽆法连接\启动队列管理器,可以通过MQ交互命令⾏修改,runmqsc QM_TEST 进⼊QM_TEST的MQ交互模式DISPLAY QMGR CCSID 查看当前的CCSID属性ALTER QMGR CCSID(1381) 修改字符集编码为1381九、如何从“试⽤版”升级成“正式版”试⽤版默认只能⽤90天,到期后,如果购买了正式版的license,可以通过命令⾏导⼊license,命令如下:setmqprd x:\license\amqpcert.lic注:amqpcert.lic中的P即代表这是Product⽣产版本,setmqprd 后⾯的路径即为license⽂件的所在路径⼗、java连接⽰例代码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;/** 可以在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 = "yangjm";//Hostname或IPPORT = 1414;//要有⼀个侦听器,处于活动状态,且监听1414端⼝qManager = "QM_APPLE";Q_NAME = "Q1";//Q1是⼀个本地队列CHANNEL = "DC.SVRCONN";//QM_APPLE上要建⼀个名为DC.SVRCONN的服务器连接通道CCSID = 1381; // 表⽰是简体中⽂,// CCSID的值在AIX上⼀般设为1383,如果要⽀持GBK则设为1386,在WIN上设为1381。

MQ语言简单说明与教程

MQ语言简单说明与教程

MQ语言简单说明与教程关键字:programtrader MT4 EA MQ MQLⅡ本文来自:程序化交易者() 详细出处参考:/a/MT4/2010/0913/572_3.html“人工智能系统”是一允许客户策划自己的投资交易战略的具有革新性的工具。

人工智能系统是使交易过程操作自动化,使客户从实时市场监控的繁重公事解放出来的系统。

许多专业客户使用多重交易系统以便在不同市场多变的环境下操作。

通常他们在一些知名的分析软件包,如MetaStock 、TradeStation.中撰写和检验他们的投资交易战略。

有了人工智能系统,你就可以将你的真实账户同交易系统产生的信号联系起来,即通过跟踪和管理你任一时点的未平仓合约、下单和止损的记录来建立这种联系。

什么是人工智能系统呢?是用专业的MetaQuotes语言编写的于特定图表联系的自动交易系统(ATS)。

它不仅告知客户交易时机,还自动执行交易账户的交易并将信号直发送到交易服务器。

同大多数IT系统一样,人工智能系统还以历史记录以及表上所反映的交易进出点来测试投资交易战略。

另外,人工智能系统的执行代码是与源程序正文分开保存的。

这种安排确保客户信息的保密性不受爱打听的人的影响。

编写你自己的人工智能系统程序是非常容易的,你不必是专业的程序员,你只要学会一非常简单的语言:MQLⅡ,即便是不懂得如何编写自己的系统程序人通常也可以雇佣他所熟识的精通编程的人来编,这些人可能仅需要不超过一个小时的时间来掌握编程和操作方法。

这里有许多不同的 MetaStock 和 TradeStation 的客户制定的投资交易战略,其中大多数能较容易的转化成MQLⅡ语言,这使用户能吸取以往经验。

在本页就有一些可供下载的“人工智能系统”版本。

环球银行交易平台将人工智能系统设为 *.mql (源程序档用此扩展名)和 *.exp (操作代码用此扩展名)文件存于程序的根目录下的子目录。

客户可以通过 NAVIGATORL浏览窗口管理操作多个(不限数量)的“人工智能系统”。

常用mq介绍

常用mq介绍
11
RABBITMQ介绍
1.AMQP ① Model层决定这些基本域模型所产生的行为,这种行为在AMQP中用”command”表
示 ② Session层定义客户端与broker之间的通信,为command的可靠传输提供保障。 ③ Transport层专注于数据传送,并与Session保持交互,接受上层的数据 ,组装成二进制流,传送到receiver后再解析数据,交付给Session层。 Session层需要
MQ的工作原理和通讯模式
MQ提供了用于应用集成的松耦合的连接方法,因为共享信息的应用不 需要知道彼此物理位置(网络地址);不需要知道彼此间怎样建立通信; 不需要同时处于运行状态;不需要在同样的操作系统或网络环境下运行。
通讯模式: 点对点通讯:支持一对一、一对多、多对多、多对一等多种配置方式,
支持树状、网状等多种拓扑结构
多点广播:将消息发送到多个目标站点(Destination List);
发布/订阅(Publish/Subscribe)模式: 使消息的分发可以突破目的队列地理指向的限制, 使消息按照特定的主题甚至内容进行分发, 用户或应用程序可以根据主题或内容接收到所需要的消息。
群集(Cluster):群集中的队列管理器之间能够自动进行负载均衡,master/slave
Transport层完成网络异常情况的汇报,顺序传送command等工作
12
RABBITMQ介绍
1.名字解释
1.Broker:消息队列服务器实体,例如RabbitMQ服务 2.Vhost:虚拟主机,一个broker里可以有多个vhost,区分不同用户权限,类似java的 命令空间 3.Connection:应用程序与broker连接,可有多个连接 4.Channel:消息通道,connection中可建立多个channel,每个channel代表一个会话任 务,所有操作都在channel中进行。 4.Exchange:消息交换机,channel中可有多个,用于投递消息。应用程序发送消息时 先把消息给交换机,由交换机投递给队列,不是直接给队列 5.Queue:队列,用于存放消息 6.Message:消息,应用程序需要发送的数据 7.Bind:根据routingKey绑定exchange与queue规则,决定消息发送的方向

MQ教程

MQ教程
Cluster-receiver (同上)
30
MQ对象: 消息如何在通道传输
(1) 应用程序将消息 放入传输队列
(4) 对于应用来说消 息可用了
(2) Sender MCA取出消息 然后发送到 partner MCA
(3) Receiver MCA 将消 息放入目标队列
31
MQ对象: 有保障传输
15
消息的长处

消息的长处:
我们可以集中精力去做应用本身的设计.
再也不用管有关环境方面的细节了.
应用变得可以移植、扩展了.
16
图解消息工作原理
程序通过放置消息到队列 来进行通信. 图中, A程序 将消息放入 Queue1, B程 序读取Queue1的消息.
Note: A 和 B 不必 位于同一台机器上!
40

如果要从集群的外部发送消息到集群,幵希望消息在集群的成员
间合理的分配,那么集群中作为不外部环境接口点的队列管理器
上就丌能存在任何共享队列的副本,否则所有消息将积压在接口 点队列管理器上,使集群的负载均衡功能英雄无用武乊地。

通常的解决方案是为集群配置至少一个特殊的队列管理器,通常
称为网关(Gateway)队列管理器,该队列管理器上没有任何共 享队列的副本,叧需配置不集群外部的通讯设置(通道、监听器

若队列是持久的, 消息也是持久的, 则MCA最终一定 会将消息传送到目标队列, 迚而被目标应用获取!

MCA是可恢复的(有状态的),而且是面向连接的
协议.

消息丌会从传输队列中删除,除非对方MCA确认消
息到达了目标队列

消息通道代理(message channel agents,MCA)

IBM MQ 9.1 快速入门指南说明书

IBM MQ 9.1 快速入门指南说明书

IBM MQVersion 9.1Quick Start GuideUse this guide to get started with IBM MQ Version 9.1.National Language Version:To obtain the Quick Start Guide in other languages, print the language-specific PDF from the Quick Start DVD.Product overviewIBM ®MQ is robust messaging middleware that simplifies and accelerates the integration of diverse applications and business data across multiple platforms. IBM MQ facilitates the assured, secure and reliable exchange of information betweenapplications, systems, services and files by sending and receiving message data via messaging queues, thereby simplifying the creation and maintenance of business applications. It delivers Universal Messaging with a broad set of offerings to meet enterprise-wide messaging needs, and can be deployed across a range of different environments including on-premise, in cloud environments and supporting hybrid cloud deployments.IBM MQ supports a number of different application programming interfaces (APIs) including Message Queue Interface (MQI),Java ™Message Service (JMS), .NET, IBM MQ Light, MQTT, and the messaging REST API.Product documentation for all supported versions of IBM MQ is available through IBM Knowledge Center(https:///support/knowledgecenter/SSFKSJ). Specifically, the IBM MQ Version 9.1 product documentation is also available in IBM Knowledge Center (/support/knowledgecenter/SSFKSJ_9.1.0/com.ibm.mq.helphome.v91.doc/WelcomePagev9r1.htm).Service and support information is provided in the documentation.Information about how to use MQ Explorer can be accessed either from within MQ Explorer or in the product documentation.3Step 3: Review the installation architectureIBM MQ architectures range from simple architectures that use a single queue manager, to more complex networks of interconnected queue managers. For more information about planning your IBM MQ architecture, see the Planning section of the product documentation in IBM Knowledge Center (https:///support/knowledgecenter/en/SSFKSJ_9.1.0/com.ibm.mq.pla.doc/q004690_.htm).For links to additional information, see the IBM MQ information roadmap in IBM Knowledge Center(/support/knowledgecenter/en/SSFKSJ_9.1.0/com.ibm.mq.pro.doc/q123810_.htm).4Step 4: Install the productFor installation instructions for IBM MQ on all supported pltforms, and for details of the hardware and software configurations that are required, see the Installing section of the product documentation in IBM Knowledge Center (https:///support/knowledgecenter/en/SSFKSJ_9.1.0/com.ibm.mq.ins.doc/q008250_.htm).IBM®started quickly.Further scenarios help you to configure or use product features by taking you through the appropriate task steps. The scenarios include links to other content that helps you to gain a better understanding of the area in which you are interested.More informationFor more information about IBM MQ, see the following resources:IBM FAQ for Long Term Support and Continuous Delivery releasesFrom IBM MQ Version 9.0, IBM MQ introduced a Continuous Delivery (CD) support model. Following the initialrelease of a new version, new function and enhancements are made available by incremental updates within thesame version and release. There is also a Long Term Support release available for deployments that requiresecurity and defect fixes only. For more information, see IBM MQ FAQ for Long Term Support and ContinuousDelivery releases (/support/docview.wss?uid=swg27047919).Online product readme fileThe latest version of the online product readme file is available on the IBM MQ product readmes web page(/support/docview.wss?rs=171&uid=swg27006097).IBM Support informationSupport information includes the following resources:v IBM Support web page (https:///support/home/)v IBM Support Assistant (/software/support/isa/)v Social Media Channels within Cloud Technical Support (/support/docview.wss?uid=swg21410956#2IBM MQ Version 9.1 Licensed Materials - Property of IBM. © Copyright IBM Corp. 2006, 2018. U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. IBM, the IBM logo, , and Passport Advantage are trademarks or registered trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Java and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its affiliates. Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at “Copyright and trademark information” (/legal/copytrade.shtml).Part Number:CF4LGMLPrinted in Ireland。

MQ维护与操作

MQ维护与操作

MQ维护与操作MQ维护与操作1.MQ 的⽇志清理MQSeries ⽤错误⽇志记录与MQSeries ⾃⾝运⾏,队列管理器以及通道有关的消息。

因此,错误⽇志对于MQSeries 错误诊断⾮常重要。

AIX 平台上的MQSeries错误⽇志:当队列管理器名称已知,并且队列管理器可⽤时,错误⽇志位于/var/mqm/qmgrs/qmname/errors ⽬录下,如:与MQ 通道有关的消息。

当队列管理器不可⽤时,错误⽇志位于/var/mqm/qmgrs/@SYSTEM/errors ⽬录下;当错误是事务⽇志MQ 的故障维护与Client 应⽤程序有关,错误⽇志位于:/var/mqm/errors ⽬录下。

系统管理员要定期观察错误⽇志,清楚产⽣错误的原因,并根据需要定期清理或备份错误⽇志。

MQSeries 有两种事务⽇志类型:环型⽇志和线型⽇志,所在⽬录为/var/mqm/log环型⽇志预先指定⽇志⽂件的个数,MQ 运⾏时事务⽇志循环使⽤这些⽂件。

环型⽇志的⽇志⽂件所占空间不会增长,也⽆法备份MQ 应⽤系统的映像。

本系统现设计为环型⽇志。

线型⽇志指MQSeries 在运⾏的过程中会随着⽇志记录的增加⽽产⽣新的⽇志⽂件,线型⽇志的可以保证事务运⾏中产⽣的⽇志有⾜够的空间(除⾮⽂件系统空间不⾜),还可以把MQ 应⽤系统的映像备份到⽇志中,在发⽣故障后完整地恢复,线型⽇志⽇志⽂件所占⽤的空间会不断增长,需要系统管理员定期⼿⼯删除过期的⽇志⽂件。

2.如何清除MQ 队列管理器遗留的共享内存和信号量下⾯列出的是⼀段⽤于清除MQSeries 上⼀次遗留的共享内存和信号量的⼩程序。

通常遇到的状况是当启动队列管理器时失败,返回消息AMQ8041,指明以前的进程依然在使⽤中。

解决⽅法:运⾏以下脚本或命令。

ipcs -m| grep mqm | awk '{print $2}'|xargs -i ipcrm -m {}ipcs -s| grep mqm | awk '{print $2}'|xargs -i ipcrm -s {}3.如何解决MQSeries 队列管理器⽆法启动报“AMQ5522”错误当启动MQSeries 队列管理器时,⽆法启动,报“AMQ5522”错误。

MQ操作手册

MQ操作手册

交通银行理财产品销售平台MQ操作手册文档修改历史1.MQ配置简介基本规则如下:1)队列管理器与GSP的一个QM建立双向通道,即建立一个发送通道,一个接收通道2)对于单纯的服务请求方,每个系统建立:n个远程队列用于发送报文到GSP,一个本地队列用于接收GSP返回的报文。

(n表示该请求方需要请求的服务个数),BDP系统作为服务请求方,请求核心,即建立一个远程队列,一个本地队列.3)对于单纯服务提供方,每个系统建立2m个队列:m个远程队列用于发送报文到GSP,m个本地队列用于接收GSP返回的报文。

(m表示服务方提供的服务数)BDP系统作为服务提供方,对外提供三个服务,即建立三个本地队列,三个远程队列依照上面规则,配置如下:1.一个队列管理器:MQBDP001。

2.一个传输队列:MQGSPGW1。

3.服务提供方三个本地队列LOCALQ.GSP.BOCOMFUNDACCOUNT.REQLOCALQ.GSP.BOCOMFUNDPRODUCT.REQLOCALQ.GSP.BOCOMFUNDRECONCILIATION.REQ。

4.服务提供方三个远程队列:REMOTEQ.GSP.BOCOMFUNDACCOUNT.RSPREMOTEQ.GSP.BOCOMFUNDPRODUCT.RSPREMOTEQ.GSP.BOCOMFUNDRECONCILIATION.RSP5.服务请求方一个本地队列LOCALQ.GSP.RSP6.服务请求方一个远程队列REMOTEQ.GSP.CBKADAPTER.REQ7.一个死信队列:MQBDP001.DEAD.QUEUE。

8.一个接收通道:MQGSPGW1. MQBDP001。

9.一个发送通道:MQBDP001.MQGSPGW1注:确认小型机的字库Zh_GB和GB18030是否安装。

export是否是LANG=Zh_CN(注意大小写,不是zh_CN)。

如果不是,请修改服务用户的.profile的LANG=Zh_CN。

RabbitMQ入门_03_推拉模式

RabbitMQ入门_03_推拉模式

RabbitMQ⼊门_03_推拉模式我们知道,消费者有两种⽅式从消息中间件获取消息:推模式:消息中间件主动将消息推送给消费者拉模式:消费者主动从消息中间件拉取消息推模式将消息提前推送给消费者,消费者必须设置⼀个缓冲区缓存这些消息。

好处很明显,消费者总是有⼀堆在内存中待处理的消息,所以效率⾼。

缺点是缓冲区可能会溢出。

拉模式在消费者需要时才去消息中间件拉取消息,这段⽹络开销会明显增加消息延迟,降低系统吞吐量。

选择推模式还是拉模式需要考虑使⽤场景。

前⾯ HelloWorld 例⼦中使⽤ Consumer 接⼝的⽅式是推模式。

RabbitMQ 会把队列中的消息全部推送给消费者。

如果删除 Sender 的 sleep 代码⾏,只要 Receiver 连着 hello 队列,你就会发现 hello 队列根本存不住消息,全都发送给了 Receiver,哪怕 Receiver 处理的再慢。

RabbitMQ 同时提供了拉模式,代码如下:gordon.study.rabbitmq.helloworld.ReceiverByGet.javapublic class ReceiverByGet {private final static String QUEUE_NAME = "hello";public static void main(String[] argv) throws Exception {ConnectionFactory factory = new ConnectionFactory();factory.setHost("localhost");Connection connection = factory.newConnection();Channel channel = connection.createChannel();channel.queueDeclare(QUEUE_NAME, false, false, false, null);while (true) {GetResponse resp = channel.basicGet(QUEUE_NAME, true);if (resp == null) {System.out.println("Get Nothing!");LISECONDS.sleep(1000);} else {String message = new String(resp.getBody(), "UTF-8");System.out.printf(" [ %2$s<===](%1$s) %3$s\n", "Receiver", QUEUE_NAME, message);LISECONDS.sleep(500);}}}}代码第14⾏通过 basicGet ⽅法,主动去第⼀个参数指定的队列(hello队列)尝试获取⼀个消息,这是⼀个⾮阻塞⽅法,当从队列中获取消息失败时,会返回 null,成功则返回 GetResponse 实例。

MQ的基本概念

MQ的基本概念

MQ的基本概念-ZT1) 队列管理器队列管理器是MQ系统中最上层的一个概念,由它为我们提供基于队列的消息服务。

2) 消息Messaging means that programs communicate with each other by sending data in messages and not by calling each other directly.在MQ中,我们把应用程序交由MQ传输的数据定义为消息,我们可以定义消息的内容并对消息进行广义的理解,比如:用户的各种类型的数据文件,某个应用向其它应用发出的处理请求等都可以作为消息。

消息有两部分组成:消息描述符(Message Discription或Message Header),描述消息的特征,如:消息的优先级、生命周期、消息Id等;消息描述符(MQMD)也称消息头,应用程序发送信息时,指定要发送的一个应用数据及控制信息MQSeries将控制信息组织成一个MQMD结构加到应用数据上,从而构成一个消息。

MQMD包括如下结构成员:消息类型(MsgType)(1)报文消息(Datagram)不要求响应(2)请求消息(Request)要求响应的消息(3)响应消息(Reply)请求消息的响应消息(4)报告消息(Report)描述时间如发生错误的消息实效时间(Expiry)由应用程序指定,消息在传输过程中、保存在队列中或处理时由队列管理器或应用程序逐步递减。

到零时,由队列管理器负责删除。

优先级(Priority)应用程序指定持续性(Persistence)在队列管理器故障时不会丢失,由消息日至恢复。

消息标识(MsgId)由应用程序或队列管理器生成。

相关标识(CorrelId)用于把一个消息和另一个消息联系起来的标识,由应用程序或队列管理器生成。

应用标识数据(ApplIdentityData)由应用程序将消息放入队列指定。

消息的最大长度为100兆。

WebSphere+MQ入门培训教程()

WebSphere+MQ入门培训教程()

WebSphere+MQ入门培训教程()WebSphere MQ是一款IBM出品的消息队列软件,它利用多个操作系统之间的消息通讯,支持多种编程语言,提供了不同的API。

在整个面向服务的体系结构中,它可以提供业务过程和各个系统之间的可靠消息传递。

本篇文档将介绍如何使用WebSphere MQ,包括启动、安装、配置等方面。

1.环境准备在开始使用WebSphere MQ之前,您需要准备一个能够运行WebSphere MQ的环境,建议使用具有一定编程基础的Linux系统。

同时,您还需要将WebSphere MQ应用程序下载到本地机器上,并且在安装前进行解压。

在成功解压后,您需要按照提供的安装向导进行WebSphere MQ的安装。

2.启动和关闭WebSphere MQ应用程序要启动WebSphere MQ,您可以运行命令:mqm启动MQ 队列管理器,mqsc启动MQSC控制台,amqss启动SSL服务,等等。

要关闭WebSphere MQ服务,您可以使用以下命令:·停止MQ队列管理器:输入命令endmqm -iQUEUE_MANAGER_NAME;·停止MQSC控制台: 键入exit。

·停止SSL服务:输入命令:endmqssl。

3.配置和管理WebSphere MQ为了保证WebSphere MQ可以正常运行,您需要进行一些配置和管理工作。

以下是基本配置和管理任务的示例。

3.1 创建本地队列管理器您需要创建一个本地队列管理器,为应用程序提供基本消息队列服务。

3.2 创建本地队列您需要创建一个本地队列,以便您能够接收和发送消息,用于测试WebSphere MQ的基本消息队列功能。

3.3创建远程队列管理器当您打算在不同的网络内使用WebSphere MQ时,您需要创建一个远程队列管理器,以便可以跨网络访问。

3.4 连接到WebSphere MQ控制台您可以通过WebSphere MQ控制台来管理WebSphere MQ的基本配置,创建和管理队列和队列管理器,设置连接管理器,等等。

MQ入门笔记

MQ入门笔记

MQ入门笔记目录MQ入门笔记 (1)一、简单的例子 (2)(一)将消息发送至本地队列 (2)(二)将消息发送至远程队列 (3)二、队列种类 (5)(一)本地队列 (5)(二)别名队列 (6)(三)远程队列 (6)(四)模型队列 (6)三、通道配置 (7)(一)Sender—Receiver (7)(二)Server—Receiver (7)(三)Server—Requester (7)(四)Sender—Requester (7)(五)自动启动通道 (7)一、简单的例子(一)将消息发送至本地队列介绍了如何在本地独立安装(该安装不与任何其它WebSphere MQ 的安装进行通信链接)上设置队列管理器QM_APPLE和队列Q1。

在设置了这些对象之后,您将使用已提供的程序amqsput把测试消息放入队列,并且使用另一个程序amqsget来验证是否已接收到该测试消息。

1.创建队列管理器1.启动WebSphere MQ 资源管理器。

2.在导航器视图中,右键单击队列管理器文件夹,然后单击新建> 队列管理器。

此时会打开创建队列管理器向导。

3.在队列管理器名称字段中,输入QM_APPLE。

4.选中设置为缺省队列管理器复选框。

5.单击下一步两次以转至向导的步骤3。

6.确保选中启动队列管理器复选框。

7.确保选中自动启动队列管理器复选框。

8.单击下一步以转至向导的步骤4。

9.确保选中创建配置用于TCP/IP 的侦听器复选框。

10.如果完成按钮不可用,则在侦听端口号字段中输入另一个端口号。

如果当前值为1414,则尝试输入1415或1416。

11.单击完成。

2.创建本地队列1.在导航器视图中,展开队列管理器文件夹。

2.展开队列管理器QM_APPLE。

3.右键单击队列文件夹,然后单击新建> 本地队列...。

此时会打开新建本地队列向导。

4.在名称字段中,输入Q1。

5.单击完成新队列Q1将显示在内容视图中,如果内容视图中未显示该队列,请单击位于内容视图顶部的“刷新”按钮。

MQ语言简单说明与教程

MQ语言简单说明与教程

MQ语言简单说明与教程关键字:programtrader MT4 EA MQ MQLⅡ本文来自:程序化交易者() 详细出处参考:/a/MT4/2010/0913/572_3.html“人工智能系统”是一允许客户策划自己的投资交易战略的具有革新性的工具。

人工智能系统是使交易过程操作自动化,使客户从实时市场监控的繁重公事解放出来的系统。

许多专业客户使用多重交易系统以便在不同市场多变的环境下操作。

通常他们在一些知名的分析软件包,如MetaStock 、TradeStation.中撰写和检验他们的投资交易战略。

有了人工智能系统,你就可以将你的真实账户同交易系统产生的信号联系起来,即通过跟踪和管理你任一时点的未平仓合约、下单和止损的记录来建立这种联系。

什么是人工智能系统呢?是用专业的MetaQuotes语言编写的于特定图表联系的自动交易系统(ATS)。

它不仅告知客户交易时机,还自动执行交易账户的交易并将信号直发送到交易服务器。

同大多数IT系统一样,人工智能系统还以历史记录以及表上所反映的交易进出点来测试投资交易战略。

另外,人工智能系统的执行代码是与源程序正文分开保存的。

这种安排确保客户信息的保密性不受爱打听的人的影响。

编写你自己的人工智能系统程序是非常容易的,你不必是专业的程序员,你只要学会一非常简单的语言:MQLⅡ,即便是不懂得如何编写自己的系统程序人通常也可以雇佣他所熟识的精通编程的人来编,这些人可能仅需要不超过一个小时的时间来掌握编程和操作方法。

这里有许多不同的 MetaStock 和 TradeStation 的客户制定的投资交易战略,其中大多数能较容易的转化成MQLⅡ语言,这使用户能吸取以往经验。

在本页就有一些可供下载的“人工智能系统”版本。

环球银行交易平台将人工智能系统设为 *.mql (源程序档用此扩展名)和 *.exp (操作代码用此扩展名)文件存于程序的根目录下的子目录。

客户可以通过 NAVIGATORL浏览窗口管理操作多个(不限数量)的“人工智能系统”。

MQ基础知识及操作指南

MQ基础知识及操作指南

MQ通讯机制一.MQ基本操作MQ中有几个很重要的组件:队列管理器(QueueManager)、队列(Queue)和通道(Channel)。

其基本的操作方法如下:创建队列管理器crtmqm –q QMgrName-q是指创建缺省的队列管理器删除队列管理器dltmqm QmgrName启动队列管理器strmqm QmgrName如果是启动默认的队列管理器,可以不带其名字停止队列管理器endmqm QmgrName 受控停止endmqm –i QmgrName 立即停止endmqm –p QmgrName 强制停止显示队列管理器dspmq –m QmgrName运行MQSeries命令runmqsc QmgrName如果是默认队列管理器,可以不带其名字往队列中放消息amqsput QName QmgrName如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字从队列中取出消息amqsget QName QmgrName如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字启动通道runmqchl –c ChlName –m QmgrName启动侦听runmqlsr –t TYPE –p PORT –m QMgrName停止侦听endmqlsr -m QmgrNameMQSeries命令定义死信队列DEFINE QLOCAL(QNAME) DEFPSIST(YES) REPLACE设定队列管理器的死信队列ALTER QMGR DEADQ(QNAME)定义本地队列DEFINE QL(QNAME) REPLACE定义别名队列DEFINE QALIAS(QALIASNAME) TARGQ(QNAME)远程队列定义DEFINE QREMOTE(QRNAME) +RNAME(AAA) RQMNAME(QMGRNAME) +XMITQ(QTNAME)定义模型队列DEFINE QMODEL(QNAME) DEFTYPE(TEMPDYN)定义本地传输队列DEFINE QLOCAL(QTNAME) USAGE(XMITQ) DEFPSIST(YES) +INITQ(SYSTEM.CHANNEL.INITQ)+PROCESS(PROCESSNAME) REPLACE创建进程定义DEFINE PROCESS(PRONAME) +DESCR(‘STRING’)+APPLTYPE(WINDOWSNT)+APPLICID(’ runmqchl -c SDR_TEST -m QM_ TEST’)其中APPLTYPE的值可以是:CICS、UNIX、WINDOWS、WINDOWSNT等创建发送方通道DEFINE CHANNEL(SDRNAME) CHLTYPE(SDR)+CONNAME(‘100.100.100.215(1418)’) XMITQ(QTNAME) REPLACE 其中CHLTYPE可以是:SDR、SVR、RCVR、RQSTR、CLNTCONN、SVRCONN、CLUSSDR 和CLUSRCVR。

MQ配置指引培训

MQ配置指引培训

用于发送报文的实时队列 远程队列
PBC.EXT.BATCH.IN
用于发送报文的批量队列 远程队列
PBC.<节点代码>.ONLINE.OUT
用于接收报文的实时队列 本地队列
PBC.<节点代码>.BATCH.OUT
用于接收报文的批量队列 本地队列
说明:其中<节点代码>项 为 征收机关或商业银行的节点代码
• 本地队列创建语法(实时)
– DEFINE QLOCAL (‘PBC. 0000.ONLINE.OUT’) + – LIKE(SYSTEM.DEFAULT.LOCAL.QUEUE) + – REPLACE SHARE USAGE(NORMAL) + – DEFPSIST(NO) + – CLUSTER(‘‘) + – MAXMSGL(41943040) + – MAXDEPTH(1000000) + – DESCR(‘‘)
对于网间互联平台的传输队列,作为转发税务或商行、TIPS系统发起消息的 暂存队列。因此,本段中的机构标识用税务或商行的节点代码或TIPS系统的 简称“TIPS”。 通信方式:标识消息的通信方式,其中ONLINE代表实时通信,BATCH 代 表批量通信;
用途 :IN 标识该队列的报文发向TIPS系统,OUT标识该队列的报文发向税 务或商行,TRAN标识该队列的用途为传输队列
5
2020/7/22
WebShpere MQ 配置指引培训
队列管理器命名规范
• MQ主机IP地址
– 在系统工程实施(部署)阶段互为提供
• MQ侦听端口配置要求
– 建议统一使用9009 端口
• MQ CCSID(字符集)设置要求

MQ基础及应用

MQ基础及应用

应用和 MQ接口 MQ接口
19
MQ相关对象状态(realtime)
队列管理器
• 队列管理器状态 • 队列管理器响应时间 • 连接数 • 队列深度 • 打开输入输出计数 • 队列PUT和GET状态 • 通道状态
队列
通道
侦听器 群集 错误日志
MQSeries®
2012-4-19
• 侦听状态 • 群集状态 • 共享队列 • 日志是否有报错 • 是否有FDC产生
MQSeries®
2012-4-19 31
MQI回顾
MQI(消息队列接口 有下列组成部分: 消息队列接口)有下列组成部分 消息队列接口 有下列组成部分: 函数接口:应用程序通过函数可以访问队列管理器和它的部件。 数据结构:应用程序使用提供的数据接口来是实现把数据传递给队列管理器, 或从队列管理器中获得数据。 基本数据类型:也是用来实现从队列管理器传递数据,或从队列管理器中获得 数据。 MQI通道 通道 MQI通道是WebSphere MQ 客户端和服务器上的队列管理器的通信的通道。 一个MQI通道可以把一个客户端连接到单个队列管理器,MQI通道有两种类型, 它们定义了双向的MQI通道。 客户器连接通道(Client-connection channel)在客户端配置 服务器连接通道(Server-connection channel)在服务器端配置 MQSeries®
MQSeries®
2012-4-19 9
消息通道
消息通道分类
消息通道的定义可以分为以下6种类型:
发送通道(Sender)
接收通道(Receiver)
群集发送通道(Cluster sender)
请求器通道(Requester) 服务器通道(Server)

IBM MQ 9.1.x 快速入门指南说明书

IBM MQ 9.1.x 快速入门指南说明书

IBM MQVersion 9.1.x Quick Start GuideUse this guide to get started with IBM MQ Version 9.1.x Continuous DeliveryNational Language Version:The Quick Start Guide is available in other languages from the Quick Start Guide eImage.Product overviewIBM ®MQ is robust messaging middleware that simplifies and accelerates the integration of diverse applications and business data across multiple platforms. IBM MQ facilitates the assured, secure and reliable exchange of information betweenapplications, systems, services and files by sending and receiving message data via messaging queues, thereby simplifying the creation and maintenance of business applications. It delivers Universal Messaging with a broad set of offerings to meet enterprise-wide messaging needs, and can be deployed across a range of different environments including on-premise, in cloud environments and supporting hybrid cloud deployments.IBM MQ supports a number of different application programming interfaces (APIs) including Message Queue Interface (MQI),Java ™Message Service (JMS), .NET, IBM MQ Light, MQTT, and the messaging REST API.For more information about downloading the product IBM Passport Advantage, see Downloading IBM MQ Version 9.1.(https:///support/docview.wss?uid=swg24042009) and the Passport Advantage and Passport Advantage Express (https:///software/passportadvantage/) website for more information.Product documentation for all supported versions of IBM MQ is available through IBM Knowledge Center(https:///support/knowledgecenter/SSFKSJ). Specifically, the documentation for IBM MQ Version 9.1.x Continuous Delivery releases is published as part of the IBM MQ Version 9.1.x product documentation(https:///support/knowledgecenter/SSFKSJ_9.1.0/com.ibm.mq.helphome.v91.doc/WelcomePagev9r1.htm)in IBM Knowledge Center.Service and support information is provided in the documentation.Information about how to use MQ Explorer can be accessed either from within MQ Explorer or in the product documentation.3Step 3: Review the installation architectureIBM MQ architectures range from simple architectures that use a single queue manager, to more complex networks of interconnected queue managers. For more information about planning your IBM MQ architecture, see the Planning section of the product documentation in IBM Knowledge Center (https:///support/knowledgecenter/en/SSFKSJ_9.1.0/com.ibm.mq.pla.doc/q004690_.htm).For links to additional information, see the IBM MQ information roadmap in IBM Knowledge Center(https:///support/knowledgecenter/en/SSFKSJ_9.1.0/com.ibm.mq.pro.doc/q123810_.htm).IBM®4Step 4: Install the productFor installation instructions for IBM MQ on all supported platforms, and for details of the hardware and softwareconfigurations that are required, see the Installing section of the product documentation in IBM Knowledge Center (https:///support/knowledgecenter/en/SSFKSJ_9.1.0/com.ibm.mq.ins.doc/q008250_.htm).started quickly.For more tutorials to help you get started with IBM MQ, see LearnMQ (https:///messaging/learn-mq/) on the IBM Developer website.More informationFor more information about IBM MQ, see the following resources:IBM FAQ for Long Term Support and Continuous Delivery releasesFrom IBM MQ Version 9.0, IBM MQ introduced a Continuous Delivery (CD) support model. Following the initialrelease of a new version, new function and enhancements are made available by incremental updates within thesame version and release. There is also a Long Term Support release available for deployments that requiresecurity and defect fixes only. For more information, see IBM MQ FAQ for Long Term Support and ContinuousDelivery releases (https:///support/docview.wss?uid=swg27047919).Online product readme fileThe latest version of the online product readme file is available on the IBM MQ product readmes web page(https:///support/docview.wss?rs=171&uid=swg27006097).IBM Support informationSupport information includes the following resources:v IBM Support web page (https:///support/home/)v IBM Support Assistant (https:///software/support/isa/)v Social Media Channels within Hybrid Cloud Technical Support (https:///support/docview.wss?uid=swg21410956#2)IBM MQ Version 9.1.x Licensed Materials - Property of IBM. © Copyright IBM Corp. 2006, 2018. U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. IBM, the IBM logo, , and Passport Advantage are trademarks or registered trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Java and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its affiliates. Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at “Copyright and trademark information” (/legal/copytrade.shtml).Part Number:CNV69MLPrinted in Ireland。

RabbitMQ入门到精通_余胜军版笔记

RabbitMQ入门到精通_余胜军版笔记

RabbitMQ⼊门到精通_余胜军版笔记原视频链接:MQ架构设计原理什么是消息中间件消息中间件基于队列模型实现异步/同步传输数据作⽤:可以实现⽀撑⾼并发、异步解耦、流量削峰、降低耦合度。

在了解中间件之前,我们先了解⼀下什么是同步?⾸先我们想⼀下,两个公司之间如果有互相调⽤接⼝的业务需求,如果没有引⼊中间件技术,是怎么实现的呢?⽤户发起请求给系统A,系统A接到请求直接调⽤系统B,系统B返回结果后,系统A才能返回结果给⽤户,这种模式就是同步调⽤。

所谓同步调⽤就是各个系统之间互相依赖,⼀个系统发送请求,其他系统也会跟着依次进⾏处理,只有所有系统处理完成后对于⽤户来讲才算完成了⼀次请求。

只要其他系统出现故障,就会报错给⽤户。

那么引⼊中间件后,是如何做到异步调⽤的呢?⽤户发起请求给系统A,此时系统A发送消息给MQ,然后就返回结果给⽤户,不去管系统B了。

然后系统B根据⾃⼰的情况,去MQ中获取消息,获取到消息的时候可能已经过了1分钟甚⾄1⼩时,再根据消息的指⽰执⾏相应的操作。

那么想⼀想,系统A和系统B互相之间是否有通信?这种调⽤⽅式是同步调⽤吗?系统A发送消息给中间件后,⾃⼰的⼯作已经完成了,不⽤再去管系统B什么时候完成操作。

⽽系统B拉去消息后,执⾏⾃⼰的操作也不⽤告诉系统A执⾏结果,所以整个的通信过程是异步调⽤的。

说到这⾥,我们可以做个总结,消息中间件到底是什么呢?其实消息中间件就是⼀个独⽴部署的系统。

可以实现各个系统之间的异步调⽤。

当然它的作⽤可不⽌这些,通过它可以解决⼤量的技术痛点,我们接下来会进⾏介绍。

消息中间件,总结起来作⽤有三个:异步化提升性能、降低耦合度、流量削峰。

异步化提升性能先来说说异步化提升性能,上边我们介绍中间件的时候已经解释了引⼊中间件后,是如何实现异步化的,但没有解释具体性能是怎么提升的,我们来看⼀下下边的图。

没有引⼊中间件的时候,⽤户发起请求到系统A,系统A耗时20ms,接下来系统A调⽤系统B,系统B耗时200ms,带给⽤户的体验就是,⼀个操作全部结束⼀共耗时220ms。

mq的使用案例

mq的使用案例

mq的使用案例
MQ是一种高效的消息队列系统,能够在分布式系统中传递大量的消息。

下面是MQ的使用案例:
1. 在电商平台中,MQ被用来处理订单的支付和物流信息。

当买家下单后,订单信息会被发送给MQ,然后支付系统和物流系统会从MQ中读取订单信息进行处理,以保证订单的正常交付。

2. 在游戏开发中,MQ被用来处理玩家之间的交互信息。

当玩家进行游戏时,他们会产生很多互动信息,如聊天信息、游戏操作信息等。

通过MQ,这些信息可以被快速地传递给其他玩家,以实现游戏的实时互动。

3. 在金融行业中,MQ被用来传递交易信息和市场数据。

当投资者进行交易时,他们需要快速地获取市场数据和交易信息,以进行决策。

MQ可以提供高效的消息传递机制,帮助投资者及时获取所需信息。

总之,MQ作为一种高效的消息队列系统,被广泛地应用于各个行业中,以帮助人们快速地传递信息,提高工作效率。

- 1 -。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MQ通讯机制一.MQ基本操作MQ中有几个很重要的组件:队列管理器(QueueManager)、队列(Queue)和通道(Channel)。

其基本的操作方法如下:创建队列管理器crtmqm –q QMgrName-q是指创建缺省的队列管理器删除队列管理器dltmqm QmgrName启动队列管理器strmqm QmgrName如果是启动默认的队列管理器,可以不带其名字停止队列管理器endmqm QmgrName 受控停止endmqm –i QmgrName 立即停止endmqm –p QmgrName 强制停止显示队列管理器dspmq –m QmgrName运行MQSeries命令runmqsc QmgrName如果是默认队列管理器,可以不带其名字往队列中放消息amqsput QName QmgrName如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字从队列中取出消息amqsget QName QmgrName如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字启动通道runmqchl –c ChlName –m QmgrName启动侦听runmqlsr –t TYPE –p PORT –m QMgrName停止侦听endmqlsr -m QmgrNameMQSeries命令定义死信队列DEFINE QLOCAL(QNAME) DEFPSIST(YES) REPLACE设定队列管理器的死信队列ALTER QMGR DEADQ(QNAME)定义本地队列DEFINE QL(QNAME) REPLACE定义别名队列DEFINE QALIAS(QALIASNAME) TARGQ(QNAME)远程队列定义DEFINE QREMOTE(QRNAME) +RNAME(AAA) RQMNAME(QMGRNAME) +XMITQ(QTNAME)定义模型队列DEFINE QMODEL(QNAME) DEFTYPE(TEMPDYN)定义本地传输队列DEFINE QLOCAL(QTNAME) USAGE(XMITQ) DEFPSIST(YES) +INITQ(SYSTEM.CHANNEL.INITQ)+PROCESS(PROCESSNAME) REPLACE创建进程定义DEFINE PROCESS(PRONAME) +DESCR(‘STRING’)+APPLTYPE(WINDOWSNT)+APPLICID(’ runmqchl -c SDR_TEST -m QM_ TEST’)其中APPLTYPE的值可以是:CICS、UNIX、WINDOWS、WINDOWSNT等创建发送方通道DEFINE CHANNEL(SDRNAME) CHLTYPE(SDR)+CONNAME(‘100.100.100.215(1418)’) XMITQ(QTNAME) REPLACE 其中CHLTYPE可以是:SDR、SVR、RCVR、RQSTR、CLNTCONN、SVRCONN、CLUSSDR 和CLUSRCVR。

创建接收方通道DEFINE CHANNEL(SDR_ TEST) CHLTYPE(RCVR) REPLACE创建服务器连接通道DEFINE CHANNEL(SVRCONNNAME) CHLTYPE(SVRCONN) REPLACE显示队列的所有属性DISPLAY QUEUE(QNAME) [ALL]显示队列的所选属性DISPLAY QUEUE(QNAME) DESCR GET PUTDISPLAY QUEUE(QNAME)MAXDEPTH CURDEPTH显示队列管理器的所有属性DISPLAY QMGR [ALL]显示进程定义DISPLAY PROCESS(PRONAME)更改属性ALTER QMGR DESCR(‘NEW DESCRIPTION’)ALTER QLOCAL(QNAME) PUT(DISABLED)ALTER QALIAS(QNAME) TARGQ(TARGQNAME)删除队列DELETE QLOCAL(QNAME)DELETE QREMOTE(QRNAME)清除队列中的所有消息CLEAR QLOCAL(QNAME)修改MQ的字符集(437,1381,891)CCSID:437 = ASCII/GB2312 .CCSID:500 = EBCDIC/IBM935.CCSID:1381 = UNICODErunmqsc 队列管理器名称alter qmgr ccsid(437)end二.配置一个能够通信的远程连接以上讲述了MQ的基本命令操作,但只知道这些是没有实际意义的。

MQ的最终目的是实现远程通信,所以下面就以一个具体的例子来说明如何实现远程连接。

这个例子的目的是建立可以实现消息传递的一对MQ服务器,它们分别基于NT和UNIX平台。

首先在NT端建一队列管理器crtmqm –q QM_NT启动队列管理器strmqm QM_NT运行MQ控制台命令runmqsc QM_NT创建死信队列DEFINE QL(NT.DEADQ) DEFPSIST(YES) REPLACE更改队列管理器属性,设置其死信队列ALTER QMGR DEADQ(NT.DEADQ)创建进程定义DEFINE PROCESS(P_NT)+APPLTYPE(WINDOWSNT)+APPLICID(’ runmqchl -c SDR_NT -m QM_NT’)创建本地传输队列DEFINE QL(QT_NT) USAGE(XMITQ) DEFPSIST(YES) +INITQ(SYSTEM.CHANNEL.INITQ)+PROCESS(P_NT) REPLACE创建远程队列定义,对应于UNIX机器上的本地队列Q_UNIX,传输队列为QT_NTDEFINE QREMOTE(QR_NT)+RNAME(Q_UNIX) RQMNAME(QM_UNIX)+XMITQ(QT_NT)创建发送方通道,其传输队列为QT_NT,远程主机地址为10.10.10.2,侦听端口为1414DEFINE CHANNEL(SDR_NT) CHLTYPE(SDR)+CONNAME(‘10.10.10.2(1414)’) XMITQ(QT_NT) REPLACE 创建服务器连接通道DEFINE CHANNEL(S_NT) CHLTYPE(SVRCONN) REPLACE在UNIX端创建队列管理器crtmqm –q QM_UNIX启动队列管理器strmqm QM_UNIX添加侦听程序修改/etc/services文件,加入一行:MQSeries 1414/tcp #MQSeries channel listener修改/etc/inetd.conf文件,加入一行(启动侦听程序)MQSeries stream tcp nowait mqm /usr/lpp/mqm/bin/amqcrsta amqcrsta –mQM_UNIX运行以下命令,以使修改起作用refresh –s inetd运行MQ控制台命令runmqsc QM_UNIX创建死信队列DEFINE QL(UNIX.DEADQ) DEFPSIST(YES) REPLACE更改队列管理器属性,设置其死信队列ALTER QMGR DEADQ(UNIX.DEADQ)创建接收方通道,其名字必须与远程发送方相同DEFINE CHANNEL(SDR_NT) CHLTYPE(RCVR) REPLACE创建本地队列DEFINE QL(Q_UNIX) DEFPSIST(YES) REPLACE创建服务器连接通道DEFINE CHANNEL(S_UNIX) CHLTYPE(SVRCONN) REPLACE 经过以上操作之后,远程连接的配置工作完成。

接下来需要验证配置是否正确。

在NT端启动发送方通道runmqchl –c SDR_NT –m QM_NT 或 start chl(SDR_NT)从NT端发送消息到UNIX端amqsput QR_NT QM_NT在UNIX端接收消息/usr/mqm/samp/bin/amqsget Q_UNIX QM_UNIX若能收到消息,说明配置成功。

另,在NT下一般情况下在建立队列管理器时会自动建立侦听器,启动队列管理器时则会自动启动侦听程序。

当然也可以手动配置侦听程序。

修改\winnt\system32\drivers\etc\services文件,在文件中加入一行: MQSeries 1414/tcp #MQSeries channel listener启动侦听程序runmqlsr –t tcp –p 1414 –m QM_NT以上说明了怎样建立简单的单向传输网络。

消息从NT端传送到UNIX端。

建立从UNIX端到NT端的远程连接和以上相仿,要建立双向的传输网络也是同样的道理。

三.配置JNDI用JMS实现消息的发送和接收时,经常会用到JNDI。

因为JNDI这种方式比较灵活,对于编程也比较简单。

在安装了MQSeries Client forJava之后,在\java\bin目录下找到JMSAdmin.config文件。

该文件主要用来说明Context的存储方式及存储地址,对应于文件中的两个参数INITIAL_CONTEXT_FACTORY和PROVIDER_URL。

典型的JMSAdmin.config文件内容如下:#INITIAL_CONTEXT_FACTORY=com.sun.jndi.ldap.LdapCtxFactoryINITIAL_CONTEXT_FACTORY=com.sun.jndi.fscontext.RefFSContextFact ory#INITIAL_CONTEXT_FACTORY=InitialContextFa ctory##PROVIDER_URL=ldap://polaris/o=ibm,c=usPROVIDER_URL=file:/d:/temp#PROVIDER_URL=iiop://localhost/#SECURITY_AUTHENTICATION=noneINITIAL_CONTEXT_FACTORY表示JMSAdminTool使用的服务提供商。

当前有三种受支持的值。

com.sun.jndi.ldap.LdapCtxFactory用于LDAP,如果使用它就必须安装一个LDAP服务器。

com.sun.jndi.fscontext.RefFSContextFactory用于文件系统上下文,它只需要使用者提供存放上下文的文件路径。

InitialContextFactory是专门为websphere提供的,它需要和websphere的CosNaming资源库一起使用。

相关文档
最新文档