我可以从cli调用:suspend 和:resume ,但是,这会挂起所有bean(EJB,MDB)。有没有办法只挂起消息驱动的bean MDB?
在我的应用程序中,所有工作都是通过消息进行的。如果我可以暂停消息使用者,我可以确定系统的其余部分将继续工作,直到所有正在进行的工作完成。例如,如果EJB试图将消息放入队列,它将能够这样做。
答案 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