Как создать физическую очередь в JMS во время выполнения - PullRequest
0 голосов
/ 22 июня 2011

Хотите знать, как создать физическую очередь в JMS во время выполнения.когда я ищу это, я получаю Создание очередей JMS во время выполнения

Но когда я читаю http://activemq.apache.org/how-do-i-create-new-destinations.html, я узнаю очередь, которая упоминается в Создание очередей JMS во время выполнения не создает никакой физической очереди на стороне сервера.

Пожалуйста, исправьте меня, если я ошибаюсь.Если кто-нибудь знает, как создать физическую очередь во время выполнения, пожалуйста, повторите.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 27 марта 2012

Стандарт JMS касается только отправки и получения данных из объектов, таких как очереди и темы.Создание JMS-артефактов зависит от поставщика и чаще всего требует использования:

1) API-интерфейсов конкретного поставщика (не JMS)

2) сообщений команды / администратора, направленных на сервер JMS (агенты команд на activemq)

3) JMX API

Я использовал метод JMX, который является самым мощным, но также и наиболее эффективным.

Метод JMX для activemq (версия5.0 +)

a) Настройка сервера JMS

1) Включить JMX в сценариях запуска activemq и файлах activemq.xml

2)Если вы проходите аутентификацию на сервере, убедитесь, что у вашего пользователя есть настройки admin в файле activemq.xml (см. http://activemq.apache.org/security.html)

3), перезапустите сервер activemq

b) Ваш код клиента

1) создайте экземпляр org.apache.activemq.broker.jmx.BrokerViewMBean (вам нужно будет подключиться с некоторым кодом подключения JMX, который немного запутан)

2)используйте метод addQueue.Это создаст очередь на сервере

(Процесс похож на hornetq, но так как вы упомянули Activemq, я опускаю здесь детали hornetq.)

Я сам использовал этот метод, и он работает.

Альтернативой является использование Командных агентов в Activemq, но у меня нет личного опыта с ними.Это специальные сообщения, содержащие команды администратора, и могут делать то, что вы хотите.

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

Создание «обычных» очередей не рассматривается стандартом JMS. В зависимости от того, что вы хотите сделать, есть два подхода:

  • использовать временные очереди -> однако они имеют много ограничений, чаще всего они используются для сценариев запроса-ответа
  • используйте API провайдера JMS - однако ваше решение будет зависеть от этого конкретного провайдера, тогда
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...