但在新建队列连接工厂,测试连接的时候出现2035的错误。
通过google,得知如下原因:
通常情况下,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
相关命令:
1、登陆MQ 命令行,QM_KC为队列管理器名称
runmqsc QM_KC
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)