IBM MQ 9.2.4 笔记大全

9 篇文章 0 订阅
3 篇文章 0 订阅

IBM MQ note

author: 俊仔

官方文档

将测试消息放入本地队列

https://www.ibm.com/docs/en/ibm-mq/9.2?topic=queue-putting-test-message-local#bi00258_b

AB服务器测试

服务器A创建队列管理器A

sudo docker exec -it ibmmq_server_1 /bin/bash
#创建队列管理器
crtmqm -q QM_APPLE
# 开启队列管理器
strmqm QM_APPLE
#进入队列管理器
runmqsc QM_APPLE
#定义本地队列 指定为传输队列
define ql(LQA)
end

服务器B创建队列管理器B

#创建队列管理器
crtmqm -q QM_ORANGE
#开启队列管理器
strmqm QM_ORANGE
#进入队列管理器
runmqsc QM_ORANGE
#定义本地队列
define qlocal(LQB)
end

服务器A定义

runmqsc QM_APPLE
#定义传输队列
define qlocal (TQA) usage (xmitq)   
#定义远程队列
define qremote (RQA) rname (LQB) rqmname(QM_ORANGE) xmitq (TQA)
end

服务器B定义

runmqsc QM_ORANGE
#定义接收通道
define channel (QM_ORANGE.QM_APPLE) chltype (RCVR) trptype (TCP)
#启动接收通道
start chl(QM_B.QM_A)
#定义监听器
define listener(LSR.QM_ORANGE)TRPTYPE(TCP) PORT(11517) 
#启动监听器
start listener (LSR.QM_ORANGE)
end

服务器A操作

runmqsc QM_APPLE   
#定义发送通道
define channel(QM_APPLE.QM_ORANGE) chltype(sdr) conname('127.0.0.1(11517)') xmitq(TQA) trptype(tcp)
#启动 发送通道
start channel (QM_APPLE.QM_ORANGE)  
end

服务器A放入测试消息

//调用MQ内置样本程序向远程队列RQA放入消息

cd /opt/mqm/samp/bin
./amqsput RQA QM_APPLE
   此时屏幕显示:

​    Sample AMQSPUT0 start

​    target queue is RQA

输入消息文本(一行或多行),然后按 Enter 键两次。

此时屏幕显示:

    Sample AMQSPUT0 end

已将测试消息放入远程队列。

服务器B接收并获取测试消息

//调用MQ内置样本程序向Q1队列放入消息

cd /opt/mqm/samp/bin
./amqsget LQB QM_ORANGE

此时会屏幕显示:

    Sample AMQSGET0 start

​    message <***>   //×××为消息内容

已成功获取测试消息。

删除操作

删除队列管理器

endmqm -i QM_MOCK_SERVER
endmqm -i QM_MOCK_CLIENT
endmqm -i ESB_QM1
endmqm -i ESB_QM2

dltmqm ESB_QM1
dltmqm ESB_QM2
dltmqm QM_MOCK_SERVER
dltmqm QM_MOCK_SERVER

删除通道

delete chl(QM_A.QM_B)

删除队列

delete qremote (RQA)

停止操作

停止队列管理器

endmqm -i ESB_QM1
endmqm -i ESB_QM2

停止通道

stop chl(QM_ORANGE.QM_APPLE)
stop chl(QM_APPLE.QM_ORANGE)

重置通道

reset chl(QM_ORANGE.QM_APPLE)

停止监听

runmqsc ESB_QM1
stop listener(system.default.listener.tcp)
end
runmqsc ESB_QM2
stop listener(system.default.listener.tcp)
end

修改队列管理器的 监听端口

stop listener(LSR.QM_A)
alter listener(LSR.QM_A) trptype(tcp) conname(11514)
start listener(LSR.QM_A)

停止并删除

runmqsc ESB_QM1
stop listener(system.default.listener.tcp)
end
runmqsc ESB_QM2
stop listener(system.default.listener.tcp)
end
endmqm -i ESB_QM1
endmqm -i ESB_QM2
dltmqm ESB_QM1
dltmqm ESB_QM2

