2016-11-25 16 views
2

Я работаю с WildFly 10.1, который поставляется с Artemis в качестве нового JMS-провайдера, но я не могу найти, как динамически изменять количество потребительских потоков для определенного MDB.Как динамически изменять JMS-очередь Размер пула MDB в WildFly 10

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

Как это сделать, используя CLI?

+0

Могу ли я спросить, почему вы хотите динамически настраивать ** **? –

+0

@ RémiBantos Хороший вопрос. Основная причина заключается в том, что продвижение новых версий для QA и Production - это боль в некоторых процессах изменения клиента. Весь процесс может занять недели, он должен быть ручным и исполнен третьим лицом (я не шучу). Я предпочитаю гибкую настройку, поэтому мы можем быстро реагировать, не обращаясь к отделу изменений и не получим все. У меня был хороший опыт в прошлом с этим подходом (с использованием менеджеров работы WebLogic). – BonanzaOne

ответ

1

Как вы хотите сделать эту конфигурацию для конкретных MDB, вы можете сначала назначить ее выделенному пулу. См. this answer.

Затем, чтобы динамически обновлять атрибуты пула, вы можете взглянуть на this article, где описано, как настроить или добавить пулы ejb3 с помощью конфигурации jboss-cli или standalone.xml. (С JBOSS 7, но она не должна быть настолько разные с Wildfly 10)

Следующая JBoss-кли команда может затем использоваться, чтобы изменить размер пула dynamycally в нем по умолчанию 20 для МБР:

/subsystem=ejb3/strict-max-bean-instance-pool=myPool:write-attribute(name=max-pool-size)

Наконец, вам также необходимо настроить свойство конфигурации активации maxSession соответственно в вашем MDB. См. this thread, а также this question для контекстной настройки.

+0

Мне удалось создать пул с максимальным пулом 50 и связать его с MDB, но когда я добавляю 50 сообщений в очередь, только 15 потребляются в любое время (предыдущее значение по умолчанию). Я использовал эту команду для создания пула '/ subsystem = ejb3/strict-max-bean-instance-pool = dummyPool /: add (max-pool-size = 50, timeout = 5, timeout-unit = MINUTES)' и использовал '@ Pool' и даже' jboss-ejb3.xml' на MDB, но сервер все еще ограничивает его до 15 экземпляров. Активация 'maxSession' статична. Вы знаете, что это может быть? Я также попытался перезапустить сервер, но он не сработал. – BonanzaOne

+0

Я также нашел [эту статью] (http://www.mastertheboss.com/javaee/ejb-3/custom-pool-configuration-for-your-ejbs-on-jboss-as-7-wildfly), но после эти шаги не помогли моему MDB работать с моим собственным пулом. – BonanzaOne

+0

Вы пытались установить свойство конфигурации активации maxSession? См. Этот вопрос и соответствующий ответ для контекстной конфигурации maxSession: http://stackoverflow.com/questions/34030422/how-to-make-mdb-activation-spec-contextual-properties-configurable –

 Смежные вопросы

  • Нет связанных вопросов^_^