連線IBM websphere MQ原因碼報2035的錯誤解決辦法

CloudSpace發表於2008-07-08
我們的系統使用了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傳送訊息和接收訊息我都除錯通過了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14789789/viewspace-374497/,如需轉載,請註明出處,否則將追究法律責任。

相關文章