查看操作

查看版本

dspmqver

查看队列管理器

显示所有

dspmq

显示指定

dspmq -m MQCHNMSCS01

查看通道状态

runmqsc QM_MOCK_CLIENT
dis chs(CHL_CLIENT.SERVER)
dis chs(CHL_SERVER.CLIENT)
dis chs(CHL_CONN)
end
runmqsc QM_MOCK_SERVER
dis chs(CHL_SERVER.CLIENT)
dis chs(CHL_CLIENT.SERVER)
dis chs(CHL_CONN)
end
runmqsc ESB_QM1
dis chs(ESB_QM2.QM1)
dis chs(ESB_QM1.QM2)
dis chs(CHL_CONN)
end
runmqsc ESB_QM2
dis chs(ESB_QM2.QM1)
dis chs(ESB_QM1.QM2)
dis chs(CHL_CONN)
end
reset channel(ChannelName);  重置通道序号。当本地与其他MQ队列管理器的通道⽆法正常启动的情况,检查⽇志发现是通道序号不⼀
致,此时就需要先停⽌发送⽅通道,并在发送⽅和接收⽅进⾏通道计数的重置,重置后启动通道即可恢复通讯。想了解为什么要重置通道,
请查看⽂章:Websphere MQ消息序号Message Sequence详解

查看队列状态

所有队列

dis q(*)

本地队列

dis qlocal(QName) 

dis ql(QName) 

主要属性

dis qs(QName)

查看监听器状态

runmqsc QM_MOCK_CLIENT
dis listener(system.default.listener.tcp)
dis lsstatu(system.default.listener.tcp)

修改操作

修改通道

runmqsc ESB_QM1
alter chl(CHL_CONN) CHLTYPE(SVRCONN) mcauser('mqm') DISCINT(10)
end
runmqsc ESB_QM2
alter chl(CHL_CONN) CHLTYPE(SVRCONN) mcauser('mqm') DISCINT(10)
end

队列管理器操作

qm.ini

qm.ini 文件保存在 /QMNAME/qm.ini 中,其中:

  • 在缺省情况下是 /QIBM/UserData/mqm。

  • QMNAME 是应用初始化文件的队列管理器的名称。

    如/var/mqm/qmgrs/QM_ICBC_FINC_01/qm.ini

    修改最大通道数及最大活动通道数
    如果架构中存在was,并且应用服务器需要连接到队列管理器,则需要增加
    MaxChannels/MaxActiveChannels两个参数。
    参数值应该大于客户端的数目。
    防止由于网恋不稳定的原因导致通道状态问题
    增加KeepAlive=YES参数
    在QM.INI中添加:
    Chanaels:
    MaxCHannels=1000
    MaxActiveChanaels=1000
    TCP:
    KeepAlive=Yes
    qm.ini文件的参数需要重启队列管理器生效。
    qm.ini仅针对单个队列管理器生效。
    mqs.ini文件针对全部队列管理器生效。目录:/var/mqm

sudo docker exec -it ibmmq_server_1 /bin/bash
cat /var/mqm/qmgrs/ESB_QM1/qm.ini
cat /var/mqm/qmgrs/ESB_QM2/qm.ini

配置如下

#*******************************************************************#
#* Module Name: qm.ini                                             *#
#* Type       : IBM MQ queue manager configuration file            *#
#  Function   : Define the configuration of a single queue manager *#
#*                                                                 *#
#*******************************************************************#
#* Notes      :                                                    *#
#* 1) This file defines the configuration of the queue manager.    *#
#* 2) The LogFilePages attribute is read-only and changes to it    *#
#*    will have no effect.                                         *#
#* 3) The LogType attribute is read-only and changes to it will    *#
#*    have no effect. To change the log type of the queue manager  *#
#*    use the migmqlog command.                                    *#
#*                                                                 *#
#*******************************************************************#
ExitPath:
   ExitsDefaultPath=/mnt/mqm/data/exits
   ExitsDefaultPath64=/mnt/mqm/data/exits64
