1. 程式人生 > >MQ遇到的錯誤(2035 或 2013認證錯誤)。

MQ遇到的錯誤(2035 或 2013認證錯誤)。

java 連線 IBM MQ時出現 2035 或 2013認證錯誤的解決
com.ibm.msg.client.jms.DetailedJMSSecurityException: JMSWMQ2013: 為佇列管理器“QM1”提供的安全性認證無效,連線方式為“Client”,主機名為“9.186.105.212(1414)”。 請檢查提供的使用者名稱和密碼在您連線至的佇列管理器中是否正確。
 at com.ibm.msg.client.wmq.common.internal.Reason.reasonToException(Reason.java:540)
 at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:236)
 at com.ibm.msg.client.wmq.internal.WMQConnection.<init>(WMQConnection.java:440)
 at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7ProviderConnection(WMQConnectionFactory.java:7062)
 at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProviderConnection(WMQConnectionFactory.java:6453)
 at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createConnection(JmsConnectionFactoryImpl.java:295)
 at com.ibm.mq.jms.MQConnectionFactory.createCommonConnection(MQConnectionFactory.java:6230)
 at com.ibm.mq.jms.MQTopicConnectionFactory.createTopicConnection(MQTopicConnectionFactory.java:114)
 at com.jn.test.MQPublisher.main(MQPublisher.java:39)
 Caused by: com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ 呼叫失敗,完成程式碼為“2”(“MQCC_FAILED”),原因為“2035”(“MQRC_NOT_AUTHORIZED”)。
 at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:223)
 ... 7 more
 
 
 
解決方法:
 (1)登入伺服器 進入 IBM mq 所在目錄 (linux一般在/opt/mqm下),再進入bin目錄 切換到mqm使用者(su mqm),輸入runmqsc QM1 (QM1 是你的佇列管理器的名字),進入命令模式,輸入 dis qmgr 檢視 資源管理器的屬性CHLAUTH預設值是ENABLED的改成DISABLED的 輸入命令  ALTER QMGR CHLAUTH(DISABLED)  ,然後測試是否可用,如果還不可以請看第二步。


(2)
輸入 ALTER CHL(SYSTEM.DEF.SVRCONN) CHLTYPE(SVRCONN) MCAUSER('mqm')
 
SYSTEM.DEF.SVRCONN 是通道的名字
 
SVRCONN 是通道的型別
 
mqm 是mq的使用者
 
一般linux安裝完mq後 都會自動出現mqm使用者。

如果你是使用 IBM WebSphere MQ Explorer 進行設定建立的佇列管理器,那麼你需要修改佇列管理器的屬性-->通訊-->通道認證記錄改為禁用(預設是啟用的)。