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队列中

如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字

egamqsput   RQ_8  QM_0  (往远程队列中存放消息)

3.7、从队列中取出消息

amqsget QName QmgrName -------------------从QName队列中取出消息

如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字

Eg amqsget LQ_8 QM_8  (从本地队列中取消息)

3.8、启动通道

runmqchl –c ChlName –m QmgrName

egrunmqchl -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

如果是默认队列管理器,可以不带其名字

egrunmqsc  QM_8

(1)定义死信队列

DEFINE QLOCAL(QNAME) DEFPSIST(YES) REPLACE

Eg: define  QLOCAL(Q_LOCAL)  DEFPSIST(YES)  REPLACE---新增一条本地队列Q_LOCAL,设定持久性(由参数DEFPSIST确定)

设定队列管理器的死信队列

ALTER  QMGR  DEADQ(QNAME)

Egalter  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笔记的更多相关文章

  1. 【mq读书笔记】消息消费队列和索引文件的更新

    ConsumeQueue,IndexFile需要及时更新,否则无法及时被消费,根据消息属性查找消息也会出现较大延迟. mq通过开启一个线程ReputMessageService来准时转发commitL ...

  2. 【mq读书笔记】mq事务消息

    关于mq食物以什么样的方式解决了什么样的问题可以参考这里: https://www.jianshu.com/p/cc5c10221aa1 上文中示例基于mq版本较低较新的版本中TransactionL ...

  3. 【mq读书笔记】mq读写分离机制

    mq根据brokerName查找Broker地址的过程 mq根据MessageQueue查找Broker地址的唯一依据是brokerName,同一组Broker(M-S)他们的bokerName相同但 ...

  4. 【mq读书笔记】顺序消息

    注意异常情况导致整个消费无限重试 阻塞消费 mq支持局部消息顺序消费,可以确保同一个消息消费队列中的消息被顺序消费.看下针对顺序消息在整个消费过程中做的调整: 队列负载: DefaultMQPushC ...

  5. 【mq读书笔记】消息过滤机制

    mq支持表达式过滤和类过滤两种模式,其中表达式又分为TAG和SQL92.类过滤模式允许提交一个过滤类到FilterServer,消息消费者从FilterServer拉取消息,消息经过FilterSer ...

  6. 【mq读书笔记】定时消息

    mq不支持任意的时间京都,如果要支持,不可避免的需要在Broker层做消息排序,加上持久化方面的考量,将不可避免地带来巨大的性能消耗,所以rocketMQ只支持特定级别的延迟消息. 在Broker短通 ...

  7. 【mq读书笔记】消费进度管理

    从前2节可以看到,一次消费后消息会从ProcessQueue处理队列中移除该批消息,返回ProcessQueue最小偏移量,并存入消息进度表中.那消息进度文件存储在哪合适呢? 广播模式:同一个消费组的 ...

  8. 【mq读书笔记】消息确认(失败消息,定时队列重新消费)

    接上文的集群模式,监听器返回RECONSUME_LATER,需要将将这些消息发送给Broker延迟消息.如果发送ack消息失败,将延迟5s后提交线程池进行消费. 入口:ConsumeMessageCo ...

  9. 【mq读书笔记】消息消费过程(钩子 失败重试 消费偏移记录)

    在https://www.cnblogs.com/lccsblog/p/12249265.html中,PullMessageService负责对消息队列进行消息拉取,从远端服务器拉取消息后将消息存入P ...

随机推荐

  1. java基础-day17

    第06天 集合 今日内容介绍 u  集合&迭代器 u  增强for & 泛型 u  常见数据结构 u  List子体系 第1章   集合&迭代器 1.1  集合体系结构 1.1 ...

  2. html,css,jquery,JavaScript

    1.全选 (当点击checkall按钮时,选中所有checkbox用prop全选上)function checkAll() { $(':checkbox').prop('checked', true) ...

  3. Python自动化开发 - 进程、线程(一)

    本节内容 1.操作系统发展史 2.进程和线程 3.Python threading 模块 一.操系统发展史 手工操作(无操作系统) 1946年第一台计算机诞生--20世纪50年代中期,还未出现操作系统 ...

  4. php file_get_contents fopen 连接远程文件

    使用file_get_contents和fopen必须空间开启allow_url_fopen. 方法: 编辑php.ini,设置allow_url_fopen =true On,allow_url_f ...

  5. .net mvc 站点自带简易SSL加密传输

    因项目需要,传输数据需要加密,因此有了一些经验,现简易抽出来分享! 请求:前端cryptojs用rsa/aes 或 rsa/des加密,后端.net 解密返回后端.net用rsa/aes 或 rsa/ ...

  6. 16_python_面向对象

    一.面向对象和面向过程的区别          1.面向对象:一切以对象为中心.有相同属性和动作的结合体叫做对           优点:易维护.易复用.易扩展,由于面向对象有封装.继承.多态性的特性 ...

  7. idea 映射文件同class文件一起打包安装

    经过几天的摸索,已经能够用idea做日常的Demo了,在复习的过程中,又在学的知识,所以进度有点慢,但自己好像有点着急,为自己的效率 但是自己也是知道的,只顾速度,最后的学完的效果也不是自己想要的,所 ...

  8. web开发常用网络优化

    优化方法: 1.合并资源文件,减少HTTP请求 2.压缩资源文件减少请求大小 3.利用缓存机制,尽可能使用缓存减少请求 如何做前端路由 html5 api中的history能够让我们控制url跳转之后 ...

  9. C#6.0语言规范(七) 表达式

    表达式是运算符和操作数的序列.本章定义了操作数和运算符的语法,求值顺序以及表达式的含义. 表达式分类 表达式分类为以下之一: 一个值.每个值都有一个关联的类型. 一个变量.每个变量都有一个关联的类型, ...

  10. I/O类型

    同步和异步 synchronous  asyncronous 关注的是消息通知机制 同步:调用发出之后不会立即返回,但一旦返回,则返回即是最终结果. 异步:调用发出之后,被调用方立即返回消息,但返回的 ...