在一台机器上安装有MQ Server;在另外一台机器上,安装WAS,打算通过管理控制台中的资源->JMS->队列连接工厂,建立队列连接工厂到MQ Server。
但在新建队列连接工厂,测试连接的时候出现2035的错误。
通常情况下,MQ客户端(此处为WAS)与MQ服务器端通讯时,使用MQ服务器端的连接通道进行连接,
连接通道有一个属性:MCAUSER。
如果MCAUSER属性值为空,则使用MQ客户端所在的操作系统上的用户。
如果MCAUSER属性值不为空,则使用该值作为MQ客户端连上来时使用的用户,该值必须是MQ服务器上的mqm组内的用户。
当客户端与服务器端通讯时,报2035错误,就是由于客户端与服务器端通讯时所使用的用户没有权限造成的。
解决方法有两个,经过测试都可以成功连接
1.如果MQ服务器端的通道定义的MCAUSER属性值为缺省值,即为空,则可将MQ客户端所使用的用户添加到MQ服务器所在的操作系统中,并把此用户加入到mqm组中。
2.查看MQ服务器端mqm组内的用户,在服务器端的服务连接通道定义中设置MCAUSER属性的值为该用户,例如windows下的默认用户为:MUSR_MQADMIN。
win7查看用户组的方法:开始-控制面板->管理工具->计算机管理->本地用户和组-组
相关命令:
1.登陆MQ 命令行,venus.queue.manager为队列管理器名称
- runmqsc venus.queue.manager
2.查看通道定义,此处通道名称为默认的SYSTEM.DEF.SVRCONN,可以查看到MCAUSER属性
- display channel(SYSTEM.DEF.SVRCONN) all
3.修改MCAUSER属性
- ALTER CHL(SYSTEM.DEF.SVRCONN) CHLTYPE(SVRCONN) MCAUSER('MUSR_MQADMIN')
- START CHL(SYSTEM.DEF.SVRCONN)
再次查看队列管理器venus.queue.manager通道名称为SYSTEM.DEF.SVRCONN的MCAUSER属性。
如要改回来,执行如下两条命令即可。
- ALTER CHL(SYSTEM.DEF.SVRCONN) CHLTYPE(SVRCONN) MCAUSER('')
- START CHL(SYSTEM.DEF.SVRCONN)
原文地址:http://bijian1013.iteye.com/blog/2304255