#*                                                                 *#
#*                                                                 *#
Log:
   LogPrimaryFiles=3
   LogSecondaryFiles=2
   LogFilePages=4096
   LogType=CIRCULAR
   LogBufferPages=0
   LogPath=/mnt/mqm/data/log/ESB_QM1/
   LogWriteIntegrity=TripleWrite
Service:
   Name=AuthorizationService
   EntryPoints=14
ServiceComponent:
   Service=AuthorizationService
   Name=MQSeries.UNIX.auth.service
   Module=amqzfu
   ComponentDataSize=0
SSL:
   AllowTLSV13=Yes
   MinimumRSAKeySize=1
Channels:
   ChlauthEarlyAdopt=Yes
   ChlauthIgnoreUserCase=No
TCP:
   SndBuffSize=0
   RcvBuffSize=0
   RcvSndBuffSize=0
   RcvRcvBuffSize=0
   ClntSndBuffSize=0
   ClntRcvBuffSize=0
   SvrSndBuffSize=0
   SvrRcvBuffSize=0
   SecureCommsOnly=NO
Subpool:
   ShortSubpoolName=ESB_QM10000

队列操作

启动amqsput示例程序,如下所示:
启动amqsput示例程序,如下所示:
[Linux]在Linux 上,切换到 MQ_INSTALLATION_PATH/samp/bin目录,其中 表示安装IBM MQMQ_INSTALLATION_PATH的高级目录。键入命令:

./amqsput Q1 QM_APPLE

在Windows上,键入命令:

amqsput Q1 QM_APPLE

发送消息

例:

cd /opt/mqm/samp/bin
./amqsput Q_ESB_ZSX QM_HBK_CLIENT

接收消息

这些程序均采用以下位置参数:

  1. 源队列的名称(必填)

  2. 队列管理器的名称(可选)

    如果未指定队列管理器,则 amqsget 连接到缺省队列管理器,而 amqsgetc 连接到由环境变量或客户端通道定义文件标识的队列管理器。

  3. 打开选项(可选)

    如果未指定打开选项,则示例使用值 8193,它是这两个选项的组合:

    • MQOO_INPUT_AS_Q_DEF
    • MQOO_FAIL_IF_QUIESCING
  4. 关闭选项(可选)

    如果未指定关闭选项,则示例使用 0 值,即 MQCO_NONE。

这些程序还使用名为MQSAMP_USER_ID的环境变量,该变量应设置为用于连接身份验证的用户 ID。设置后,程序将提示输入密码以伴随该用户 ID。

要运行这些程序,请输入以下内容之一:

  • amqsget myqueue qmanagername
  • amqsgetc myqueue qmanagername

使用 amqsget 和 amqsgetc

请注意,amqsget执行到队列管理器的本地连接,使用共享内存连接到队列管理器,因此只能在队列管理器所在的系统上运行,而amqsgetc执行客户端样式的连接(即使连接到同一系统上的队列管理器)。

使用amqsgetc时,您需要根据队列管理器主机或 IP 地址和队列管理器侦听器端口,提供有关如何实际到达队列管理器的应用程序详细信息。

通常这是使用 MQSERVER 环境变量或通过使用客户端通道定义表定义连接详细信息来完成的,也可以使用环境变量将其提供给 amqsgetc

例:

cd /opt/mqm/samp/bin
./amqsget Q_RCVR_ZSX QM_HBK_SERVER

单机访问

docker ps -a|grep ibmmq
docker start ibmmq_server_1
sudo docker exec -it ibmmq_server_1 /bin/bash
dspmq
crtmqm -q QM_A
strmqm QM_A
runmqsc QM_A
#本地队列
define ql(QA)
#监听器操作
define listener(LSR.QM_A) trptype(TCP) port(11514)
start listener(LSR.QM_A)
#定义java客户端连接通道,创建服务器连接通道,mcauser为用户认证
define channel(CHL_A) CHLTYPE(SVRCONN) mcauser('mqm')  

