【发布时间】:2020-04-23 20:10:33
【问题描述】:
我无法从我的 java 客户端使用用于 JMS 的 MQ 类连接到 IBM MQ。错误日志说
com.ibm.msg.client.jms.DetailedJMSSecurityRuntimeException: JMSWMQ2013: The security authentication was not valid that was supplied for QueueManager 'TESTQUEUE' with connection mode 'Client' and host name 'xxxx'
Caused by: com.ibm.mq.MQException: JMSCMQ0001: IBM MQ call failed with compcode '2' ('MQCC_FAILED') reason '2035' ('MQRC_NOT_AUTHORIZED').
我没有任何凭据可提供,因为没有启用身份验证。我的其他应用程序正在尝试使用 Java 的 MQ 类连接到 IBM MQ 工作正常。 我在这里错过了什么吗?
我阅读了与此错误相关的所有其他帖子并进行了一些研究,但我在任何地方都没有得到适当的解决方案,因此发布了这个问题。如果您需要更多详细信息,请告诉我
编辑:我无权访问 AMQERR01.LOG/server 或 MQExplorer。
IBM MQ 队列管理器版本:8.0.0.11
用于 JMS JAR 的 IBM MQ 类:com.ibm.mq.allclient-9.1.0.0.jar
代码示例:
jmsConFac.connectionsetIntProperty(WMQConstants.WMQ_CONNECTION_MODE, WMQConstants.WMQ_CM_CLIENT);
jmsConFac.setBooleanProperty(WMQConstants.USER_AUTHENTICATION_MQCSP, false);
JMSContext context = jmsConFac.createContext();
【问题讨论】:
-
当 JMS 应用程序收到此错误时,
TESTQUEUE队列管理器的AMQERR01.LOG文件中会显示什么错误?队列管理器是什么版本的 IBM MQ?用于 JMS jar 文件的 IBM MQ 类来自哪个版本?你如何连接?你打电话给createQueueConnection还是createConnection。你传递任何参数吗? -
已添加请求的详细信息@JoshMc。谢谢
-
如果您无权访问
AMQERR01.LOG,请向 MQ 管理员询问此信息。客户端的 2035 是一个通用错误,可能有多种原因,队列管理器日志会告诉您具体原因是什么。 -
如果代码未在 createQueueConnection 方法上设置 UserId(和可选密码),则 MQ 客户端库将使用运行应用程序的 UserId。
-
客户端 jars(java 的 ibm mq 类)能够连接到通道但(jms 的 ibm mq 类)无法连接到同一通道的可能情况吗?这是可能和可行的方案吗?