У меня есть приложение Spring Boot, использующее JMSListener + IBMConnectionFactory + CCDT для подключения кластера IBM MQ.
Задайте следующие свойства подключения: - URL-адрес, указывающий на сгенерированный файл ccdt - имя пользователя (пароль не требуется, поскольку тестовая среда) - имя диспетчера очереди НЕ определено - поскольку это задача кластера, и несколько результатов Google, включая несколько stackoverflow они указывают, что в моем случае qmgr должен быть установлен на пустую строку.
Когда мой Spring Boot JMSListener пытается подключиться к очереди, возникает следующая ошибка MQRC_UNKNOWN_ALIAS_BASE_Q:
2019-01-29 11:05:00.329 WARN [thread:DefaultMessageListenerContainer-44][class:org.springframework.jms.listener.DefaultMessageListenerContainer:892] - Setup of JMS message listener invoker failed for destination 'MY.Q.ALIAS' - trying to recover. Cause: JMSWMQ2008: Failed to open MQ queue 'MY.Q.ALIAS'.; nested exception is com.ibm.mq.MQException: JMSCMQ0001: IBM MQ call failed with compcode '2' ('MQCC_FAILED') reason '2082' ('MQRC_UNKNOWN_ALIAS_BASE_Q').
com.ibm.msg.client.jms.DetailedInvalidDestinationException: JMSWMQ2008: Failed to open MQ queue 'MY.Q.ALIAS'.
at com.ibm.msg.client.wmq.common.internal.Reason.reasonToException(Reason.java:513)
at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:215)
В журнале ошибок MQ я вижу следующее:
01/29/2019 03:08:05 PM - Process(27185.478) User(mqm) Program(amqrmppa)
Host(myhost) Installation(Installation1)
VRMF(9.0.0.5) QMgr(MyQMGR)
AMQ9999: Channel 'MyCHL' to host 'MyIP' ended abnormally.
EXPLANATION:
The channel program running under process ID 27185 for channel 'MyCHL'
ended abnormally. The host name is 'MyIP'; in some cases the host name
cannot be determined and so is shown as '????'.
ACTION:
Look at previous error messages for the channel program in the error logs to
determine the cause of the failure. Note that this message can be excluded
completely or suppressed by tuning the "ExcludeMessage" or "SuppressMessage"
attributes under the "QMErrorLog" stanza in qm.ini. Further information can be
found in the System Administration Guide.
----- amqrmrsa.c : 938 --------------------------------------------------------
01/29/2019 03:15:14 PM - Process(27185.498) User(mqm) Program(amqrmppa)
Host(myhost) Installation(Installation1)
VRMF(9.0.0.5) QMgr(MyQMGR)
AMQ9209: Connection to host 'MyIP' for channel 'MyCHL' closed.
EXPLANATION:
An error occurred receiving data from 'MyIP' over TCP/IP. The connection
to the remote host has unexpectedly terminated.
The channel name is 'MyCHL'; in some cases it cannot be determined and so
is shown as '????'.
ACTION:
Tell the systems administrator.
Поскольку журнал ошибок MQ содержит QMgr (MyQMGR), значение MyQMGR, которое я не установил в свойствах соединения, я предполагаю, что маршрутизация будь в порядке: кластер MQ нашел qmgr для использования.
Псевдоним существует и указывает на существующий q. Бот целевой q и псевдоним добавляются в кластер с помощью команды CLUSTER (clustname).
Что может быть не так?