WebSphere MQ 入门指南

这是一篇入门指南。我们从最基本的概念说起;

基础概念

对于MQ,我们需要知道4个名词:队列管理器、队列、消息、通道;对于编程设计人员,通常更关心消息和队列,对于维护管理人员,通常 会更关心队列管理器和通道。

如果我们把队列管理器比作是数据库,那么队列就是其中的一张表,消息就是表中的一条记录。

队列:我们可以简单地把队列看成一个容器,用于存放消息。

队列管理器:队列管理器构建了独立的 MQ 的运行环境,它是消息队列的管理者,用来维护和管理消息队列。

消息:MQ中的最小对象;默认情况下,消息缺省可以达到 4MB。消息可以分成持久消息和非持久消息。所谓“持久”的 意思,就是在MQ 队列管理器重启动后,消息是否仍然能保持。持久的消息写入或读出队列的同时会在 Log 中记录,所以性能上比非持久消息差不少。

通道:通道则是两个队列管理器之间的一种单向的点对点的通信连接, 消息在通道中只能单向流动。队列管理器之间的通信是通过配置通道来实现 的,通道两侧的队列管理器对这个通道的相关参数应该能对应起来。在通道上可以配置不同的通信协议,这样就使得编程接口与通信协议无关。通道两端的 配置必须匹配,且名字相同,否则无法连通。

RUNMQSC:命令行交互界面管理工具;作为维护人员的我们,与MQ打交道有两种方式,一种是通过MQ提供的二进制命令工具(在mq安装目录的bin目录下),另一种方式则是通过命令行交互管理工具;这二者在功能上有很多是重合的,但并非完全可替代;

RUNMQSC是一个通用的 MQ 对象管理工具,使用 MQSC命令集可以对 MQ 对象进行

全方位的管理,也是各种管理方式最直接、最全面的一种。

RUNMQSC 运行的命令集称为 MQSC (MQ Script Command)";在 RUNMQSC 中大小写无关,所有的命令会先转换成全大写再提交执行。所以如果要 表示大小相关的字串,比如对象名,则用引号将字串包住。

输入以下命令启动MQSC命令:runmqsc [queueManagerName]

ok,概念介绍完了,下面就是通过示例来学习如何使用他们;

首先,我们需要创建队列管理,用来存放队列。有了队列管理器后,就可以创建队列;队列创建了,就可以用来放入和取出消息;

创建队列管理器

eg:创建一个名为QM_MEMDB的队列管理器:

crtmqm -q QM_MEMDB

>Directory '/var/mqm/qmgrs/QM_MEMDB' created.

所有创建的队列管理器在/var/mqm/qmgrs目录下都会有对应文件名的子目录生成;

(至于为什么是/var/mqm,这个配置在安装目录下的mq配置文件中配置samp/mqs.ini)

从这里我们可以确定,队列管理器的创建是一个持久化的操作,当MQ服务器停止后再启动时,队列管理器都还是存在的;

启动队列管理器

启动名为QM_MMEDB的队列管理器:

/opt/mqm/bin$./strmqm QM_MEMDB

>WebSphere MQ queue manager 'QM_MEMDB' started using V7.5.0.0.

(停止mq队列管理器:endmqm)

创建队列

队列及消息属于MQ的对象,MQ的对象管理一般使用mqsc命令交互工具来管理;

对于创建队列的操作,最好先写好放在一个文件里,然后调用;

eg,我们在队列管理器QM_MEMDB中定义一个TEST1队列:

vi define_memdb.tst:

define qlocal (TEST1) DEFPSIST(YES) MAXDEPTH(150000)

然后调用mqsc来创建:

/var/mqm/sh$runmqsc QM_MEMDB < define_memdb.tst > out.txt

创建的结果信息输出到out.txt:

1 : define qlocal (TEST1) DEFPSIST(YES) MAXDEPTH(150000)

AMQ8006: WebSphere MQ queue created.

One MQSC command read.

No commands have a syntax error.

All valid MQSC commands were processed.

向队列中放入消息

基本队列操作命令分成两类, 一类在 MQ Server 端运行, 它们是 amqsput、 amqsget、

amqsbcg。另一类在 MQ Client 端运行,它们是 amqsputc、amqsgetc、amqsbcgc

从Server端将消息放入队列的命令格式:

amqsput amqsput QueueName [QueueManagerName]

