Законно ли вводить @Stateful в MDB? - PullRequest
4 голосов
/ 30 июня 2011

Законно ли вводить @Stateful в MDB?

@Stateful
public class InteruptBean implements Interrupt {
    ....
}

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

    ....
}

Или лучше сформулировать: можно ли использовать EJB с состоянием для передачи состояния в асинхронной архитектуре, управляемой событиями?

Ответы [ 2 ]

4 голосов
/ 30 июня 2011

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

2 голосов
/ 30 июня 2011

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

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

...