在Wildfly 9中,有一种方法可以暂停某些MDB

时间:2015-11-03 23:45:45

标签: wildfly wildfly-8 message-driven-bean application-shutdown jboss-mdb

我可以从cli调用:suspend :resume ,但是,这会挂起所有bean(EJB,MDB)。有没有办法只挂起消息驱动的bean MDB?

在我的应用程序中,所有工作都是通过消息进行的。如果我可以暂停消息使用者,我可以确定系统的其余部分将继续工作,直到所有正在进行的工作完成。例如,如果EJB试图将消息放入队列,它将能够这样做。

1 个答案:

答案 0 :(得分:1)

您可以在MDB上使用以下CLI操作。有关详细信息,请参阅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驻留在EAR文件中的EJB jar中:

 /host=master/server=default/deployment=helloworld.app.ear/subdeployment=helloworld.core.impl.jar/subsystem=ejb3/message-driven-bean=HelloWorldMDB:start-delivery