amqsput和 amqsputc 可以将消息放入队列中, 程序把之后的每一行标准输入作为一条独立的消息,读到 EOF 或空行时退出。注意,UNIX 上的 EOF 为 Ctrl+D。可以将标准输入重定向到文件。队列中每放入一条消息,队列深度增加一。

eg:

/var/mqm/sh$amqsput TEST1 QM_MEMDB

查看队列中放入的消息

查看队列管理器QM_MEMDB中名为TEST1的队列:

/var/mqm/sh$amqsbcg TEST1 QM_MEMDB

从队列中取出消息

amqsget 和 amqsgetc 可以将消息从队列中全部读出并显示。读空后再等待 15 秒,在这段时间内如果有新的消息到达会一并读出。强行中断该程序用 Ctrl+C 。amqsget 和 amqsgetc 执行后队列应该为空,即队列深度为零。

以上是单个服务器的单个队列管理器中完成的操作,如果需要跨队列管理器或跨机通信,我们需要MQ命令服务器和MQ监听器,当然,少不了建立通道;

MQ命令服务器

WebSphere MQ 命令服务器是队列管理器的一个组件,用来对外来的命令消息进行解释和执行。在远程管理和编程管理的应用中,需要启动命令服务器。一个队列管理器最多只有一个命令服务器,缺省情况下在创建队列管理器时由系统一并创建。

启动与停止:

strmqcsv

endmqcsv

dspmqcsv

启动后执行下,观察状态,看到正在运行:

/opt/mqm/bin$dspmqcsv QM1

WebSphere MQ Command Server Status . . : Running

MQ 监听器

WebSphere MQ 中监听器也是队列管理器的一个组件,用来监听外来的连接请求并相应

地做出反应。监听器通常需要先配置,然后才能运行,配置参数与监听器选择的通信协议有关。当然,也可以在第一次启动监听器时将配置参数传入,隐式地进行配置。一个队列管理器可以有多个监听器,分别应用于不同的通信协议或同一协议的不同参数。比如 TCP/IP 的不同端口。

通道的配置和建立下面单独拿出来讲解;

over。

更多参考

《精通 WebSphere MQ》本书讲解的MQ版本为5.3,有些老,不过操作命令都没有变化;逻辑清晰,还不错;涉及到MQ的新特性,比如发布/订阅方面,就不用看这本书了,转到参考2:

《Application Programming Reference MQV7》

Posted by: 大CC | 03DEC,2013

博客:blog.me115.com

微博:新浪微博

WebSphere MQ 入门指南【转】

WebSphere MQ 入门指南 转自 WebSphere MQ 入门指南 - 大CC - 博客园http://www.cnblogs.com/me115/p/3456407.html 这是一篇入门 ...

IBM WebSphere ESB入门指南

[TOC] 第一章 ESB介绍 本博客介绍一款ESB产品,IBM WebSphere ESB.ESB(Enterprise Service Bus)也即企业服务总线.ESB有很多产品,IBM的IBM ...

消息中间件及WebSphere MQ入门(转载)

消息队列技术是分布式应用间交换信息的一种技术.消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走.通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置.或在继续执行前不需要等待 ...

Rabbit MQ 入门指南

rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.他遵循Mozilla Public License开源协议.采用 Erlang 实现的工业级的消息队列(MQ)服务器. Ra ...

IBM WebSphere MQ 7&period;5基本用法

一.下载7.5 Trial版本 http://www.ibm.com/developerworks/downloads/ws/wmq/ 这是下载网址,下载前先必须注册IBM ID,下载完成后一路Nex ...

深入浅出 JMS&lpar;二&rpar; - ActiveMQ 入门指南

深入浅出 JMS(二) - ActiveMQ 入门指南 上篇博文深入浅出 JMS(一) – JMS 基本概念,我们介绍了消息通信的规范JMS,这篇博文介绍一款开源的 JMS 具体实现-- Active ...

【译】JWT&lpar;JSON Web Token&rpar; 入门指南

从mq服务器中获取消息命令,WebSphere MQ 入门指南相关推荐

  1. 从mq服务器中获取消息命令,MQ服务消息队列介绍

    MQ服务消息队列介绍 资源简介MQ服务器端和客户端通信浅谈 1. WebSphere MQ的服务端的安装和配置 (1)创建名为venus.queue.manager的默认队列管理器. 在DOS窗口命令 ...

  2. 【Android 异步操作】手写 Handler ( 消息队列 MessageQueue | 消息保存到链表 | 从链表中获取消息 )

    文章目录 一.MessageQueue 消息队列存储消息 二.MessageQueue 消息队列取出消息 三.消息队列完整代码 一.MessageQueue 消息队列存储消息 Message 链表 : ...

  3. java jsch shell_仅在JSch shell通道中获取特定命令的输出

    我试图在使用JSch的java中获取shell脚本的输出.执行sudo管理命令并获取脚本的输出.仅在JSch shell通道中获取特定命令的输出 Properties prop = new Prope ...

  4. 服务器维护中登录失败日语,Flutter从服务器中获取日语字符,解码错误

    我正在使用Flutter构建移动应用程序. 我需要json从服务器中获取包含日语文本的文件.返回的一部分json是: { "id": "egsPu39L5bLhx3m21 ...

  5. 服务器如何获取客户端证书,如何在Go HTTPS服务器中获取客户端证书

    我在尝试了解如何在Go Web服务器中获取客户端证书.这里是一个服务器代码:如何在Go HTTPS服务器中获取客户端证书 package main import ( "log" & ...

  6. 云服务器中获取文件代码,从云服务器中获取文件

    从云服务器中获取文件 内容精选 换一换 登录Windows操作系统的弹性云服务器时,需使用密码方式登录.因此,用户需先根据创建弹性云服务器时使用的密钥文件,获取该弹性云服务器初始安装时系统生成的管理员 ...

  7. mq服务器与客户端消息同步,使用 ActiveMQ 实现JMS 异步调用

    目录 简介 服务之间的同步调用,可以使用 HTTP 或 RPC 来完成,但并非所有的调用都需要同步,有些场景下,当客户端调用服务端时,并不需要等待服务端做出响应,此时就应该使用异步调用.异步调用的常用 ...

  8. 网五服务器在哪个文件夹,5-4-在服务器中获取和放置文件-【管理文件】-奇秀广告(奇秀网)Dreamweaver CC2018入门及Dreamweaver教程...

    如果您在协作环境中工作,则可以使用存回/取出系统在本地和远程站点之间传输文件.但是,如果只有您一个人在远程站点上工作,则可以使用"获取"和"上传"命令传输文件, ...

  9. 无法从服务器中获取信息吗,无法从服务器获取信息

    无法从服务器获取信息 内容精选 换一换 查询配额信息.GET /v2/{project_id}/os-quota-sets/{project_id}参数说明参数是否必选参数类型描述project_id ...

最新文章

  1. 第十六届全国大学生智能汽车竞赛华东赛区 承办情况汇报
  2. python可以做什么开发-python适合做什么开发_python未来发展怎么样
  3. ×××安全协议之IPsec
  4. 一行代码制作你的专属动态二维码-Python实现
  5. tensorflow中name_scope和variable_scope变量的使用
  6. vc连接mysql 查询_vc连接数据库中查询代码如何写呀 急急急!!!!!!
  7. c语言普通字符放哪里,C语言字符串的输入输出
  8. .NET开发中你可能会用到的常用方法总结(添加ing...)
  9. Python 爬虫proxy
  10. [TACL17]基于中序转移的成分句法分析
  11. linux可以使用usb无线网卡驱动,详解USB无线网卡的Linux驱动移植
  12. 软件工程 选课系统的uml类图_选课系统的UML建模
  13. (已解决)最近打开浏览器总是先打开 http://hao934.com/然后 跳转到 hao123 用各种修复无效
  14. 基于Elasticsearch 实现站内全文搜索
  15. matlab历史模拟法计算var,历史模拟法、蒙特卡罗模拟法计算VaR和ES值
  16. dede php,织梦(Dedecms){dede:php}{/dede:php}如何运用
  17. Go语言教程(二)Go语言基础编程
  18. 中国学术会议(2009)---002
  19. 美股日志|三大股票指数升金价重上1800
  20. 根据当前日期求取当年是否为闰年,当天是周几。

热门文章

  1. Android手机分辨率测试程序
  2. 怎么撤销定时说说_苹果6怎样取消定时说说
  3. 二次函数顶点坐标公式的另一种推导
  4. 启动关闭oracle命令,oracle启动关闭命令
  5. 【Charm Bracelet】题目解析~~
  6. C# 3DES加密解密算法
  7. Exchange Server 2010精讲系列课程-王进-专题视频课程
  8. #python# 来找茬
  9. ubuntu关闭防火墙命令
  10. 15.4 CVPR 2015 papers