Java 鏈接 IBM MQ時出現 2035 或 2013認證錯誤的解決
com.ibm.msg.client.jms.DetailedJMSSecurityException: JMSWMQ2013: 爲隊列管理器「QM1」提供的安全性認證無效,鏈接方式爲「Client」,主機名爲「9.186.105.212(1414)」。請檢查提供的用戶名和密碼在您鏈接至的隊列管理器中是否正確。
atcom.ibm.msg.client.wmq.common.internal.Reason.reasonToException(Reason.java:540)
at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:236)
atcom.ibm.msg.client.wmq.internal.WMQConnection.<init>(WMQConnection.java:440)
atcom.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7ProviderConnection(WMQConnectionFactory.java:7062)
atcom.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProviderConnection(WMQConnectionFactory.java:6453)
atcom.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createConnection(JmsConnectionFactoryImpl.java:295)
at com.ibm.mq.jms.MQConnectionFactory.createCommonConnection(MQConnectionFactory.java:6230)
atcom.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」)。
atcom.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:223)
... 7 more
解決方法:
(1)登陸服務器進入 IBM mq所在目錄(linux通常在/opt/mqm下),再進入bin目錄切換到mqm用戶(su mqm),輸入runmqscQM1 (QM1 是你的隊列管理器的名字),進入命令模式,輸入 disqmgr 查看資源管理器的屬性CHLAUTH默認值是ENABLED的改爲DISABLED的輸入命令 ALTER QMGRCHLAUTH(DISABLED) ,而後測試是否可用,若是還不能夠請看第二步。java
(2)
輸入 ALTERCHL(SYSTEM.DEF.SVRCONN) CHLTYPE(SVRCONN) MCAUSER('mqm')
SYSTEM.DEF.SVRCONN 是通道的名字
SVRCONN 是通道的類型
mqm 是mq的用戶
通常linux安裝完mq後都會自動出現mqm用戶。linux
若是你是使用 IBM WebSphere MQ Explorer 進行設置建立的隊列管理器,那麼你須要修改隊列管理器的屬性-->通訊-->通道認證記錄改成禁用(默認是啓用的)。安全
參考博文:http://blog.csdn.net/zzhhcc0707/article/details/8267727服務器