gpt4 book ai didi

java - 尝试运行 JMS-MQ 程序时出现身份验证错误

转载 作者:行者123 更新时间:2023-12-01 23:57:13 25 4
gpt4 key购买 nike

我之前曾在独立应用程序中运行类似的代码,但现在使用 MQ 版本 8 时会出现异常。出现错误

com.ibm.msg.client.jms.DetailedJMSSecurityException: JMSWMQ2013:...
Cause by
Caused by: com.ibm.mq.MQException: JMSCMQ0001: IBM MQ call failed with compcode '2' ('MQCC_FAILED') reason '2035' ('MQRC_NOT_AUTHORIZED').

我已经尝试通过给出以下命令来禁用 CHLAUTH

       :
ALTER QMGR CHLAUTH (DISABLED)

1 : ALTER QMGR CHLAUTH (DISABLED)

AMQ8005: WebSphere MQ queue manager changed.

:
          MQQueueConnectionFactory cf = new MQQueueConnectionFactory();

// Config
cf.setHostName("localhost");
cf.setPort(1414);
cf.setTransportType(JMSC.MQJMS_TP_CLIENT_MQ_TCPIP);
cf.setQueueManager("QM_TEST");
cf.setChannel("DEV.APP.SVRCONN");

MQQueueConnection connection = (MQQueueConnection)
cf.createQueueConnection();

MQQueueSession session = (MQQueueSession)
connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
MQQueue queue = (MQQueue)
session.createQueue("queue:///Q1");
MQQueueSender sender = (MQQueueSender)
session.createSender(queue);
MQQueueReceiver receiver = (MQQueueReceiver)
session.createReceiver(queue);

long uniqueNumber = System.currentTimeMillis() % 1000;
JMSTextMessage message = (JMSTextMessage)
session.createTextMessage("Client Message "+ uniqueNumber);

// Start the connection
connection.start();

sender.send(message);
System.out.println("Sent message:\\n" + message);

JMSMessage receivedMessage = (JMSMessage) receiver.receive(10000);
System.out.println("\\nReceived message:\\n" + receivedMessage);

sender.close();
receiver.close();
session.close();
connection.close();

即使在如上所述禁用 CHLAUTH 后,我仍然遇到异常

com.ibm.msg.client.jms.DetailedJMSSecurityException: JMSWMQ2013: The security authentication was not valid that was supplied for QueueManager 'QM_TEST' with connection mode 'Client' and host name 'localhost(1414)'.
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:424)
at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7ProviderConnection(WMQConnectionFactory.java:8475)
at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProviderConnection(WMQConnectionFactory.java:7815)
at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl._createConnection(JmsConnectionFactoryImpl.java:303)
at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createConnection(JmsConnectionFactoryImpl.java:236)
at com.ibm.mq.jms.MQConnectionFactory.createCommonConnection(MQConnectionFactory.java:6016)
at com.ibm.mq.jms.MQQueueConnectionFactory.createQueueConnection(MQQueueConnectionFactory.java:111)
at com.ibm.mq.jms.MQQueueConnectionFactory.createConnection(MQQueueConnectionFactory.java:187)
at SimplePointToPoint.main(SimplePointToPoint.java:31)
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)
... 9 more

添加 AMQERR01.LOG 日志文件内容

----- amqxfdcp.c : 868 --------------------------------------------------------
10/1/2019 23:07:44 - Process(3172.4) User(MUSR_MQADMIN) Program(amqzmur0.exe)
Host(MYNEW-PC) Installation(Installation1)
VRMF(8.0.0.5)
AMQ6119: An internal WebSphere MQ error has occurred ()

