IBM MQ-Docker部署及基本操作
本文最后更新于 738 天前,其中的信息可能已经有所发展或是发生改变。

IBM MQ-Docker部署及基本操作

Docker部署

Docker仓库:https://hub.docker.com/r/ibmcom/mq

docker run --name ibmmq -d \
-e LICENSE=accept \
-e MQ_QMGR_NAME=QM1 \
-p 1414:1414 -p 9443:9443 -p 9157:9157 \
ibmcom/mq

开启控制台

进入docker容器,执行strmqweb

访问地址

https://ip:9443/ibmmq/console

用户名密码可在运行环境配置,默认

User: admin
Password: passw0rd

输出详情控制台url

bash-4.4$ dspmqweb
MQWB1124I: Server 'mqweb' is running.
URLS:
  https://96c67a02cb18:9443/ibmmq/console/
  https://96c67a02cb18:9443/ibmmq/rest/
bash-4.4$ strmqweb

概念

通用

队列管理器:

简单的说就是一个大容器的管理员,这个大容器里放了很多东西。

队列:

大容器里的东西,存放消息的盒子。

通道:

大容器和大容器之间,程序和容器之间进行通讯的途径。

队列管理器

创建:

crtmqm -q qmgrName

eg:

crtmqm BAASDEC_RDMRCVS_GW

或者是crtmqm -q BAASDEC_RDMRCVS_GW(-q是指创建缺省的队列管理器)

或者是 crtmqm -lc -lf 100 -lp 3 -ls 3 BAASDEC_RDMRCVS_GW

或者是crtmqm -lf 51200 -lp 8 -ls 4 -lc -md /AppData/MQData -ld /AppLogs/MQLogs BAASDEC_RDMRCVS_GW

-lc 是采用循环日志

-lf 是每块日志的大小,4k为单位的,100就是100*4k

-lp 是主逻辑日志的数量

-ls 是辅逻辑日志的数量

-md 持久化数据文件的目录

-ld 日志文件的目录

删除:

dltmqm qmgrName

eg:

dltmqm BAASDEC_RDMRCVS_GW

启动:

strmqm qmgrName

eg:

strmqm BAASDEC_RDMRCVS_GW

停止:

受控停止:endmqm qmgrName eg:endmqm BAASDEC_RDMRCVS_GW
立即停止:endmqm -i qmgrName eg:endmqm -i BAASDEC_RDMRCVS_GW
强制停止:endmqm -p qmgrName eg:endmqm -p BAASDEC_RDMRCVS_GW

显示:

dspmq -m qmgrName eg:dspmq -m BAASDEC_RDMRCVS_GW

运行,进入命令行:

runmqsc qmgrName eg:runmqsc BAASDEC_RDMRCVS_GW

队列

本地队列

创建:

define ql (qlName) defpsist (yes) replace

define qlocal(qlName)

eg:

简单本地队列:

define qlocal('QLSdcGzGZEportDxp04') defpsist(yes) maxdepth(1000000) maxmsgl(11000000) replace

传输队列:

简单:define qlocal ('QXGZEportSdcGzDxp04') usage (xmitq) defpsist(yes) maxdepth(1000000) maxmsgl(11000000)

多参数:

DEFINE QLOCAL (BAASDEC_RDMRCVS_TRA) USAGE (XMITQ) DEFPSIST(YES) MAXDEPTH(100000) TRIGGER TRIGTYPE(FIRST) INITQ(SYSTEM.CHANNEL.INITQ) TRIGDATA(BAASDEC.RDMRCVS.CHL) REPLACE

参数介绍:

QLOCAL (BAASDEC_RDMRCVS_TRA):BAASDEC_RDMRCVS_TRA为传输队列名称;

USAGE (XMITQ):定义该队列为传输队列

(参数详解:USAGE

如果是NORMAL代表的是本地队列

如果是XMITQ代表的是传输队列);

DEFPSIST(YES):队列上的消息在队列管理器重新启动时保存了下来

