用IBM MQ中间件开发碰到的MQRC_NOT_AUTHORIZED(2035)问题

我在一台工做站上面部署了MQ服务器,在MQ服务器中我创建了队列管理器MQ_TEST,在该队列管理器中我创建了一个本地队列MQ_Q以及一个服务器链接通道MQ_C,MQ_C中的MCA用户标识默认为空。同时我在该系统中新建了一个MYTEST系统帐号,并把该系统帐号加入到mqm组中。客户端代码我是用C#开发的应用程序,部署在另一台笔记本上,部分代码以下:
MQEnvironment.Hostname = "192.168.0.8";
MQEnvironment.Channel ="MQ_C";
MQEnvironment.Port = 1414;
MQEnvironment.UserId = "MYTEST";  //在服务器中建立的系统用户
MQEnvironment.Password = "123";
qMgr = new MQQueueManager("MQ_TEST");    //链接队列管理器
linkStatus = "链接队列管理器:" + HostName + "成功!";
当我在运行客户端程序时,执行到qMgr = new MQQueueManager("MQ_TEST"); 这句时就会报MQRC_NOT_AUTHORIZED的异常。调了很久没能成功,请大虾们指导!html

 

 
 

 

https://bbs.csdn.net/topics/380091412java

=====================================================================================/p>api

在was中配置队列连接工厂的JNDI的时候,配置工做完成,点击测试链接,确报了一个使人伤心的错误,错误代码2035 权限有问题,头疼啊,有的机器是好好的,有的机器确不行,而后一番百度和Google,终于找到一个有用的帖子:服务器

http://space.itpub.net/14789789/viewspace-374497post

原文以下:测试

咱们的系统使用了ibm mq,用户用来向国家局上报文件和接收文件,前几天用户说上报一直不成功。因为 开发这块程序的人已经辞职了,我觉定在个人机器部署一套,研究一下。个人思路: 在个人机器上安装mq,创建两个队列,一个用来接收,一个用来发送;在另一台机器上,发布应用程序,通 过java client向个人机器的队列发送消息和接收消息。 mq安装成功,队列管理器、队列、通道也都建起来了,用mq自带的api检测程序检测也成功了。 接下来,在另一台机器上经过程序发送消息,结果就是不行,老是报缘由码是2035的错误,折腾了一下 午,我终于明白了故障缘由,原来是用户权限,在网上找到了解决办法。 一般状况下,MQ客户端与MQ服务器端通信时,使用MQ服务器端的服务链接通道在MCAUSER属性中指定的 用户做为MQ客户端连上来时使用的用户,若是MCAUSER属性值为空,则使用MQ客户端所在操做系统使用 的用户做为MQ客户端连上来时使用的用户。通信时,报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组中,以及有执行队列管理器上的操做所必需的权限。 这两种办法我都试了,均可以。 至此,经过java程序向mq发送消息和接收消息我都调试经过了。

 

以下右击你的通道名称,而后点击属性,在弹出的窗口里面选择MCA,并在MCA用户表示处输入:MUSR_MQADMINspa

 

还有一种方案:操作系统

找到mq的安装目录下的bin目录,在cmd环境下执行命令runmqsc 而后执行命令 alter qmgr chlauth(disabled) 把权限验证下掉就能够了.net

 

出处:https://blog.csdn.net/yaominhua/article/details/6387460调试

相关文章
相关标签/搜索