В Wildfly 9 есть способ приостановить только определенный MDB

Я могу позвонить :suspend и :resume из cli, однако это приостанавливает все bean-компоненты (EJB, MDB). Есть ли способ только приостановить MDB-компоненты, управляемые сообщениями?

В моем приложении вся работа приходит через сообщения. Если я смогу приостановить прием сообщений, я могу быть уверен, что остальная часть системы продолжит работать, пока вся незавершенная работа не будет завершена. Например, если EJB пытался поместить сообщение в очередь, он сможет это сделать.

1 ответ

Решение

Вы можете использовать следующие операции CLI на MDB. Для получения дополнительной информации см. https://docs.jboss.org/author/display/WFLY10/Message+Driven+Beans+Controlled+Delivery. Хотя документация для WildFly 10; это также работает с WildFly 9.x

Для автономного режима:

[standalone@localhost:9990 /] cd deployment=jboss-helloworld-mdb.war/subsystem=ejb3/message-driven-bean=HelloWorldMDB

[standalone@localhost:9990 message-driven-bean=HelloWorldMDB] :stop-delivery
{"outcome" => "success"}

[standalone@localhost:9990 message-driven-bean=HelloWorldMDB] :start-delivery
{"outcome" => "success"}

Для режима домена:

Остановить доставку

 /host=master/server=default/deployment=helloworld.app.war/subsystem=ejb3/message-driven-bean=HelloWorldMDB:stop-delivery

Начать доставку:

 /host=master/server=default/deployment=helloworld.app.war/subsystem=ejb3/message-driven-bean=HelloWorldMDB:start-delivery

Если MDB находится в EJB-банке внутри EAR-файла:

 /host=master/server=default/deployment=helloworld.app.ear/subdeployment=helloworld.core.impl.jar/subsystem=ejb3/message-driven-bean=HelloWorldMDB:start-delivery
Другие вопросы по тегам