Не удается подключиться к IBMMQ MQRC_NOT_UNAUTHORIZED - PullRequest
0 голосов
/ 21 мая 2018

Я установил IBMMQ 9.0 в Windows, работающей в virtualbox на моем локальном компьютере, и у меня есть пример кода отправки Java-сообщения в MQ.

вот код Java

 MQQueueConnectionFactory cf = new MQQueueConnectionFactory();
 cf.setHostName(MY_IP);
 cf.setPort(1417);
 cf.setTransportType(WMQConstants.WMQ_CM_CLIENT);
 cf.setQueueManager("QM1_TEST");
 cf.setChannel("QM1_TEST.CH");
 MQQueueConnection connection = (MQQueueConnection)
 cf.createQueueConnection();
 MQQueueSession session = (MQQueueSession)
 connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
 MQQueue queue = (MQQueue) session.createQueue("queue:///QUEUE_TEST");
 MQQueueSender sender = (MQQueueSender) session.createSender(queue);
 String message = "Test Message";
 TextMessage textMessage = (TextMessage)   
 session.createTextMessage(message);
 connection.start();
 sender.send(textMessage);

Программа получаетэта ошибка.

com.ibm.msg.client.jms.DetailedJMSSecurityException: JMSWMQ2013: The
security authentication was not valid that was supplied for QueueManager  
'QM1_TEST' with connection mode 'Client' and host name '192.168.0.24(1417)'.
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.cwt.bpg.cbr.demo.ibm.mq.client.SendMessage.main(SendMessage.java:24)
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)
... 8 more

Вот журнал под моим администратором очередей со значительными подробностями.

5/21/2018 16:42:46 - Process(4984.8) User(MUSR_MQADMIN) Program
(amqrmppa.exe) Host(MSEDGEWIN10) Installation(Installation1) VRMF(9.0.0.0) 
QMgr(QM1_DEV) AMQ9776: Channel was blocked by userid 
EXPLANATION: 
The inbound channel 'QM1_DEV.CH' was blocked from address '10.xx.xx.xx' 
because the active values of the channel were mapped to a userid which    
should be blocked. The active values of the channel were 'MCAUSER(IEUser) 
CLNTUSER(IEUser) ADDRESS(LWPHL1U012FXP)'

1 Ответ

0 голосов
/ 21 мая 2018

Вы не предоставляете имя пользователя и пароль, вы подключаетесь с идентификатором пользователя по умолчанию.

QueueConnection createQueueConnection()
Creates a queue connection with default user identity.

Вы можете предоставить учетные данные:

QueueConnection createQueueConnection(String userid,String password)

По умолчанию идентификатор пользователя ипароль для любого пользователя в группе mqm на брокере MQ будет иметь доступ к администраторам очередей.

В документах IBM MQ также есть инструкции по отключению защиты.

...