首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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]。由于我使用的 MQ 版本是 7.5 , 在 MQ 7.5 以后引入了一个通道认证记录 , 这个通道认证记录在创建 MQ 的时候是默认开启的 , 这个通道认证记录的作用相当于对连接 MQ 的客户机做一层认证 , 即:只有在通道认证记录里面进行过认证的客户机 , 才能被允许连接 MQ , 知道这个后 , 我选择最简单粗暴的方法 , 通过命令ALTER QMGR CHLAUTH(DISABLED)将通道认证记录关闭 , 再次重启客户机 , 连接成功。MQ 通信方式这里我总结的信息 , 主要是参考了最后参考资料 [4] 那篇博客 , 感兴趣的可以去那篇博客里看具体的操作方法。单机测试单机测试顾名思义 , 就是新建一个队列 , 我将信息塞到这个队列里去后 , 我再将信息从这个队列里取出来。具体如何 put 和 get , 可以参考我的上一篇博文。两个 MQ 通信测试这种通信方式即新建两个 MQ, 在 MQ_SEND 的队列中 put 信息 , 之后能从 MQ_REC 中将 put 到 MQ_SEND 中的信息取出来。具体如何操作 , 也可以参考我的上一篇博文。客户机-服务器通信这种通信方式为通过客户机连接服务器 MQ , 在客户机上将信息塞进服务器 MQ 的队列中 , 之后我们能从服务器 MQ 上进行 get 操作将信息取出。注意这里的 put 操作发生在客户机上 , get 操作发生在服务器上。参考资料[1].webSphere MQ使用(2035错误)(http://blog.163.com/hust_mylong/blog/static/28992479200842024257431/)[2].Websphere MQ 8.0 解决客户机连接报2035错误码(http://www.cnblogs.com/yangjinbiao/p/6389994.html)[4].[M WebSphere MQ 系列(三)配置和使用WebSphere MQ](http://kakajw.iteye.com/blog/1829684)

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180324G0T2AH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券