连接IBM MQ原因码报2035的错误解决方法

因为已经有了IBM MQ的一些开发经验,当看到2035的时候就应该意识到是权限问题导致的。如下图


当然你也可以查看MQ的error文件夹下的日志文件,里面有详细的错误说明。

下面是测试代码:

通常情况下,MQ客户端和MQ服务器通讯时,使用MQ服务器端的服务连接通道在MCAUSER属性中指定的用户作为MQ客户端连上来时使用的用户,如果MCAUSER属性值为空,则使用MQ客户端在操作系统使用的用户作为MQ客户端连上来时使用的用户,通讯时,报2035错误,就是由于客户端与服务器端通讯时所使用的用户没有权限造成的,解决方法有两种。

方法一:

假如在服务器的服务连接通道定义中设置MCAUSER属性的值为MUSR_MQADMIN(通道定义名JMS_RECEIVE):ALTER CHANNEL(JMS_RECEIVE) CHLTYPE(SVRCONN) MCAUSER(MUSR_MQADMIN) 一定要确保MUSR_MQADMIN用户为mqm组的成员,具体如下命令:

usermod -g groupname username(修改已有的用户的所在组)

useradd -g groupname username(创建新用户及所在组)

方法二:

若保持MQ服务器端的通道定义的MCAUSER属性值为空缺省值,即为空,则可将MQ客户端所使用的用户添加到MQ服务器所在的操作系统中,例如,若MQ客户端使用的用户为ADMIN,则在MQ服务器添加用户ADMIN,并保证此用户在MQ服务器端的mqm组中,以及有执行队列管理器上的操作所必需的权限。

特别提醒:当在windows下声明mca认证后,发现还报2035,有可能是因为通道认证记录设置阻止。只需要修改一下用户列表即可。

经验分享 程序员 微信小程序 职场和发展