在我们开发的应用系统需要和其他系统进行通信的时候,如果使用MQ来通信,我们当前的用户必须有执行MQ的权限,否则会出现MQ的2035错误(无法连接队列管理器),也就是用户没有权限执行MQ。此时可以使用命令:usermod -G mqm fxcctst 把fxcctst用户加入执行mq的用户组中。
注意:这里的mqm为执行mq权限的用户所在组,fxcctst为需要加入mq用户组的用户名。(必须使用root用户执行)
最后在使用runmqsc 时,若是包AMQ8135错误,则当前用户没有权限运行,也就是说用户未在mqm群组中。
5724-H72 (C) Copyright IBM Corp. 1994, 2005. ALL RIGHTS RESERVED.
Starting MQSC for queue manager IBM.TEST.MQ.
MQ8135: Not authorized.
No MQSC commands read.
No commands have a syntax error.
All valid MQSC commands were processed.
其实不是这样的,主要是因为mq得安全缓存不会立即更新,刷新就可以了。但是亦有用户在修改群组属性添加了mqm群组后依然无法使用runmqsc,。需要在runmqsc里输入refresh security(*) 来刷新安全缓存(当然,首先得找个可以运行runmqsc的用户),亦可以通过重启消息管理器来实现。