删除

DELETE LISTENER(LSR.QM_A)

发送

cd /opt/mqm/samp/bin
./amqsput QA QM_A

接收

cd /opt/mqm/samp/bin
./amqsget QA QM_A

日志操作

Linux查看日志

cd /var/mqm/qmgrs/队列名/errors
例:
cd /var/mqm/qmgrs/QM_MOCK_CLIENT/errors
cat AMQERR01.LOG
tail -f AMQERR01.LOG

Linux命令

linux下将目录授权给其他用户的步骤

更改目录所有者命令:

chown -R user /data/work

Docker-Compose命令

文件示例

version: '3'
services:
  server:
    image: "ibmcom/mq"
    environment:
      - LICENSE=accept
      - MQ_DEV=false
      - MQ_QMGR_NAME=QM_MOCK
      - MQ_ADMIN_PASSWORD=passwr0d
      - MQ_ENABLE_METRICS=true
    volumes:
      - ibmdata:/mnt/mqm
    ports:
      - "1414:1414" # Queue manager
      - "11514:11514"
      - "11515:11515"
      - "11516:11516"
      - "11517:11517"
      - "11518:11518"
      - "11519:11519"
      - "11520:11520"
      - "11521:11521"
      - "9443:9443" # Web console
      - "9157:9157" # Metrics
volumes:
  ibmdata:
cd /work
cd /data/ibmmq
cat docker-compose.yml 

cd /data/was
cat docker-compose.yml 

# 停止
docker-compose down 
# 重新加载
docker-compose up -d

Docker命令

Docker容器到物理主机

#基本格式

docker cp  容器ID:容器路径  本地路径

#使用实例

docker cp a98d3a1163fc:/var/mqm/qmgrs/QM_MOCK_CLIENT/errors/AMQERR01.LOG /work/AMQERR01.LOG

启动docker

sudo systemctl start docker

重启docker

sudo systemctl restart docker

重启容器

 docker restart ibmmq_server_1

IBMMQ去掉认证

然后执行一下语句,移除三条认证:

#runmqsc QUEUE_ONE_MANAGER
runmqsc QUEUE_TWO_MANAGER
#设置去掉*MQADMIN用户的认证
SET CHLAUTH(*) TYPE(BLOCKUSER) USERLIST(*MQADMIN) ACTION(REMOVE)

#设置去掉通道SYSTEM.ADMIN.SVRCONN的认证//
SET CHLAUTH(SYSTEM.ADMIN.SVRCONN) TYPE(ADDRESSMAP) ADDRESS(*) ACTION(REMOVE)

#设置去掉通道SYSTEM.通道的认证
SET CHLAUTH(SYSTEM.*) TYPE(ADDRESSMAP) ADDRESS(*) ACTION(REMOVE)

#队列管理执行设置命令,修改授权信息
ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) CHCKCLNT(OPTIONAL)

#刷新连接安全认证
REFRESH SECURITY TYPE(CONNAUTH)
end

几条常用运维命令

  #查看mq错误日志,路径在:/var/mqm/qmgrs/cdm/errors
  #查看通道认证情况: 
  DISPLAY   CHLAUTH(SYSTEM.DEF.SVRCONN)
  #查看所有通道
  DISPLAY  CHL(*)
  #查看通道认证是否开启
  DISPLAY   QMGR CHLAUTH
  #打开/关闭通道认证:
  ALTER QMGR CHLAUTH(ENABLE/DISABLEE)

服务端完整命令

启动docker

sudo systemctl start docker

进入IBMMQ容器

sudo docker exec -it ibmmq_server_1 /bin/bash

启动docker-compose

cd /work
docker-compose up -d

接收方