(参数详解:DEFPSIST:队列中消息持久性默认值。
NO 该队列上的消息在队列管理器重新启动时丢失
YES 该队列上的消息在队列管理器重新启动时保存了下来。);

MAXDEPTH(100000):队列上允许的最大消息数为100000;

TRIGTYPE(FIRST):触发类型第一条消息触发,有第一条消息之后开始创建队列

INITQ(SYSTEM.CHANNEL.INITQ):初始队列为SYSTEM.CHANNEL.INITQ

TRIGDATA(BAASDEC.RDMRCVS.CHL):触发数据,也就是触发后要启动的通道为BAASDEC.RDMRCVS.CHL

其中:DEFINE可以缩写为DEF,QLOCAL可以缩写为QL。

删除:

delete qlocal (qlName)

远程队列

创建:

define qremote (qrName) rname (AAA) rqmname (qmgrName) xmitq (qtName)

eg:

简单:

define qremote ('QRGZEportSdcGzDxp04') defpsist(yes) rname ('QLGZEportSdcGzDxp04') rqmname('QMGzMgr') xmitq ('QXGZEportSdcGzDxp04')

较多参数:DEFINE QREMOTE (BAASDEC_RDMRCVS_REMOTEQ) RNAME (RDMRCVS.RECV.BAASDEC.QUEUE) RQMNAME (RDMRCVS.CLUSTER) XMITQ (BAASDEC_RDMRCVS_TRA) CLUSTER (BAASDEC) REPLACE

参数介绍:

QREMOTE (BAASDEC_RDMRCVS_REMOTEQ):发送方远程队列名称BAASDEC_RDMRCVS_REMOTEQ;

RNAME (RDMRCVS.RECV.BAASDEC.QUEUE):接收方的本地接收队列名RDMRCVS.RECV.BAASDEC.QUEUE,这个需要和对手系统确认好,这个就是对方系统配置的本地队列名;

RQMNAME (RDMRCVS.CLUSTER):接收方队列管理器名,RDMRCVS.CLUSTER;

XMITQ (BAASDEC_RDMRCVS_TRA):发送方传输队列名,传输队列BAASDEC_RDMRCVS_TRA;

CLUSTER (BAASDEC):所属的集群为BAASDEC。

其中:DEFINE可以缩写为DEF,QREMOTE 可以缩写为QL。

注意:RNAME 与对方本地队列名相同是需要一样的,否则消息无法发送出去。

删除:

delete qremote (qlName)

死信队列

定义一个死信队列DEADQ

DEFINE QLOCAL(DEADQ)MAXDEPTH(290000) DEFPSIST(YES) REPLACE

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

ALTER QMGR DEADQ(DEADQ)

通道

发送通道:CHLTYPE (SDR)

接收通道:CHLTYPE (RCVR)

群集发送通道:CHLTYPE (CLUSSDR)

群集接收通道:CHLTYPE (CLUSRCVR)

MQI连接服务器通道:CHLTYPE (SVRCONN)

发送通道

启动:start channel(cName)
停止:stop channel(cName)
重置:reset channel(cName)

define channel ('CHGZEportSdcGzDxp04') chltype (sdr) conname ('172.16.208.194(1415)') xmitq ('QXGZEportSdcGzDxp04') maxmsgl(11000000) discint(0) trptype (tcp)

DEFINE CHANNEL(BAASDEC.RDMRCVS.CHL) CHLTYPE(SDR) TRPTYPE (TCP) DISCINT(0) CONNAME('22.188.183.244(1817)') XMITQ (BAASDEC_RDMRCVS_TRA) REPLACE

参数介绍:

CHANNEL(BAASDEC.RDMRCVS.CHL):发送通道名为BAASDEC.RDMRCVS.CHL;

CHLTYPE(SDR):CHLTYPE设置通道类型,发送通道;

TRPTYPE (TCP):TRPTYPE 设置通讯协议,TCP;

DISCINT(0) :DISCINT设置通道停止时间间隔(0为永不停止);

