视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MQ命令集合
2025-10-05 23:05:34 责编:小OO
文档
==================================================

---------队列管理器-------------------------------

==================================================

1、通过输入以下命令来创建名为 QM_APPLE 的缺省队列管理器: 

    crtmqm -q QM_APPLE

    此时会显示消息,告诉您已经创建了队列和缺省 WebSphere MQ 对象。 

***启动队列管理器:

通过输入以下命令来启动此队列管理器(因为新创建的队列管理器还没有启动): 

strmqm 

此时会显示一条消息,告诉您何时启动了该队列管理器。

注:如果启动指定的队列管理器则用strmqm QM_APPLE,如果是启动默认的队列管理器,可以不带其名字

-q是指创建缺省的队列管理器 

注:删除队列管理器:dltmqm QM_APPLE

**停止队列管理器 

endmqm QmgrName 受控停止 

endmqm –i QmgrName 立即停止 

endmqm –p QmgrName 强制停止 

**显示队列管理器 

dspmq –m QmgrName 

运行MQ命令 

runmqsc QmgrName 

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

注:dspmq 则是显示所有的队列管理器

==================================================

---------MQ命令-------------------------------

==================================================

运行MQ命令 

runmqsc QmgrName 

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

输入end命令来停止 MQSC:

***队列管理*****

1:创建本地队列:

define qlocal (Q1) replace

注:定义持久性队列:

DEFINE QLOCAL(QNAME) DEFPSIST (YES) REPLACE

2:往队列中放消息 

amqsput QName QmgrName 

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

比如:amqsput Q1 QM_APPLE

3:从队列中取出消息 

amqsget QName QmgrName 

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

注:在运行该命令时,不要先运行 runmqsc等。而是在普通的命令窗口

4:清除队列中的所有消息 

CLEAR QLOCAL(QNAME) 

注:该命令是运行在runmqsc命令之后

5:显示队列的所有属性 

DISPLAY QUEUE(QNAME) [ALL] 

6:删除队列 

DELETE QLOCAL(QNAME) 

DELETE QREMOTE(QRNAME) 

***传输队列管理

1:定义传输队列

DEFINE QLOCAL(Q_TRANSFER) USAGE(XMITQ)

注:Q_TRANSFER:传输队列名

下面定义一个输入队列并带触发器

DEFINE QLOCAL(Q_TRANSFER) USAGE(XMITQ) DEFPSIST(YES)  INITQ (SYSTEM.CHANNEL.INITQ) TRIGDATA (DP_RCHANNEL) REPLACE

注:

参数1:传输队列名称(Q_TRANSFER)

参数5:触发器数据(DP_RCHANNEL),也就是触发后要启动的通道。

2:在传输入队列上定义触发器

DPCIS_Q_TRANSFER:传输队列

触发器数据:DP_RCHANNEL     即:发送通道,触发时启动该通道

alter qlocal(DPCIS_Q_TRANSFER) TRIGDATA('DP_RCHANNEL') TRIGTYPE(every) TRIGGER initq('SYSTEM.CHANNEL.INITQ')

****远程队列管理

通过输入以下命令来定义远程队列定义:

define qremote (Q1) rname (Q1) rqmname(QM_APPLE) xmitq (QM_APPLE)

注:

参数1:队列名称(发送方远程队列名)

参数2:远程队列(接收方的本地接收队列名)

参数3:远程队列管理器(接收方队列管理器名)

参数4:传输队列(发送方传输队列名)

****通道管理*********

1:创建接收方通道

DEFINE CHANNEL(SDR_ TEST)  CHLTYPE(RCVR)  REPLACE 

define channel (Q_R_CHANNEL2) chltype(RCVR) replace

注:

参数1:接收方通道名称

replace:表示有该通道了替换

2:创建发送方通道 

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 (DP_RCHANNEL) chltype(SDR) conname ('10.101.2.3 (1414)') xmitq(Q_TRANSFER) replace

注:

通道名称:DP_RCHANNEL (发送方通道的名称) 

传输队列:Q_TRANSFER  (发送方传输队列的名称) 

3:启动通道

start channel (QM_ORANGE.QM_APPLE)

4:查看通道状态

    dis chs(*)

*****侦听器管理

1:定义侦听器

DEFINE LISTENER(TCPLS1) TRPTYPE(TCP) PORT(1414)  REPLACE

2:启动侦听器

start listener(TCPLS1)

3:显示侦听器信息

display listener(tcpls1)

==============================================

2、通过输入以下命令来启用 MQSC 命令: 创建本地队列

    runmqsc

    输入以下命令: 

    define qlocal (Q1)

    此时会显示消息,告诉您已经创建了队列和缺省 WebSphere MQ 对象。 

    通过输入以下命令来停止 MQSC: 

    end

