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

问题描述 投票:0回答:2

我无法从Java客户端使用JMS方式的MQ类使用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').

我没有任何信用凭证,以便为没有启用认证。我这是试图使用MQ类的Java工作正常连接到IBM MQ等应用。我在这里想念什么吗?

我阅读了与此错误有关的所有其他帖子,并进行了一些研究,但我在任何地方都没有适当的解决方案,因此发布了此问题。让我知道是否需要更多详细信息

编辑:我没有访问AMQERR01.LOG /服务器或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();
java jms ibm-mq
2个回答
0
投票

它,如果你离开了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!");

0
投票

最后,当我更改频道名称时,我摆脱了这个问题。以前,我的频道名称是SYSTEM.DEF.SVRCONN。我已更改为其他频道名称(由管理团队的某人创建。)因此,基本上,问题是该频道无权连接。

© www.soinside.com 2019 - 2024. All rights reserved.