crtmqm QM_MOCK_SERVER
strmqm QM_MOCK_SERVER
runmqsc QM_MOCK_SERVER
define ql(Q_ESB)
define channel(CHL_ESB) chltype (RCVR) trptype (TCP)
start channel(CHL_ESB)
define channel(CHL_CONN) CHLTYPE(SVRCONN) mcauser('mqm')
start channel(CHL_CONN)
alter listener(system.default.listener.tcp) trptype(tcp) port(11515)
start listener(system.default.listener.tcp)

SET CHLAUTH(*) TYPE(BLOCKUSER) USERLIST(*MQADMIN) ACTION(REMOVE)
SET CHLAUTH(SYSTEM.ADMIN.SVRCONN) TYPE(ADDRESSMAP) ADDRESS(*) ACTION(REMOVE)
SET CHLAUTH(SYSTEM.*) TYPE(ADDRESSMAP) ADDRESS(*) ACTION(REMOVE)
ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) CHCKCLNT(OPTIONAL)
REFRESH SECURITY TYPE(CONNAUTH)

发送方

crtmqm QM_MOCK_CLIENT
strmqm QM_MOCK_CLIENT
runmqsc QM_MOCK_CLIENT
define qlocal(QUEUE_TR) usage (xmitq)
define qremote(Q_ESB) rname (Q_ESB) rqmname(QM_MOCK_SERVER) xmitq (QUEUE_TR)
define channel(CHL_ESB) chltype(sdr) conname('127.0.0.1(11515)') xmitq(QUEUE_TR) trptype(tcp)
start channel(CHL_ESB)
define channel(CHL_CONN) CHLTYPE(SVRCONN) mcauser('mqm')
start channel(CHL_CONN)
alter listener(system.default.listener.tcp) trptype(tcp) port(11514)
start listener(system.default.listener.tcp)

SET CHLAUTH(*) TYPE(BLOCKUSER) USERLIST(*MQADMIN) ACTION(REMOVE)
SET CHLAUTH(SYSTEM.ADMIN.SVRCONN) TYPE(ADDRESSMAP) ADDRESS(*) ACTION(REMOVE)
SET CHLAUTH(SYSTEM.*) TYPE(ADDRESSMAP) ADDRESS(*) ACTION(REMOVE)
ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) CHCKCLNT(OPTIONAL)
REFRESH SECURITY TYPE(CONNAUTH)

启动通道

runmqsc QM_MOCK_CLIENT
start channel(CHL_CONN)
start channel(CHL_ESB)
end

runmqsc QM_MOCK_SERVER
start channel(CHL_ESB)
start channel(CHL_CONN)
end

双向通讯

客户端执行命令

#创建发送队列管理器,maxmsgl参数为消息最大长度
crtmqm QM_MOCK_CLIENT
#启动发送队列管理器
strmqm QM_MOCK_CLIENT
#进入发送队列管理器
runmqsc QM_MOCK_CLIENT

#定义本地接收队列
define ql(Q_RCVR)
#定义传输队列
define ql(Q_TR) usage (xmitq)
#定义远程队列,即使发送时使用的队列
define qr(Q_ESB) rname (Q_RCVR) rqmname(QM_MOCK_SERVER) xmitq (Q_TR)

#定义发送传输通道,连接接收队列管理器的监听地址端口为127.0.0.1(11515),命名规则:本地通道.远程通道,
#注意:默认的 DISCINT 是 6000(6,000 秒),值为0会导致消息通道代理无限期地等待。该参数仅对通道类型(CHLTYPE)为 SVRCONN、SDR、SVR、CLUSSDR、CLUSRCVR 的通道有效。
define chl(CHL_CLIENT.SERVER) chltype(SDR) conname('127.0.0.1(11515)') xmitq(Q_TR) trptype(tcp) DISCINT(0) 
#启动传输通道
start chl(CHL_CLIENT.SERVER)

#定义接收通道,命名规则:远程通道.本地通道
define chl(CHL_SERVER.CLIENT) chltype(RCVR) trptype(TCP)
start chl(CHL_SERVER.CLIENT)


#定义java客户端连接通道 #创建服务器连接通道,mcauser为用户认证
define chl(CHL_CONN) CHLTYPE(SVRCONN) mcauser('mqm') DISCINT(0) 
#启动java客户端通道
start chl(CHL_CONN)

#修改监听器端口为 11514
alter listener(system.default.listener.tcp) trptype(tcp) port(11514)
#启动监听器
start listener(system.default.listener.tcp)

完整命令

crtmqm QM_MOCK_CLIENT
strmqm QM_MOCK_CLIENT
runmqsc QM_MOCK_CLIENT
define ql(Q_RCVR)
define ql(Q_TR) usage(xmitq)
define qr(Q_ESB) rname(Q_RCVR) rqmname(QM_MOCK_SERVER) xmitq (Q_TR)
define chl(CHL_CLIENT.SERVER) chltype(sdr) conname('127.0.0.1(11515)') xmitq(Q_TR) trptype(tcp) DISCINT(0) 
start chl(CHL_CLIENT.SERVER)
define chl(CHL_SERVER.CLIENT) chltype (RCVR) trptype (TCP)
start chl(CHL_SERVER.CLIENT)
define chl(CHL_CONN) CHLTYPE(SVRCONN) mcauser('mqm') DISCINT(0) 
start chl(CHL_CONN)
alter listener(system.default.listener.tcp) trptype(tcp) port(11514)
start listener(system.default.listener.tcp)
SET CHLAUTH(*) TYPE(BLOCKUSER) USERLIST(*MQADMIN) ACTION(REMOVE)
SET CHLAUTH(SYSTEM.ADMIN.SVRCONN) TYPE(ADDRESSMAP) ADDRESS(*) ACTION(REMOVE)
SET CHLAUTH(SYSTEM.*) TYPE(ADDRESSMAP) ADDRESS(*) ACTION(REMOVE)
ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) CHCKCLNT(OPTIONAL)
REFRESH SECURITY TYPE(CONNAUTH)
end

服务端执行命令

#创建接收队列管理器
crtmqm QM_MOCK_SERVER
#启动接收队列管理器
strmqm QM_MOCK_SERVER
#进入接收队列管理器
runmqsc QM_MOCK_SERVER

#定义本地接收队列
define ql(Q_RCVR)
#定义传输队列
define ql(Q_TR) usage (xmitq)
#定义远程队列,即使发送时使用的队列
define qr(Q_ESB) rname (Q_RCVR) rqmname(QM_MOCK_CLIENT) xmitq (Q_TR)

#定义发送传输通道,连接接收队列管理器的监听地址端口为127.0.0.1(11514),命名规则:本地通道.远程通道
#注意:默认的 DISCINT 是 6000(6,000 秒),值为0会导致消息通道代理无限期地等待。该参数仅对通道类型(CHLTYPE)为 SVRCONN、SDR、SVR、CLUSSDR、CLUSRCVR 的通道有效。
define chl(CHL_SERVER.CLIENT) chltype(sdr) conname('127.0.0.1(11514)') xmitq(Q_TR) trptype(tcp) DISCINT(0) 
#启动传输通道
start chl(CHL_SERVER.CLIENT)

#定义接收通道,命名规则:远程通道.本地通道
define chl(CHL_CLIENT.SERVER) chltype (RCVR) trptype (TCP)
start chl(CHL_CLIENT.SERVER)

#定义java客户端连接通道 #创建服务器连接通道,mcauser为用户认证
define chl(CHL_CONN) CHLTYPE(SVRCONN) mcauser('mqm') DISCINT(0) 
start chl(CHL_CONN)

#修改监听器端口为 11515
alter listener(system.default.listener.tcp) trptype(tcp) port(11515)
#启动监听器
start listener(system.default.listener.tcp)

完整命令

