IBM MQ常用的命令

  • Post author:
  • Post category:其他


概念理解:

1、通道:指MQ访问的一个物理API接口,因为MQ都实现了JMS协议,底层走的是SOCKET,

而通道就是封装了协议和操作SOCKET的一个接口,我们连MQ的时候,没有显示的声明SOCKET连接等,就是因为有通道的存在。

2、 Q:什么时候需要去创建接收/发送方通道?

A:在队列管理器创建的时候创建,我们默认建的是服务器通道,支持接收和发送两种操作模式。

3、死信队列

存储无法传递或已过期的消息的副本。如果过期或无法传递的消息是事务性消息,则被存储在一种特殊的死信队列中,称为“事务性死信队列”。

死信存储在过期消息所在的计算机上。

4、通道类型CHLTYPE

通道类型可以是:SDR,SVR,RCVR,RQSTR,CLNTCONN,SVRCONN,CLUSSDR和CLUSRCVR,

创建接收方通道:DEFINE CHANNEL (SDR_TEST)CHLTYPE(RCVR) REPLACE

创建服务器连接通道:DEFINE CHANNEL (SVRCONNNAME) CHLTYPE(SVRCONN) REPLACE

常用的命令:

登录到部署MQ的机器上,进入MQ命令行:

1、队列的相关操作

1.1、定义本地队列

DEFINE QL(XU_TEST) REPLACE

1.2、定义别名队列

DEFINE QALIAS(XUKAIXUN) TARGQ(XU_TEST)

1.3、显示队列的部分属性

DISPLAY QUEUE(MY_QUEUE) DESCR GET PUT

AMQ8409: Display Queue details.

QUEUE(MY_QUEUE)                         TYPE(QLOCAL)

DESCR( )                                GET(ENABLED)

PUT(ENABLED)

1.4、显示队列的全部属性

DISPLAY QUEUE(XU_TEST)

1.5、清除队列中所有消息

CLEAR QLOCAL(XU_TEST)

1.6、删除队列

DELETE QLOCAL(XU_TEST)

1.7、查看队列被哪个程序占用

dis qs(*) type(handle)

QUEUE(GAIA_XKX.Q)                       TYPE(HANDLE)

APPLTAG(WebSphere MQ Client for Java)   APPLTYPE(SYSTEM)

1.8、去使能队列的PUT属性

ALTER QLOCAL(MY_QUEUE) PUT(DISABLED)

1.9、显示别名队列的所有属性

dis qalias(test)

1.10、修改别名队列绑定的队列

define qalias(test) targq(XU_TEST)

alter qalias(test) targq(MY_QUEUE)

2、队列管理器的相关操作

2.1、启动MQ管理器,在MQ服务器上直接运行下面命令

strmqm  WNMS3_QM (队列管理器名称)

2.2、停止MQ管理器,在MQ服务器上直接运行下面命令

endmqm WNMS3_QM (队列管理器名称)

endmqm -i XU_TEST_MQ    立即停止

endmqm -p XU_TEST_MQ   强制停止

2.3、增加MQ管理器,在MQ服务器上直接运行下面命令

crtmqm -q XU_TEST_MQ

2.4、运行MQ命令

runmqsc XU_TEST_MQ

2.5、删除队列管理器,删除之前,先停止队列管理器

dltmqm XU_TEST_MQ

2.6、显示队列管理器的所有属性

DISPLAY QMGR

2.7、修改队列管理器的描述(DESCR属性)

ALTER QMGR DESCR(‘NEW DESCRIPTION’)

3、不进入MQ命令行,直接在MQ机器上往MQ队列里发消息,取消息。

3.1、向队列里发消息,在/opt/mqm/samp/bin/目录运行下面命令:

amqsput XU_TEST XU_TEST_MQ

3.2、从队列里取消息,在/opt/mqm/samp/bin/目录运行下面命令:

amqsget XU_TEST XU_TEST_MQ

ps: 用amqsput命令向队列发消息时队列名称要大写

进入MQ,创建队列管理器xu_mq_mgr,队列xu_mq,然后切换到/opt/mqm/samp/bin/目录下

A:执行“./amqsput xu_mq xu_mq_mgr”,报错如下

-bash-4.1$ ./amqsput xu_mq xu_mq_mgr

Sample AMQSPUT0 start

target queue is xu_mq

MQOPEN ended with reason code 2085

unable to open queue for output

Sample AMQSPUT0 end

B:执行“./amqsput XU_MQ XU_MQ_MGR”,”./amqsput xu_mq XU_MQ_MGR“,或者“./amqsput xu_mq XU_MQ_MGR”报错如下

./amqsput XU_MQ XU_MQ_MGR

Sample AMQSPUT0 start

MQCONN ended with reason code 2058

./amqsput xu_mq XU_MQ_MGR

Sample AMQSPUT0 start

MQCONN ended with reason code 2058

./amqsput xu_mq XU_MQ_MGR

Sample AMQSPUT0 start

MQCONN ended with reason code 2058

C:执行“./amqsput XU_MQ xu_mq_mgr”,消息发送成功:

./amqsput XU_MQ xu_mq_mgr

Sample AMQSPUT0 start

target queue is XU_MQ

Test!

Sample AMQSPUT0 end



版权声明:本文为xukaixun005原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。