Как исправить ошибку 'JMSCMQ0001: сбой вызова WebSphere MQ с кодом 2' ('MQCC_FAILED') причины '2035' ('MQRC_NOT_AUTHORIZED') ' - PullRequest
0 голосов
/ 25 июня 2019

Я запускаю контейнер Docker с MQ 7.1 и пытаюсь отправить тестовое сообщение в очередь, используя приложение Java, которое отправит сообщение. Контейнер Docker работает на сервере RHEL, и я пытаюсь отправить сообщение с моего ПК с Windows, используя локально приложение Java в Eclipse.

Я отключаюсь при создании MQQueueConnection, так как получаю следующую ошибку:

Exception in thread "main" com.ibm.msg.client.jms.DetailedJMSSecurityException: JMSWMQ2013: The security authentication was not valid that was supplied for QueueManager '' with connection mode 'Client' and host name 'x.x.x.x(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:516)
    at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:216)
    at com.ibm.msg.client.wmq.internal.WMQConnection.<init>(WMQConnection.java:423)
    at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7ProviderConnection(WMQConnectionFactory.java:6772)
    at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProviderConnection(WMQConnectionFactory.java:6151)
    at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createConnection(JmsConnectionFactoryImpl.java:280)
    at com.ibm.mq.jms.MQConnectionFactory.createCommonConnection(MQConnectionFactory.java:6143)
    at com.ibm.mq.jms.MQQueueConnectionFactory.createQueueConnection(MQQueueConnectionFactory.java:115)
    at mq.MQMessageSender.main(MQMessageSender.java:107)
Caused by: com.ibm.mq.MQException: JMSCMQ0001: WebSphere 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:204)
    ... 7 more

Я попытался изменить авторизацию пользователя «nobody» и попытаться открыть ворота следующей командой, но она не работает:

setmqaut -m QM1 -t qmgr -p 'nobody' +allmqi

Некоторая информация ниже:

Queue Manager: QM1
Queues: Q1, Q2
Channel name: MESSAGESENDER

1 Ответ

0 голосов
/ 25 июня 2019

Только что исправили эту ошибку.Я добавил пользователя 'mqm', который использовал в контейнере Docker, к своему вызову createQueueConnection следующим образом:

MQQueueConnection queueConn = (MQQueueConnection) cf.createQueueConnection("admin1", "");
...