CONNAME(‘22.188.XXX.XXX(1X1X)’):连接地址为22.188.XXX.XXX(1X1X);

XMITQ (BAASDEC_RDMRCVS_TRA):传输队列名称为BAASDEC_RDMRCVS_TRA。

接收通道

创建:define channel(cName) chltype(rcvr) trptype(tcp)

define channel ('CHSdcGzGZEportDxp04') chltype (rqstr) conname('172.16.208.194(1415)') maxmsgl(11000000) trptype (tcp)

DEFINE CHANNEL (RDMRCVS.BAASDEC.CHL) CHLTYPE (RCVR) TRPTYPE(TCP) REPLACE

参数介绍:

CHANNEL (RDMRCVS.BAASDEC.CHL):接收通道名为RDMRCVS.BAASDEC.CHL,通常和发送通道的名称互换一下部分内容。

CHLTYPE (RCVR):接收通道。

CONNAME(‘22.188.XXX.XXX(1X1X)’):连接地址为22.188.XXX.XXX(1X1X);

进程定义

创建:define process(pName) appltype(unix) applicid('runmqchl –zzbankO –c oTocchannel')

监听器

监听器是用于监听外界对队列管理器的连接的程序,就是对方MQ管理器来探测,本地要给对方一个回应,监听器就是起这个作用的

创建:

define listener(lName) trptype(tcp) control(qmgr) port(1415)

eg:

创建监听器LSNRPMTS_BAAS

DEFINE LISTENER(LSNRPMTS_BAAS) TRPTYPE(TCP) PORT(4001) BACKLOG(0) CONTROL(QMGR) REPLACE

参数介绍:

LISTENER(LSNRPMTS_BAAS):监听器的名称为LSNRPMTS_BAAS,这个在一众队列管理器中创建一个就好。但是这些队列管理器的端口不能一样;

TRPTYPE(TCP):传输协议类型为TCP;

PORT(4001):端口号为4001;

BACKLOG(0):侦听器支持的最大并发连接请求数,需要根据实际情况来确定;

CONTROL(QMGR):启动/停止控制方式为QMGR

(参数详情:

MANUAL:手动启动/停止

OMGR:随QM启动/停止

STARTONLY:随QM启动,不随其停止)

启动:

start listener(lName)

状态查看

通道:dis chl(*)
通道详细信息:dis chl(name)
监听:dis listener(*)
通道状态:dis chs(*)
序列号查看:dis chs(name) curseqno
通道序列号重置:reset chl(name) seqnum(1)
监听详细信息:dis listener(name)
监听状态:dis lsstatus(*)
队列:dis q(*)
队列详细信息:dis q(name)
查询:

1)dis qmgr或 dis qmgr all

显示队列管理器的全信息。

2)dis qmgr ccsid

显示队列管理器的部分属性信息。

3)dis q(*)

显示某个队列管理器下的全部队列。

4)dis q(*) all

显示某个队列管理器下的全部队列的全部信息。

5)dis ql(*) 和dis ql(*) all

显示某个队列管理器下的全部本地队列(的全部信息)。

6)dis qr(*) 和dis qr(*) all

显示某个队列管理器下的全部远程队列(的全部信息)。

7)dis q(name)

显示某个特定队列的全部信息。

8)dis q(name) CURDEPTH

显示某个特定队列的特定属性信息。

9)dis chl(*)

显示某个队列管理器下的通道信息。

10)dis chs(*)

显示某个队列管理器下的通道状态信息。

11)dis chs(name) curseqno

显示某个队列管理器下的某个通道的某个属性信息。



修改:

这块用来修改一些配置,知道特定的语法格式就好了

1)alter qmgr ccsid(1381)

将队列管理器的ccsid改成1381

2)alter ql(name) get (ENABLED)
将该队列管理器下的本地队列的get参数改为ENABLED。

ccsid

查看:display qmgr ccsid
修改:alter qmgr ccsid(1381)

参考:https://www.cnblogs.com/zhuozige/p/17015682.html

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