用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的異常。調了好久沒能成功,請大蝦們指導!

 

 
 

 

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錯誤,就是由於客戶端與服務器端通訊時所使 用的用戶沒有權限造成的。解決辦法有兩種:
 
 
方法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_MQADMIN

 

還有一種方案:

找到mq的安裝目錄下的bin目錄,在cmd環境下執行命令runmqsc 然后執行命令 alter qmgr chlauth(disabled) 把權限驗證下掉就可以了

 

出處:https://blog.csdn.net/yaominhua/article/details/6387460


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM