我在一臺工做站上面部署了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錯誤,就是因爲客戶端與服務器端通信時所使 用的用戶沒有權限形成的。解決辦法有兩種:
以下右擊你的通道名稱,而後點擊屬性,在彈出的窗口裏面選擇MCA,並在MCA用戶表示處輸入:MUSR_MQADMINspa
還有一種方案:操作系統
找到mq的安裝目錄下的bin目錄,在cmd環境下執行命令runmqsc 而後執行命令 alter qmgr chlauth(disabled) 把權限驗證下掉就能夠了.net
出處:https://blog.csdn.net/yaominhua/article/details/6387460調試