IBM MQ 笔记(二)
引子
前几天由于工作原因刚学了 IBM MQ 的基本使用 , 等到在工作中上手的时候发现 IBM MQ 怎么都连接不上 , 查看日志发现一直在提示 MQCONN ended with reason code 2035 , 查了下这个错误发现是由于用户没有操作原因导致的 , 因此在这里记录下解决办法 , 同时也对 MQ 通信的几种方式做一个简单的总结。
2035 错误
其实最开始并不是报 2035 错误 , 最开始日志都没有打印 , 场面一度十分尴尬 , 后来经过同事排查发现是软件启动时需要的一个 so 文件引用为空 , 将问题解决后 , 再重启软件才在日志中看到这个错误。
2035 错误是指用户没有权限[1] , 当时的情况是 , 我在本地的 Linux 虚拟机上新建了一个 MQ , 之后通过将新建的 MQ 的队列、通道、ip、端口告诉了客户端(我测试的软件) , 在客户端发起连接的时候 , 被 MQ 拒绝了 , 因此当我查看客户端打印的日志的时候 , 上面提示 2035 错误 , 即客户端没有权限连接 MQ 。
后来通过查询发现在给 MQ 建立通道的时候 , 需要将通道的 MACUSER 参数设置为 mqm , mqm 是客户机投印在本地 MQ 的用户 , 在 Linux 上安装 MQ 时 , 都会默认新建这么一个用户 , 因此我通过命令
ALTER CHANNEL(QM_CHANNEL) CHLTYPE(SVRCONN) MCAUSER(‘mqm’)
为通道设置 MCAUSER 参数 , 这里有一个需要注意的点是 mqm 用户需要在 mqm 分组里 , 只有在 mqm 分组中的用户才有权限操作 MQ。ps: 可以通过 cat /etc/group 查看分组 , 通过 cat /etc/passwd 查看用户
在进行完这一系列设置后, 我重启客户端软件 , 发现日志中还是报错 , 依旧是 2035 错误 , 通过万能的搜索引擎 , 终于让我找到了解决办法[2],[3]。</