EXPLANATION:
MQ detected an unexpected error when calling the operating system. The MQ error
recording routine has been called.
ACTION:
Use the standard facilities supplied with your system to record the problem
identifier and to save any generated output files. Use either the MQ Support
site: http://www.ibm.com/software/integration/wmq/support/, or IBM Support
Assistant (ISA): http://www.ibm.com/software/support/isa/, to see whether a
solution is already available. If you are unable to find a match, contact your
IBM support center. Do not discard these files until the problem has been
resolved.
----- amqxfdcp.c : 829 --------------------------------------------------------
10/1/2019 23:07:44 - Process(3172.4) User(MUSR_MQADMIN) Program(amqzmur0.exe)
Host(MYNEW-PC) Installation(Installation1)
VRMF(8.0.0.5)
AMQ6184: An internal WebSphere MQ error has occurred on queue manager QM_TEST.

EXPLANATION:
An error has been detected, and the WebSphere MQ error recording routine has
been called. The failing process is process 3172.
ACTION:
Use the standard facilities supplied with your system to record the problem
identifier and to save any generated output files. Use either the MQ Support
site: http://www.ibm.com/software/integration/wmq/support/, or IBM Support
Assistant (ISA): http://www.ibm.com/software/support/isa/, to see whether a
solution is already available. If you are unable to find a match, contact your
IBM support center. Do not discard these files until the problem has been
resolved.
----- amqxfdcp.c : 868 --------------------------------------------------------
10/2/2019 00:13:25 - Process(6536.5) User(MUSR_MQADMIN) Program(amqzmur0.exe)
Host(MYNEW-PC) Installation(Installation1)
VRMF(8.0.0.5)
AMQ6125: An internal WebSphere MQ error has occurred.

EXPLANATION:
An internal error has occurred with identifier 20806248. This message is
issued in association with other messages.
ACTION:
Use the standard facilities supplied with your system to record the problem
identifier and to save any generated output files. Use either the MQ Support
site: http://www.ibm.com/software/integration/wmq/support/, or IBM Support
Assistant (ISA): http://www.ibm.com/software/support/isa/, to see whether a
solution is already available. If you are unable to find a match, contact your
IBM support center. Do not discard these files until the problem has been
resolved.
----- amqxfdcp.c : 829 --------------------------------------------------------
10/2/2019 00:13:25 - Process(6536.5) User(MUSR_MQADMIN) Program(amqzmur0.exe)
Host(MYNEW-PC) Installation(Installation1)
VRMF(8.0.0.5)
AMQ6184: An internal WebSphere MQ error has occurred on queue manager QM_TEST1.

EXPLANATION:
An error has been detected, and the WebSphere MQ error recording routine has
been called. The failing process is process 6536.
ACTION:
Use the standard facilities supplied with your system to record the problem
identifier and to save any generated output files. Use either the MQ Support
site: http://www.ibm.com/software/integration/wmq/support/, or IBM Support
Assistant (ISA): http://www.ibm.com/software/support/isa/, to see whether a
solution is already available. If you are unable to find a match, contact your
IBM support center. Do not discard these files until the problem has been
resolved.
----- amqxfdcp.c : 868 --------------------------------------------------------

最佳答案

以下是作为客户端连接 MQ 服务器的两种方法。

1) 下面的客户端调用使用默认用户身份创建队列连接。

      public QueueConnection createQueueConnection( ) throws JMSException

2) 下面的客户端调用使用默认用户身份创建队列连接。

    public QueueConnection createQueueConnection( String userid,String password) throws JMSException

由于您使用了第一种方法,看起来默认系统用户 ID 已发送到 MQ 服务器,并且由于您将 CHCKCLNT 设置为可选,因此队列管理器正在检查正确的用户名/密码对。因此,您得到了 MQRC 2035。因此,您可以通过将 CHCKCLNT 的值更新为 NONE 来禁用队列管理器正在执行的验证来解决该问题。

查找 createQueueConnection 方法的链接 => https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_7.1.0/com.ibm.mq.javadoc.doc/WMQJMSClasses/com/ibm/mq/jms/MQQueueConnectionFactory.html

关于java - 尝试运行 JMS-MQ 程序时出现身份验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58196384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com