【发布时间】:2017-11-02 17:35:35
【问题描述】:
我的应用程序使用 MQ 7 和以下驱动程序 - com.ibm.mq.jms、com.ibm.mq.jmqi 和 com.ibm.mq.pcf - 版本 7.0.1.6。我们最近升级到 MQ 9,所以我用com.ibm.mq.allclient、com.ibm.mq.traceControl(版本 9.0.0.0-p900-L160512.4)和javax-jms-api-2.0.1(必须包含这个 JAR,因为它给出了 JMSRuntimeException 错误)替换了驱动程序这个 JAR 的一部分的类)。现在,当我使用升级的驱动程序尝试连接到 MQ 9 服务器运行应用程序时,我收到以下错误。当我用以前的驱动程序替换驱动程序时,应用程序按预期工作。
谁能告诉我我用来连接 MQ 9 的驱动程序是否正确?我是否缺少任何其他 JAR 文件?还是有其他原因导致以下错误?
Exception in thread "main" {_name=com.epo.core.SystemException, com.ibm.msg.client.jms.DetailedJMSSecurityException=com.ibm.msg.client.jms.DetailedJMSSecurityException: JMSWMQ2013: The security authentication was not valid that was supplied for QueueManager 'queue' with connection mode 'Client' and host name 'Hostname(port)'.
Please check if the supplied username and password are correct on the QueueManager to which you are connecting.
at com.ibm.msg.client.wmq.common.internal.Reason.reasonToException(Reason.java:531)
at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:215)
at com.ibm.msg.client.wmq.internal.WMQConnection.<init>(WMQConnection.java:422)
at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7ProviderConnection(WMQConnectionFactory.java:8475)
at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProviderConnection(WMQConnectionFactory.java:7913)
at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl._createConnection(JmsConnectionFactoryImpl.java:299)
at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createConnection(JmsConnectionFactoryImpl.java:236)
at com.ibm.mq.jms.MQConnectionFactory.createCommonConnection(MQConnectionFactory.java:6024)
at com.ibm.mq.jms.MQQueueConnectionFactory.createQueueConnection(MQQueueConnectionFactory.java:111)
. . .
Caused by: com.ibm.mq.MQException: JMSCMQ0001: IBM MQ call failed with compcode '2' ('MQCC_FAILED') reason '2035' ('MQRC_NOT_AUTHORIZED').
at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:203)
... 14 more
}
【问题讨论】:
-
MQ 队列管理器有什么版本?它是否也升级或更改了?您能否在获得
JMSWMQ2013的同时找出队列管理器AMQERR01.LOG中出现的错误。如果您提供与JMSWMQ2013一起提供的链接异常,也会很有帮助。您能否提供示例代码来展示如何将 Java 应用程序中的凭证传递给 IBM MQ。如果 MQ 服务器是 v8 或更高版本,则提供DIS QMGR CONNAUTH和DIS AUTHINFO(<value from QMGR CONNAUTH>) ALL的输出。对于 v7.1 及更高版本,包括 v8/v9 还提供DIS QMGR CHLAUTH。 -
另外,请确保您单击问题下方的编辑链接并将详细信息添加到您的问题中,不要尝试将它们添加为 cmets,因为它们的格式不正确且不可搜索。
-
我将再次询问我在第一条评论中提供的所有信息,以帮助您解决问题,您似乎提供了链接的异常,但如果没有服务器端错误日志详细信息,它会只是一个猜测。 @a_cornish_pasty 答案很可能是问题的原因。