注:参数1:发送发本地队列名称

3、

4、通过输入以下命令来定义接收通道: 

    define channel (QM_ORANGE.QM_APPLE) chltype (RCVR) trptype (TCP)

5、通过输入以下命令来定义发送方通道: 

    define channel (QM_ORANGE.QM_APPLE) chltype (sdr) conname ('con-name') xmitq (QM_APPLE) trptype (tcp)

6、通过输入以下命令来启动通道: 

    start channel (QM_ORANGE.QM_APPLE)

7、使用 MQSC 来将测试消息放入队列

    启动 amqsput 样本程序,如下所示:

    在 Linux 上,切换到 /opt/mqm/samp/bin 目录,然后输入命令:./amqsput Q1 

    在 Windows 上,输入命令:amqsput Q1 

    此时会显示以下消息:

    样本 amqsput0 启动

    目标队列为 Q1 

    在一行或多行上输入某些消息文本,然后按 Enter 键两次。 此时会显示以下消息:

    样本 amqsput0 结束

8、启动 amqsget 样本程序,如下所示:

    在 Linux? 上,切换到 /opt/mqm/samp/bin 目录,然后输入命令:./amqsget Q1 

    在 Windows? 上,输入命令:amqsget Q1 

9、定义侦听器和启动侦听器。

DEFINE LISTENER(TCPLS1) TRPTYPE(TCP) PORT(1414) 

其中 TCPLS1 为侦听器名称,TRPTYPE指定传输协议,PORT指定侦听端口。还有一个可选属性IPADDR,该属性指定在哪一个ip地址上提供侦听服务,不指定该属性意味着在本机的所有ip地址上提供该侦听服务。 

启动侦听的命令如下: 

START LISTENER(TCPLS1)

10、

11、显示队列的属性

    display queue (DPCDS_Q_RECEIVE)

    

12、创建 触发

一般设置MQ触发器的目的有两种, 一是自动启动发送端通道, 二是监视队列消息, 一旦发现新的消息, 则利用触发器启动相应的处理进程

如果是利用触发器自动启动发送端通道, 使用方法1, 如果是利用触发器启动用户进程, 使用方法2

方法1

A 在传输通道上设置触发器, 打开触发器控制, 类型为"第一个"

B 初始队列为SYSTEM.CHANNEL.INITQ, 该队列为MQ专用的通道启动队列, 不需要手工启动其触发监视器

C 触发器数据为发送端通道名称, 例如 QAG.50

D 在发送端通道不活动的情况下, 在传输通道放入消息测试

方法2

A 创建一个触发启动队列, 其模板为SYSTEM.DEFAULT.INITIATION.QUEUE

runmqsc

define qlocal (MQ.TRIGER.INIQUEUE) like (SYSTEM.DEFAULT.INITIATION.QUEUE)

B 定义进程 所谓进程就是触发器要触发的程序本例中进程名称:TRIGER.PROGRAM 应用程序标识为:"Notepad.exe"

C 在队列上设置触发器, 一般为本地队列, 打开触发器控制, 类型根据自己的需要选择"第一个", "每个" 还是 "根据消息数量"

D 初始队列选择A中创建的触发启动队列, 例如MQ.TRIGER.INIQUEUE, 进程名称设置为B中定义的进程名称, 例如TRIGER.PROGRAM

E 启动触发监视器 runmqtrm -m QAGWY -q MQ.TRIGER.INIQUEUE

F 在本地队列放入消息进行测试

方法2也可以完成方法1的工作, 只需要将进程定义中的应用程序标识改为 runmqchl -m QAGWY -c QAG.50 就可以了, 但MQ中提供了专用的通道启动队列,

而该队列不需要手工启动触发监视器, 因此方法1比方法2的步骤要少, 配置也简单, 所以在利用触发器自动启动发送端通道的情况下, 还是方法1更好.

以上测试在IBM WEBSPHERE MQ6.0测试通过.

***********************************************************************

***********************************************************************

***********************************************************************

***********************************************************************

WebSphere MQ字符集问题

错误MQJE001: MQException 出现:完成代码是 2,原因为 2195 MQJE020: 队列管理器不支持 CCSID。解决方法:

一:MQEnvironment.CCSID = 1381;(在JAVA连接代码时指定一下字符集)

二:修改字符集设置

一般Unix、Linux平台中MQ默认的字符集为819,而Windows平台为1381,所以你必须改变其字符集,使两边的字符集相同。改变方法:

1.通过DOS进入MQ的安装目录,进入/bin下。假如要更改的队列管理器为A

2.用指令“strmqm A”启动队列管理器A。

3.用指令“runmqsc A”启动A的MQSC。

4.运行指令“ALTER QMGR CCSID(819)”“end”则修改字符集为819下载本文

显示全文
专题