使用 MQ JMS 连接到 IBM MQ 时MQRC_NOT_AUTHORIZED错误



我无法使用 MQ 类 for JMS 从我的 Java 客户端连接到 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

IBM MQ classes for JMS JAR: 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();

如果省略USER_AUTHENTICATION,它是否有效?这样的事情应该有效:

// Create a connection factory
JmsFactoryFactory ff = JmsFactoryFactory.getInstance(WMQConstants.WMQ_PROVIDER);
JmsConnectionFactory cf = ff.createConnectionFactory();
// Set the properties
cf.setStringProperty(WMQConstants.WMQ_HOST_NAME, host);
cf.setIntProperty(WMQConstants.WMQ_PORT, port);
//cf.setStringProperty(WMQConstants.WMQ_CHANNEL, channel);
cf.setIntProperty(WMQConstants.WMQ_CONNECTION_MODE, WMQConstants.WMQ_CM_CLIENT);
cf.setStringProperty(WMQConstants.WMQ_QUEUE_MANAGER, queueManagerName);
// Create JMS objects
connection = cf.createConnection();
System.out.println("Connected!");

最后,我在更改频道名称时摆脱了这个问题。 以前我的频道名称是系统。定义。斯弗康。我已经更改为其他频道名称(由管理团队的某人创建。 所以基本上,问题是频道无法访问连接。

最新更新