刀刀网
您的当前位置:首页mq是消息服务器,MQ命令

mq是消息服务器,MQ命令

来源:刀刀网

1. 创建队列管理器

crtmqm -q QMA

(-q表示QMA为默认队列管理器)

-ld (specify the directory for

Log Default Path)

for UNIX system, -g is used to

specify RestrictedMode.

2. 启动队列管理器

strmqm QMA

(对于默认队列管理器,则为strmqm )

3. 启动管理器平台

runmqsc QMA

4. 定义本地队列

define qlocal(queueA)

若用于队列管理器之间进行通信,这应为 define

qlocal(queue1) usage(xmitq)

5. 定义远程队列

define qremote(queue.remote)

rname(apple.queue) rqmname('queueB') xmitq(queue1)

(apple.queue为远程队列管理器queueB中的本地队列)

6. 定义发送端通道

define channel(queueA.queueB)

chltype(sdr) conname('192.168.1.90(1414)') xmitq(queueA)

trptype(tcp)

注: 针对HP-UX, MQ 5.3, 启动发送端通道时,可以使用

runmqchl -c

QUEUEA.QUEUEB -m QMA &

7. 定义接受方通道

define channel(queueA.queueB)

chltype(rcvr) trptype(tcp)

8. 更改侦听端端口号

alter

listener(system.default.listener.tcp) trptype(tcp) port(1415)

9. 启动侦听

start

listener(system.default.listener.tcp)

在命令行 c:\runmqlsr

注: 针对HP-UX, MQ 5.3,

启动侦听器时,应该

runmqlsr -t tcp &

可以使用-p指定端口号。

10. 列出侦听状态

display lsstatus(*)

11. 测试, 向队列中放入消息

amqsput queue_name

queue_manager_name

从队列中取出消息

amqsget queue_name

queue_manager_name

12. 在服务器方建立用于客户方链接的通道

define channel(channel2)

chltype(svrconn) trptype(tcp) mcauser(' ')

13. 在客户机方,使用MQSERVER定义客户机链接通道(如使用了Active Directory

服务支持,则可略过本步骤)

SET

MQSERVER=CHANNEL1/TCP/192.168.1.90(1414) //Windows

export

MQSERVER=’CHANNEL1/TCP/server-hostname(port)’ //linux

15. 测试, 向队列中放入消息

amqsputc queue_name

queue_manager_name

从队列中取出消息

amqsgetc queue_name

queue_manager_name

16. 关闭队列管理器

endmqm mqm_name

endmqm -i mqm_name

17. 结束所有侦听进程

endmqlsr -m

mqm_name

18. 查看WebSphere MQ版本号

dspmqver

19. 查看已有的MQ管理器

dspmq

20. 启动WebSphere MQ Explorer

strmqcfg

21. "dspmqfls" command to convert between real and transformed

object names.

22. setmqaut 设置权限

setmqaut -m

QMName -t queue -n QName -g GroupName +put -browse +get

使用

-remove参数, 删除权限

23. dspmqaut 查询某对象权限

24. dmpmqaut 查询记录权限(Inquire Authority Records)

配置一个能够通信的远程连接

以上讲述了MQ的基本命令操作,但只知道这些是没有实际意义的。MQ的最终目的是实现远程通信,所以下面就以一个具体的例子来说明如何实现远程连接。这个例子的目的是建立可以实现消息传递的一对MQ服务器,它们分别基于NT和UNIX平台。

首先在NT端建一队列管理器

crtmqm –q QM_NT

启动队列管理器

strmqm QM_NT

运行MQ控制台命令

runmqsc QM_NT

创建死信队列

DEFINE QL(NT.DEADQ) DEFPSIST(YES) REPLACE

更改队列管理器属性,设置其死信队列

ALTER QMGR DEADQ(NT.DEADQ)

创建进程定义

DEFINE PROCESS(P_NT)+

APPLTYPE(WINDOWSNT)+

APPLICID(’ runmqchl -c SDR_NT -m QM_NT’)

创建本地传输队列

DEFINE QL(QT_NT) USAGE(XMITQ) DEFPSIST(YES) +

INITQ(SYSTEM.CHANNEL.INITQ)+

PROCESS(P_NT) REPLACE

创建远程队列定义,对应于UNIX机器上的本地队列Q_UNIX,传输队列为QT_NT

DEFINE QREMOTE(QR_NT)+

RNAME(Q_UNIX) RQMNAME(QM_UNIX)+

XMITQ(QT_NT)

DEFINE CHANNEL(SDR_NT) CHLTYPE(SDR)+

CONNAME(‘10.10.10.2(1414)’) XMITQ(QT_NT) REPLACE

创建服务器连接通道

DEFINE CHANNEL(S_NT) CHLTYPE(SVRCONN) REPLACE

在UNIX端创建队列管理器

crtmqm –q QM_UNIX

启动队列管理器

strmqm QM_UNIX

添加侦听程序

修改/etc/services文件,加入一行:

MQSeries 1414/tcp #MQSeries channel listener

修改/etc/inetd.conf文件,加入一行(启动侦听程序)

MQSeries stream tcp nowait mqm /usr/lpp/mqm/bin/amqcrsta amqcrsta

–m QM_UNIX

运行以下命令,以使修改起作用

refresh –s inetd

运行MQ控制台命令

runmqsc QM_UNIX

创建死信队列

DEFINE QL(UNIX.DEADQ) DEFPSIST(YES) REPLACE

更改队列管理器属性,设置其死信队列

ALTER QMGR DEADQ(UNIX.DEADQ)

创建接收方通道,其名字必须与远程发送方相同

DEFINE CHANNEL(SDR_NT) CHLTYPE(RCVR) REPLACE

创建本地队列

DEFINE QL(Q_UNIX) DEFPSIST(YES) REPLACE

创建服务器连接通道

DEFINE CHANNEL(S_UNIX) CHLTYPE(SVRCONN) REPLACE

经过以上操作之后,远程连接的配置工作完成。接下来需要验证配置是否正确。

在NT端启动发送方通道

runmqchl –c SDR_NT –m QM_NT 或 start chl(SDR_NT)

从NT端发送消息到UNIX端

amqsput QR_NT QM_NT

在UNIX端接收消息

/usr/mqm/samp/bin/amqsget Q_UNIX QM_UNIX

若能收到消息,说明配置成功。

另,在NT下一般情况下在建立队列管理器时会自动建立侦听器,启动队列管理器时则会自动启动侦听程序。当然也可以手动配置侦听程序。

修改\winnt\system32\drivers\etc\services文件,在文件中加入一行:

MQSeries 1414/tcp #MQSeries channel listener

启动侦听程序

runmqlsr –t tcp –p 1414 –m QM_NT

因篇幅问题不能全部显示,请点此查看更多更全内容