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 進行設置創建的隊列管理器,那么你需要修改隊列管理器的屬性-->通信-->通道認證記錄改為禁用(默認是啟用的)。