我在一台工作站上面部署了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



