用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調試

相關文章
相關標籤/搜索