IBM MQ系列:认证及队列创建

引言

本文是一次是真实从0开始创建消息队列,并开启了访问认证的过程。

本次目标如下:

 Ip:10.10.10.2
 port:1416
 Queue manager:QMGR_TEST
 channel:CHL_TEST
 queue_name:Q_TRAN_TEST_IN,    Q_TRAN_TEST_OUT,    Q_TRAN_TEST2_IN,    Q_TRAN_TEST2_OUT
 Username:testuser
 Passed:testuser123

部署步骤

登陆至mqm用户操作:su - mqm

1、创建管理队列管理器

crtmqm QMGR_TEST

2、启动此队列管理器

strmqm QMGR_TEST

3、创建本地队列

runmqsc QMGR_TEST
 
 define ql (Q_TRAN_TEST_IN) replace
 define ql (Q_TRAN_TEST_OUT) replace
 define ql (Q_TRAN_TEST2_IN) replace
 define ql (Q_TRAN_TEST2_OUT) replace

4、创建服务器接收消息通道

 runmqsc QMGR_TEST
 
 define channel (CHL_TEST) chltype (SVRCONN) trptype (TCP)
 
 alter listener(system.default.listener.tcp) trptype(tcp) port(1416)
 start listener(system.default.listener.tcp)
 end

5、查看接收通道状态

 runmqsc QMGR_TEST
 dis chs(*)

6、测试验证

cd /opt/mqm/samp/
 ./amqsput Q_TRAN_TEST_IN QMGR_TEST
 ./amqsget Q_TRAN_TEST_IN QMGR_TEST
 ./amqsput Q_TRAN_TEST2_IN QMGR_TEST
 ./amqsget Q_TRAN_TEST2_IN QMGR_TEST

7、关闭认证

ALTER QMGR CHLAUTH(DISABLED) CONNAUTH(' ')
REFRESH SECURITY TYPE(CONNAUTH)
 
 
 # 如果需要关闭认证的同时,使用用户密码,需要添加对应用户
 ALTER CHL(通道名) CHLTYPE(SVRCONN) MCAUSER('用户名')

8、开启认证

ALTER QMGR CHLAUTH(ENABLED) CONNAUTH(' ')
 ALTER QMGR CONNAUTH(USE.PW)
 DEFINE AUTHINFO(USE.PW)  AUTHTYPE(IDPWOS) FAILDLAY(10) CHCKLOCL(OPTIONAL) CHCKCLNT(REQUIRED)
 
 set CHLAUTH(通道名) type(ADDRESSMAP) ADDRESS(*) USERSRC(CHANNEL) CHCKCLNT(REQUIRED) 
 set CHLAUTH(通道名) TYPE(BLOCKUSER) USERLIST('mqm') 
 
 
 REFRESH SECURITY TYPE(CONNAUTH)

9、新增认证用户

新增一个系统用户,属组为mqm即可作为认证用户

useradd -g mqm -u 1004 testuser
passwd testuser

设置编码字符

# 设置为ascii编码:
 mqm@10-10-10-2:/opt/mqm/bin$ ./runmqsc QMGR_TEST
 5724-H72 (C) Copyright IBM Corp. 1994, 2021.
 Starting MQSC for queue manager QMGR_TEST.
 
 
 ALTER QMGR CCSID(1252) 
  1 : ALTER QMGR CCSID(1252) 
 AMQ8005I: IBM MQ queue manager changed.
 end
  2 : end
 One MQSC command read.
 No commands have a syntax error.
 All valid MQSC commands were processed

消息读写测试验证

其中,testuser为测试用户,testuser123为测试密码。

这里是用了python的pymqi模块发送和消费消息。

  • 安装:
pip install pymqi
 
 
 #注意,如果需要使用pymqi模块,并且还需要依赖MQ的SDK组件。
 dpkg -i ibmmq-sdk_9.2.2.0_amd64.deb
  • 示例如下:
 #!/usr/bin/python
 
 
 import pymqi
 
 queue_manager = 'QMGR_TEST'
 channel = 'CHL_TEST'
 host = '10.10.10.2'
 port = '1416'
 queue_name = 'Q_TRAN_TEST_IN'
 message = 'Hello from Python!'
 conn_info = '%s(%s)' % (host, port)
 
 qmgr = pymqi.connect(queue_manager, channel, conn_info, 'testuser', 'testuser123')
 
 queue = pymqi.Queue(qmgr, queue_name)
 queue.put(message)
 queue.close()
 
 qmgr.disconnect()
 
 # How to get the message off a queue¶
 
 qmgr = pymqi.connect(queue_manager, channel, conn_info, 'testuser', 'testuser123')
 
 queue = pymqi.Queue(qmgr, queue_name)
 message = queue.get()
 print(message)
 queue.close()
 
 qmgr.disconnect()
 

更多IBM MQ相关内容详见:
IBM MQ系列:WebSphere MQ快速入门
IBM MQ系列:(集群版)部署及初始化
IBM MQ系列:(单机版)部署调试
IBM MQ系列:认证及队列创建
IBM MQ系列:(集群版)配置参考指引
IBM MQ系列:(client to service) SSL配置指引
IBM MQ系列:python客户端安装指引
IBM MQ系列:重置序列号
IBM MQ系列:备份与恢复
IBM MQ系列:操作命令手册
IBM MQ系列:队列管理器无法正常启动修复方案

版权声明:
作者:cc
链接:https://www.techfm.club/p/50330.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>