java - 使用 MQ JMS 连接到 IBM MQ 时出现 MQRC_NOT_AUTHORIZED 错误

标签 java jms ibm-mq

我无法从我的 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();

最佳答案

如果省略 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!");

关于java - 使用 MQ JMS 连接到 IBM MQ 时出现 MQRC_NOT_AUTHORIZED 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59609456/

相关文章:

java - 缺少@AnnotationDrivenTx Spring3

java - 注释一个bean @DependsOn 是否意味着依赖bean 将被实例化或初始化?

java - JMS 队列 : how to store message in the queue until flag is set to true

java - 自定义 IBM MQ 的自动重新连接设置

websphere - 在 Websphere Application Server 上运行的消息驱动 Bean (MDB),保持 channel 连接打开

java - 有没有办法可以在Java中打印两个纪元时间之间的所有天数?

java - 如何从 SPARQL 端点获取 RDF 文件?

java - 如果 autocommit 设置为 true,我的批处理是否真的按预期执行?

java - Spring JmsTemplate + 安全

ibm-mq - 使用spring JmsTemplate发送消息时的MQRC_UNKNOWN_ALIAS_BASE_Q