MDB: динамический селектор - PullRequest
2 голосов
/ 28 июля 2011

У меня есть несколько серверов с одинаковым кодом, но каждый из них обрабатывает определенные сообщения (они распределены по географическим областям и должны обрабатывать все сообщения, относящиеся к их области)

Я думал использовать одну очередь и селектор сообщений для фильтрации другого сообщения.

Вопрос заключается в следующем: как написать код Java и план развертывания, чтобы селектор был настроен динамически, на основе файла конфигурации, конфигурации сервера приложений (Geronimo 2.2)

Цель состоит в том, чтобы один и тот же EAR был развернут на всех серверах.

Спасибо.

1 Ответ

0 голосов
/ 28 октября 2011

Для того, чего вы хотите достичь, код Java не должен быть другим, это план развертывания, который должен меняться с одного сервера на другой.

Чтобы один и тот же EAR был развернут на всех серверах, яподходил бы так:

  1. Пишите по-разному openejb-jar.xml для каждой конфигурации MDB, которую вы хотите - у каждого будет один и тот же MDB (<enterprise-beans><message-driven>, но с разными селекторами сообщений.
  2. Поместите каждый openejb-jar.xml в отдельный каталог непосредственно внутри файла EAR.
  3. Разверните EAR с помощью внешнего geronimo-application.xml, ссылаясь на конкретную конфигурацию с элементом <alt-dd>:
<module>
   <ejb>your_MDB.jar</ejb>
   <alt-dd>config1/openejb-jar.xml</alt-dd>
</module>
...