Является ли законным вводить @Stateful в MDB?

Разрешено ли вводить @Stateful в MDB?

@Stateful
public class InteruptBean implements Interrupt {
 ....
}
@MessageDriven(...)
public class EchoTrigger implements MessageListener {
 @EJB Interrupt interrupt;
 ....
}

Или лучше сформулировать: могу ли я использовать stateful EJB для передачи состояния в асинхронной Event Driven Architecture?

2 ответа

Да, это "законно", но это бессмысленно. Экземпляры MDB объединены как SLSB. MDB перестанет функционировать после сбоя SFSB.

Может возникнуть необходимость явно создать SFSB в какой-то момент, а затем передать ссылку на SFSB в сообщениях, отправляемых на диск MDB.


Да, это не имеет смысла. Поскольку сеанс с состоянием beans предназначен для обработки нескольких запросов от одного клиента, так что они имеют ориентированную на клиента обработку. В этом случае MDB будет beans клиентами. MDB поддерживает модель с одним запросом. Запрос поступает в MDB (в форме сообщения) и обрабатывается. Таким образом, оба типа beans не совпадают в модели обработки.

licensed under cc by-sa 3.0 with attribution.