當C# 或 java 連接 IBM MQ 是出現 2035 或 2013的錯誤時
java的錯誤提示:
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.(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
解決方法:
登錄服務器 進入 IBM mq 所在目錄 (linux一般在/opt/mqm下),再進入bin目錄 切換到mqm用戶(su mqm),輸入runmqsc QM1 (QM1 是你的隊列管理器的名字),進入命令模式,輸入 ALTER CHL(SYSTEM.DEF.SVRCONN) CHLTYPE(SVRCONN) MCAUSER('mqm')
SYSTEM.DEF.SVRCONN 是通道的名字
SVRCONN 是通道的類型
mqm 是mq的用戶
一般linux安裝完mq后 都會自動出現mqm用戶。