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.(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 进行设置创建的队列管理器,那么你需要修改队列管理器的属性-->通信-->通道认证记录改为禁用(默认是启用的)。

你可能感兴趣的:(MQ)