crtmqm QM_MOCK_SERVER
strmqm QM_MOCK_SERVER
runmqsc QM_MOCK_SERVER
define ql(Q_RCVR)
define ql(Q_TR) usage (xmitq)
define qr(Q_ESB) rname (Q_RCVR) rqmname(QM_MOCK_CLIENT) xmitq (Q_TR)
define chl(CHL_SERVER.CLIENT) chltype(sdr) conname('127.0.0.1(11514)') xmitq(Q_TR) trptype(tcp) DISCINT(0) 
start chl(CHL_SERVER.CLIENT)
define chl(CHL_CLIENT.SERVER) chltype (RCVR) trptype (TCP)
start chl(CHL_CLIENT.SERVER)
define chl(CHL_CONN) CHLTYPE(SVRCONN) mcauser('mqm') DISCINT(0) 
start chl(CHL_CONN)
alter listener(system.default.listener.tcp) trptype(tcp) port(11515)
start listener(system.default.listener.tcp)
SET CHLAUTH(*) TYPE(BLOCKUSER) USERLIST(*MQADMIN) ACTION(REMOVE)
SET CHLAUTH(SYSTEM.ADMIN.SVRCONN) TYPE(ADDRESSMAP) ADDRESS(*) ACTION(REMOVE)
SET CHLAUTH(SYSTEM.*) TYPE(ADDRESSMAP) ADDRESS(*) ACTION(REMOVE)
ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) CHCKCLNT(OPTIONAL)
REFRESH SECURITY TYPE(CONNAUTH)
end

启动通道

runmqsc QM_MOCK_CLIENT
start chl(CHL_CONN)
start chl(CHL_SERVER.CLIENT)
start chl(CHL_CLIENT.SERVER)
end

runmqsc QM_MOCK_SERVER
start chl(CHL_CONN)
start chl(CHL_SERVER.CLIENT)
start chl(CHL_CLIENT.SERVER)
end

第三方服务端

crtmqm QM_THIRD_SERVER
strmqm QM_THIRD_SERVER
runmqsc QM_THIRD_SERVER
define ql(Q_RCVR)
define listener(LSR.THIRD) trptype(TCP) port(11516)
start listener(LSR.THIRD)
SET CHLAUTH(*) TYPE(BLOCKUSER) USERLIST(*MQADMIN) ACTION(REMOVE)
SET CHLAUTH(SYSTEM.ADMIN.SVRCONN) TYPE(ADDRESSMAP) ADDRESS(*) ACTION(REMOVE)
SET CHLAUTH(SYSTEM.*) TYPE(ADDRESSMAP) ADDRESS(*) ACTION(REMOVE)
ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) CHCKCLNT(OPTIONAL)
REFRESH SECURITY TYPE(CONNAUTH)
end

ESB_REQ

crtmqm ESB_REQ
strmqm ESB_REQ
runmqsc ESB_REQ
define ql(Q_RCVR)
define ql(Q_TR) usage(xmitq)
define qr(Q_ESB) rname(Q_RCVR) rqmname(ESB_RES) xmitq (Q_TR)
define chl(ESB_REQ.RES) chltype(SDR) conname('127.0.0.1(11518)') xmitq(Q_TR) trptype(tcp) DISCINT(0)
start chl(ESB_REQ.RES)
define chl(ESB_RES.REQ) chltype(RCVR) trptype(TCP)
start chl(ESB_RES.REQ)
define chl(CHL_CONN) CHLTYPE(SVRCONN) mcauser('mqm')
start chl(CHL_CONN)
alter listener(system.default.listener.tcp) trptype(tcp) port(11517)
start listener(system.default.listener.tcp)
SET CHLAUTH(*) TYPE(BLOCKUSER) USERLIST(*MQADMIN) ACTION(REMOVE)
SET CHLAUTH(SYSTEM.ADMIN.SVRCONN) TYPE(ADDRESSMAP) ADDRESS(*) ACTION(REMOVE)
SET CHLAUTH(SYSTEM.*) TYPE(ADDRESSMAP) ADDRESS(*) ACTION(REMOVE)
ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) CHCKCLNT(OPTIONAL)
REFRESH SECURITY TYPE(CONNAUTH)
end

