3
我想從獨立程序連接一個隊列管理器,並得到以下錯誤。從獨立程序|連接IBM MQ錯誤:('MQRC_NOT_AUTHORIZED')
Caused by: com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ call failed with compcode '2' ('MQCC_FAILED') reason '2035' ('MQRC_NOT_AUTHORIZED').
我知道連接ID需要在MQ上進行配置以允許此連接。
但奇怪的是,當我嘗試從Websphere Application Server(WAS)連接時,我已成功連接到隊列。 我的獨立程序使用與WAS相同的JDK。
這兩個程序的JVM ID應該相同嗎?
我正在使用CCDT文件連接到隊列。
要添加到此答案(感謝您引用Technote,順便說一下)由Java/JMS WMQ客戶端發送的ID取決於您使用的是哪個版本。但試圖讓客戶發送正確的ID是相反的。如果您允許客戶端設置ID,則用於授權連接的值可能會更改並導致身份驗證失敗。最好安排在QMgr根據證書DN(最好),IP地址或客戶端傳遞的ID映射設置所需的'MCAUSER'值,但僅限於枚舉列表中經過驗證且合法的映射一個靜態值。 –
映射客戶端ID與答案中提到的「MCAUSER」設置類似,但使用「CHLAUTH」規則動態映射到任意數量的值或從任意數量的值中動態映射。另外,如果使用WMQ資源管理器,請務必安裝[SupportPac MS0P](http://ibm.co/SupptPacMS0P)並啓用授權事件。這會告訴您失敗的API調用,涉及的對象,進行調用的用戶ID以及使用的確切選項。這有助於調試auths錯誤,因此您知道,例如,它是「OPEN」而不是「CONNECT」失敗,反之亦然。 –
感謝您的回覆。我們的確在使用QMgr方面的授權。這只是我正在與另一個用戶一起運行獨立程序。我將其添加到權限列表中,並解決了問題。 – Mehshad