我的MQ笔记
1、安装IBM MQ
1.1、安装先决条件:
(1)WebSphere Eclipse Platform V3.01
(2)为Windows域用户配置WebSphere MQ用户
1.2、安装程序:
(1)接受协议:
(2)选择安装类型为‘定制’:
(3)更改程序文件夹位置:
(4)数据文件夹位置:
(5)IBM Global Security Kit文件夹位置:
(6)日志文件夹位置:
(7)将各功能选项全部安装,如图:(其中MQ资源管理器是默认安装的)
(8)开始安装
(9)安装完毕后,退出系统;
1.3、安装MQ补丁:
(1)安装补丁前需要做以下动作:
Endmqm -p 队列管理器名称
Endmqlsr -m 队列管理器名称
停止MQ服务
(2)MQ补丁安装完成后,它类似Windows补丁,可手动移除补丁,如图:
2、IBM MQ对象介绍
2.1、消息:
通信程序使用消息来交换数据,发送程序如果构造一条消息,则该消息应包含:
- 要发送的数据
- 消息头(控制信息,例如:消息标识和返回地址)
MQ传递的消息有两部分组成:消息描述符(MessageDescriptor)和应用数据(ApplicationData)。默认最大传递的消息大小是4MB,可以根据需要进行设置,最大可到100MB。
2.2、队列:
队列是消息在被程序接收之前的存储位置,发送程序将消息放到适当的队列中,当接收程序就绪时,它就从队列中获取消息。
有四种类型:本地队列(LocalQueue)、远程队列(RemoteQueue)、别名队列(AliasQueue)和模型队列(ModelQueue),最常用到的是本地队列和远程队列。
2.3、通道:
提供从一个队列管理器到其他队列管理器的数据传输路径。通道类型有若干种,其中常用的是发送方通道(SenderChannel)和接收方通道(ReceiverChannel)。
2.4、队列管理器:
每台主管队列的计算机都需要队列管理器。每个队列管理器都具有唯一的名称并且管理在该队列管理器上创建的队列(这些队列称为本地队列)。
每个本地队列也都具有名称,该名称与它的队列管理器的名称一起提供了消息可以被发送到的唯一地址。
2.5、MQ资源管理器:
WebSphere MQ 资源管理器可以管理在 Windows、Unix、Linux、OS/400、z/Series 和其它平台上运行的远程队列管理器。
3、MQ mqsc命令格式:
MQSC 命令 DEFINE(用来定义对象,如队列)、DISPLAY(用来显示对象属性,如队列中的消息的数目)和 CLEAR(用来从队列中除去消息)。具体说明见下表:
3.1、创建队列管理器
crtmqm –q QMgrName
-q是指创建缺省的队列管理器
Eg: crtmqm –q sunny
3.2、删除队列管理器
dltmqm QmgrName
eg: dltmqm sunny
3.3、启动队列管理器
strmqm QmgrName
如果是启动默认的队列管理器,可以不带其名字
Eg: Strmqm QM_8
3.4、停止队列管理器
(1)endmqm QmgrName 受控停止
(2)endmqm –i QmgrName 立即停止 eg: endmqm -i QM_8
(3)endmqm –p QmgrName 强制停止 eg: endmqm -p QM_8
3.5、显示队列管理器
dspmq –m QmgrName
eg: dspmq –m QM_0
C:\Documents and Settings\sfexpress>dspmq -m QM_NT
QMNAME(QM_NT) STATUS(正在运行)
3.6、往队列中放消息
amqsput QName QmgrName-------------------将输入的信息存入QName队列中
如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字
eg:amqsput RQ_8 QM_0 (往远程队列中存放消息)
3.7、从队列中取出消息
amqsget QName QmgrName -------------------从QName队列中取出消息
如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字
Eg: amqsget LQ_8 QM_8 (从本地队列中取消息)
3.8、启动通道
runmqchl –c ChlName –m QmgrName
eg:runmqchl -c 8.0 -m QM_8 (启动QM_8队列管理器下的8.0通道)
3.9、启动侦听
runmqlsr –t TYPE –p PORT –m QMgrName
3.10、停止侦听
endmqlsr -m QmgrName
eg:endmqlsr -m QM_8-------停止队列管理器QM_8上的侦听器
3.11、运行MQSeries命令
runmqsc QmgrName
如果是默认队列管理器,可以不带其名字
eg:runmqsc QM_8
(1)定义死信队列
DEFINE QLOCAL(QNAME) DEFPSIST(YES) REPLACE
Eg: define QLOCAL(Q_LOCAL) DEFPSIST(YES) REPLACE---新增一条本地队列Q_LOCAL,设定持久性(由参数DEFPSIST确定)
设定队列管理器的死信队列
ALTER QMGR DEADQ(QNAME)
Eg:alter QMGR DEADQ(Q_LOCAL)----将Q_LOCAL设置为系统默认队列管理器的死信队列;
(2)定义本地队列
DEFINE QL(QNAME) REPLACE ------死信队列为本地队列的一种形式
(3)定义别名队列
DEFINE QALIAS(QALIASNAME) TARGQ(QNAME)
(4)远程队列定义
DEFINE QREMOTE (QRNAME) RNAME (AAA) RQMNAME (QMGRNAME) XMITQ(QTNAME)
说明: QREMOTE (QRNAME)---指本地的远程队列名称
RNAME (AAA)----指的是接收端本地队列名称
RQMNAME (QMGRNAME) -----接收端队列管理器名称
XMITQ(QTNAME)---------本地传输队列名称
(5)定义本地传输队列
DEFINE QLOCAL(QTNAME) USAGE(XMITQ) DEFPSIST(YES) INITQ(SYSTEM.CHANNEL.INITQ) PROCESS(PROCESSNAME) REPLACE
Eg:
(6)创建进程定义
DEFINE PROCESS(PRONAME) DESCR(‘STRING’) APPLTYPE(WINDOWSNT) APPLICID(’ runmqchl -c SDR_TEST -m QM_ TEST’)
其中APPLTYPE的值可以是:CICS、UNIX、WINDOWS、WINDOWSNT等
(7)创建发送方通道
DEFINE CHANNEL(SDRNAME) CHLTYPE(SDR) CONNAME(‘100.100.100.215(1418)’) XMITQ(QTNAME) REPLACE
其中CHLTYPE可以是:SDR、SVR、RCVR、RQSTR、CLNTCONN、SVRCONN、CLUSSDR和CLUSRCVR。
Eg: XMITQ(QTNAME)--------代表传输队列
(8)创建接收方通道
DEFINE CHANNEL(SDR_ TEST) CHLTYPE(RCVR) REPLACE
(9)创建服务器连接通道
DEFINE CHANNEL(SVRCONNNAME) CHLTYPE(SVRCONN) REPLACE
(10)显示队列的所有属性
DISPLAY QUEUE(QNAME) [ALL]
(11)显示队列的所选属性
DISPLAY QUEUE(QNAME) DESCR GET PUT
DISPLAY QUEUE(QNAME)MAXDEPTH CURDEPTH
(12)显示队列管理器的所有属性
DISPLAY QMGR [ALL]
(13)显示进程定义
DISPLAY PROCESS(PRONAME)
(14)更改属性
ALTER QMGR DESCR(‘NEW DESCRIPTION’)
ALTER QLOCAL(QNAME) PUT(DISABLED)
ALTER QALIAS(QNAME) TARGQ(TARGQNAME)
(15)删除队列
DELETE QLOCAL(QNAME)
DELETE QREMOTE(QRNAME)
(16)清除队列中的所有消息
CLEAR QLOCAL(QNAME)
4、MQ的远程队列管理
4.1在客户机上建立服务器连接通道
在被管理客户端建立专用的‘服务器连接’通道,如下:
runmqsc QM_0
define channel(DC.SVRCONN) CHLTYPE(SVRCONN) MCAUSER('000119')
alter qmgr CCSID(1381)
endmqm -p QM_0
strmqm QM_0
strmqcsv QM_0
说明:
(1)channel(DC.SVRCONN) CHLTYPE(SVRCONN) -----表明建立的DC.SVRCONN类型为服务器连接;
(2)MCAUSER-----管理队列管理器上的操作用户在被管理队列管理器上存在并且有管理MQ的权限,需要修改服务器连接通道DC.SVRCONN的MCAUSER属性为管理队列管理器上的操作用户;
4.2在管理服务端上的操作步骤:
(1) 在标题的‘队列管理器’上点击右键,选择显示/隐藏队列管理器;
(2) 点‘添加’按钮,输入被管理客户端的队列管理器名称,如:QM_UNIX,连接方式为直接连接;
(3) 输入被管理客户端的信息,如主机名/ip地址,端口号(为被管理客户端侦听端口),服务器连接通道名称,如下:
(4) 点击完成,开始连接,连接成功后,在队列管理器中显示多出一个客户端的队列管理器,如图:
其中的服务器连接通道S_UNIX显示状态也为‘正在运行’
5、MQ对象的备份与恢复
5.1备份
1、将附件MS03.ZIP解压,DOS模式下进入MS03目录
2、备份过程:
saveqmgr –m 队列管理名 –f 文件名.tst -s
说明:
----m队列管理名
----f 备份信息将写入的文本文件
----s 系统信息不需要导出
eg:
5.2恢复
恢复过程如下:
(1)创建队列管理器:crtmqm 队列管理名
(2)启动队列管理器:strmqm 队列管理名
(3)恢复通道队列定义:runmqsc 队列管理名 < 文件名.tst > 日志文件.txt
eg: runmqsc QM_UNIX < d:\backup.tst > d:\log.txt ;
http://blog.163.com/microsunny_lin/blog/static/24266622200764112832488/
我的MQ笔记的更多相关文章
- 【mq读书笔记】消息消费队列和索引文件的更新
ConsumeQueue,IndexFile需要及时更新,否则无法及时被消费,根据消息属性查找消息也会出现较大延迟. mq通过开启一个线程ReputMessageService来准时转发commitL ...
- 【mq读书笔记】mq事务消息
关于mq食物以什么样的方式解决了什么样的问题可以参考这里: https://www.jianshu.com/p/cc5c10221aa1 上文中示例基于mq版本较低较新的版本中TransactionL ...
- 【mq读书笔记】mq读写分离机制
mq根据brokerName查找Broker地址的过程 mq根据MessageQueue查找Broker地址的唯一依据是brokerName,同一组Broker(M-S)他们的bokerName相同但 ...
- 【mq读书笔记】顺序消息
注意异常情况导致整个消费无限重试 阻塞消费 mq支持局部消息顺序消费,可以确保同一个消息消费队列中的消息被顺序消费.看下针对顺序消息在整个消费过程中做的调整: 队列负载: DefaultMQPushC ...
- 【mq读书笔记】消息过滤机制
mq支持表达式过滤和类过滤两种模式,其中表达式又分为TAG和SQL92.类过滤模式允许提交一个过滤类到FilterServer,消息消费者从FilterServer拉取消息,消息经过FilterSer ...
- 【mq读书笔记】定时消息
mq不支持任意的时间京都,如果要支持,不可避免的需要在Broker层做消息排序,加上持久化方面的考量,将不可避免地带来巨大的性能消耗,所以rocketMQ只支持特定级别的延迟消息. 在Broker短通 ...
- 【mq读书笔记】消费进度管理
从前2节可以看到,一次消费后消息会从ProcessQueue处理队列中移除该批消息,返回ProcessQueue最小偏移量,并存入消息进度表中.那消息进度文件存储在哪合适呢? 广播模式:同一个消费组的 ...
- 【mq读书笔记】消息确认(失败消息,定时队列重新消费)
接上文的集群模式,监听器返回RECONSUME_LATER,需要将将这些消息发送给Broker延迟消息.如果发送ack消息失败,将延迟5s后提交线程池进行消费. 入口:ConsumeMessageCo ...
- 【mq读书笔记】消息消费过程(钩子 失败重试 消费偏移记录)
在https://www.cnblogs.com/lccsblog/p/12249265.html中,PullMessageService负责对消息队列进行消息拉取,从远端服务器拉取消息后将消息存入P ...
随机推荐
- CMUSphinx Learn - Before you start
Before you start 开始之前 Before you start the development of the speech application, you need to consid ...
- POJ 2007 Scrambled Polygon 凸包点排序逆时针输出
题意:如题 用Graham,直接就能得到逆时针的凸包,找到原点输出就行了,赤果果的水题- 代码: /* * Author: illuz <iilluzen[at]gmail.com> * ...
- [php-pear]如何使用 PHP-PEAR安装器,以及使用 PEAR 安装扩展库
我们都知道 PHP PEAR,就是 PHP Extension and Application Respository,也就是 PHP 扩展和应用代码库. PHP 也可以通过 PEAR 安装器来进行 ...
- [javascript] javascript 实现数据滚动加载
// tpl generate var tmpl = (function (cache, $) { return function (str, data) { var fn = !/\s/.test( ...
- poj 2777 线段树的区间更新
Count Color Time Limit: 1000 MS Memory Limit: 65536 KB 64-bit integer IO format: %I64d , %I64u Java ...
- Delphi 的多线程使用已经很简单了
先看一个非多线程的例子, 代码执行时不能进行其它操作(譬如拖动窗体): {自定义方法: 在窗体上绘制...} procedure MyMethod; var i: Integer; begin ...
- AFNetworking 3.0 AFHTTPSessionManager文件下载
#import "ViewController.h" #import <AFNetworking.h> @interface ViewController () - ( ...
- B样条基函数的定义及系数的意义
原文链接:http://blog.csdn.net/tuqu/article/details/5177405 贝塞尔基函数用作权重.B-样条基函数也一样:但更复杂.但是它有两条贝塞尔基函数所没有的特性 ...
- Flask中的before_request和after_request
1.@app.before_request 在请求(request)之前做出响应 @app.before_request 也是一个装饰器,他所装饰的函数,都会在请求进入视图函数之前执行 2.@app. ...
- Python程序的打包-上传到pypi
pypi注册与配置 在pypi的官网:https://pypi.python.org/pypi 注册自己的账号激活账号之后,我们还需要将在本地配置一份文件 在用户的根目录创建文件 : .pypirc在 ...