ESB_RES

crtmqm ESB_RES
strmqm ESB_RES
runmqsc ESB_RES
define ql(Q_RCVR)
define ql(Q_TR) usage (xmitq)
define qr(Q_ESB) rname (Q_RCVR) rqmname(ESB_REQ) xmitq (Q_TR)
define chl(ESB_RES.REQ) chltype(SDR) conname('127.0.0.1(11517)') xmitq(Q_TR) trptype(tcp) DISCINT(0) 
start chl(ESB_RES.REQ)
define chl(ESB_REQ.RES) chltype(RCVR) trptype(TCP)
start chl(ESB_REQ.RES)
define chl(CHL_CONN) CHLTYPE(SVRCONN) mcauser('mqm')
start chl(CHL_CONN)
alter listener(system.default.listener.tcp) trptype(tcp) port(11518)
start listener(system.default.listener.tcp)
SET CHLAUTH(*) TYPE(BLOCKUSER) USERLIST(*MQADMIN) ACTION(REMOVE)
SET CHLAUTH(SYSTEM.ADMIN.SVRCONN) TYPE(ADDRESSMAP) ADDRESS(*) ACTION(REMOVE)
SET CHLAUTH(SYSTEM.*) TYPE(ADDRESSMAP) ADDRESS(*) ACTION(REMOVE)
ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) CHCKCLNT(OPTIONAL)
REFRESH SECURITY TYPE(CONNAUTH)
end

开启队列管理器、通道

sudo docker exec -it ibmmq_server_1 /bin/bash
strmqm QM_MOCK_SERVER
runmqsc QM_MOCK_SERVER
start chl(CHL_CLIENT.SERVER)
start chl(CHL_SERVER.CLIENT)
start chl(CHL_CONN)
start listener(system.default.listener.tcp)
strmqm QM_MOCK_CLIENT
runmqsc QM_MOCK_CLIENT
start chl(CHL_CLIENT.SERVER)
start chl(CHL_SERVER.CLIENT)
start chl(CHL_CONN)
start listener(system.default.listener.tcp)
runmqsc ESB_QM1
start chl(ESB_QM2.QM1)
start chl(ESB_QM1.QM2)
start chl(CHL_CONN)
end
runmqsc ESB_QM2
start chl(ESB_QM2.QM1)
start chl(ESB_QM1.QM2)
start chl(CHL_CONN)
end
strmqm QM_THIRD_SERVER
runmqsc QM_THIRD_SERVER
start listener(LSR.THIRD)
end

ESB_REQ、ESB_RES 新建队列

runmqsc ESB_REQ 
define ql(Q_RCVR_LJ)
define ql(Q_TR_LJ) usage(xmitq)
define qr(Q_ESB_LJ) rname(Q_RCVR_LJ) rqmname(ESB_RES) xmitq (Q_TR)
end
runmqsc ESB_RES
define ql(Q_RCVR_LJ)
define ql(Q_TR_LJ) usage(xmitq)
define qr(Q_ESB_LJ) rname(Q_RCVR_LJ) rqmname(ESB_REQ) xmitq (Q_TR)
end

ESB_REQ、ESB_RES 删除队列

runmqsc ESB_REQ 
delete ql(Q_RCVR_LJ)
delete ql(Q_TR_LJ)
delete qr(Q_ESB_LJ)
end
runmqsc ESB_RES 
delete ql(Q_RCVR_LJ)
delete ql(Q_TR_LJ)
delete qr(Q_ESB_LJ)
end

控制台

启动控制台

strmqweb

访问地址

https://hostname:9443/ibmmq/console

用户名密码可在运行环境配置
User: admin
Password: passwr0d

确定 IBM MQ 控制台 URL

dspmqweb

输出

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

登录到IBM MQ 控制台。从IBM MQ 9.0.2开始,使用用户名 mqadmin 和密码 mqadmin。在IBM MQ 9.0.1中,使用用户名admin和密码 admin。

  • 3
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值