关于IBM MQ 在 WIN8.1 系统下的授权问题
简单点描述:WIN8.1系统没有用户组概念,而MQ7.0以后的版本都有很严格的权限认证,导致我在程序中连接MQ的时候会提示2035的错误,应该是权限不足,我就一个用户 是属于管理员,怎么运行cmd都不是管理员身份,居然没有runmqsc的权限,不过使用管理员运行cmd是可以 运行runmqsc了 但是 程序里面 通过服务器连接通道还是连不了,说要把用户加入mqm用户组 还是授权啥的,WIN8。1根本就没有用户组这个概念,请问怎么用java连接呢?
具体描述如下:
PS:最近下了个MQ 用来传输测试,但是遇到一个头疼的问题,在面向java编程的借口下
只是才测试连接(接受,发送还没开始弄)就报错,经各种调试修正后,报错如下:
MQJE001: 完成代码为 '2',原因为 '2035'。
com.ibm.mq.MQException: MQJE001: 完成代码为 '2',原因为 '2035'。
at com.ibm.mq.MQManagedConnectionJ11.<init>(MQManagedConnectionJ11.java:247)
at com.ibm.mq.MQClientManagedConnectionFactoryJ11._createManagedConnection(MQClientManagedConnectionFactoryJ11.java:588)
at com.ibm.mq.MQClientManagedConnectionFactoryJ11.createManagedConnection(MQClientManagedConnectionFactoryJ11.java:630)
at com.ibm.mq.StoredManagedConnection.<init>(StoredManagedConnection.java:107)
搜了一下,2035基本可以确认为 此用户没有连接权限
有查询到如下的 解决办法:
(((( 用的用户没有权限造成的。解决办法有两种:
方法1:
假如在服务器端的服务连接通道定义中设置MCAUSER属性的值为MUSR_MQADMIN:(下例中假设通道定义名为DT_SERVER_CHL) ALTER CHANNEL(DT_SERVER_CHL) CHLTYPE(SVRCONN) MCAUSER("MUSR_MQADMIN")
一定要确保MUSR_MQADMIN用户为mqm组的成员,具体办法随MQ 服务器所在的操作系统而定,在此就不再赘述。
方法2:
若保持MQ服务器端的通道定义的MCAUSER属性值为缺省值,即为空,则可将MQ客户端所使用的用户添加
到MQ服务器所在的操作系统中。
例如,若MQ客户端使用的用户为ADMIN,则在MQ服务器端添加用户ADMIN,并保证此用户在MQ服务器端的mqm组中,以及有执行队列管理器上的操作所必需的权限。
这两种办法我都试了,都可以。
还有一种方案:
找到mq的安装目录下的bin目录,在cmd环境下执行命令runmqsc 然后执行命令 alter qmgr chlauth(disabled) 把权限验证下掉就可以了
))))
以上的解决方法 第一种 告诉我语法错误,第二种,没有用户组概念,第三种 运行成功了,但是程序还是报错。