用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的异常。调了好久没能成功,请大虾们指导!
-
#1 得分:0这是授权问题
查看IBM的infocenter看看怎么授权
https://bbs.csdn.net/topics/380091412
=====================================================================================/p>
在was中配置队列链接工厂的JNDI的时候,配置工作完成,点击测试连接,确报了一个令人伤心的错误,错误代码2035 权限有问题,头疼啊,有的机器是好好的,有的机器确不行,然后一番百度和Google,终于找到一个有用的帖子:
http://space.itpub.net/14789789/viewspace-374497
原文如下:
我们的系统使用了ibm mq,用户用来向国家局上报文件和接收文件,前几天用户说上报一直不成功。由于 开发这块程序的人已经辞职了,我觉定在我的机器部署一套,研究一下。我的思路: 在我的机器上安装mq,建立两个队列,一个用来接收,一个用来发送;在另外一台机器上,发布应用程序,通 过java client向我的机器的队列发送消息和接收消息。 mq安装成功,队列管理器、队列、通道也都建起来了,用mq自带的api检测程序检测也成功了。 接下来,在另外一台机器上通过程序发送消息,结果就是不行,总是报原因码是2035的错误,折腾了一下 午,我终于明白了故障原因,原来是用户权限,在网上找到了解决办法。 通常情况下,MQ客户端与MQ服务器端通讯时,使用MQ服务器端的服务连接通道在MCAUSER属性中指定的 用户作为MQ客户端连上来时使用的用户,如果MCAUSER属性值为空,则使用MQ客户端所在操作系统使用 的用户作为MQ客户端连上来时使用的用户。通讯时,报2035错误,就是由于客户端与服务器端通讯时所使 用的用户没有权限造成的。解决办法有两种:
如下右击你的通道名称,然后点击属性,在弹出的窗口里面选择MCA,并在MCA用户表示处输入:MUSR_MQADMIN
还有一种方案:
找到mq的安装目录下的bin目录,在cmd环境下执行命令runmqsc 然后执行命令 alter qmgr chlauth(disabled) 把权限验证下掉就可以了
出处:https://blog.csdn.net/yaominhua/article/details/6387460
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/9479380.html
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!
posted on 2018-08-15 08:57 jack_Meng 阅读(3508) 评论(0) 编辑 收藏 举报