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

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

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


person Vijay Kumar    schedule 03.11.2015    source источник


Ответы (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
person Aparna Chaudhary    schedule 04.11.2015