#apache-camel #ibm-mq
#apache-camel #ibm-mq
Вопрос:
в настоящее время я работаю с Apache Camel, и что мне нужно сделать, это создать очередь WMQ в camel (что-то вроде очереди сеансов) при запуске приложения и удалить ее при остановке приложения. Есть ли какой-либо возможный способ?
Или я проверил, что apache camel создаст временное имя со случайным именем при создании фабрики соединений. есть ли какие-либо способы изменить имя временной очереди со случайного имени на статическое имя?
К вашему сведению, на данный момент я использую Spring для конфигурации моего компонента.
Спасибо
Ответ №1:
Хорошо, на самом деле это не имеет никакого отношения к Apache Camel, поскольку его можно рассматривать как любое клиентское приложение JMS в отношении этой проблемы.
В IBM WebSphere MQ есть два типа очередей.
-
Обычные очереди, которые необходимо создавать (и, возможно, удалять) администратором, сценарием или тому подобным.
-
Временные очереди, имя которых не имеет значения, оно должно быть уникальным в контексте диспетчера очередей. JMS не позволяет присваивать имена временным очередям, поскольку имя на самом деле не имеет значения, поскольку его следует использовать один раз, а затем отбросить.
WMQ на самом деле не предназначен для поддержки вашего использования.
Единственный вариант — выяснить, можете ли вы как-то автоматизировать задачу создания / удаления очередей. Обычно это делается вручную в MQ Explorer / MQSC / MQMON или аналогичных инструментах. Другое программное обеспечение MOM, такое как ActiveMQ, выполняет такие действия автоматически.
Вероятно, существует несколько способов удаленного создания очередей. Одним из них является использование команд PCF, которые вы можете отправлять в очереди, такие как SYSTEM.ADMIN.COMMAND.ОЧЕРЕДЬ. Однако эта очередь обычно очень хорошо защищена в корпоративной настройке, так что ее могут использовать только администраторы. Однако в вашем вопросе нет информации об этом. Другой вариант (не приятный, но не менее) — разрешить приложению работать на сервере диспетчера очередей (возможно, camel?) вызовите runmqsc с параметрами для создания очереди.