Ejb 3, компонент, управляемый сообщениями, взаимодействует с компонентом сеанса с состоянием? - PullRequest
1 голос
/ 11 марта 2009

Эй! Я новичок как в Java EE, так и в Stackowerflow, будьте добры :-)

У меня есть несколько устройств, запускающих сообщения Java при любом изменении состояния. Эти устройства обычно активны в течение примерно 30-90 минут. Каждое сообщение о событии содержит идентификатор устройства в дополнение к сведениям о событии.

Центральным элементом в моем приложении является управляемый сообщениями компонент, подписывающийся на эти события. Каждый раз, когда я получаю событие, мне нужно попасть в базу данных, чтобы посмотреть информацию об устройстве.

Было бы абсолютно потрясающе, если бы я мог связать сессионный компонент с состоянием с каждым активным устройством! Если бы это было веб-приложение, я бы использовал сеанс http для хранения дескриптора или ссылки на компонент с состоянием (я прав?). Есть ли способ, которым я могу заархивировать это из моего сообщения bean?

Ответы [ 2 ]

2 голосов
/ 11 марта 2009

Было бы неплохо, кроме того, что нельзя сделать, как ты объяснил. MDB (и SLSB) по определению не имеют состояния, поэтому вести разговор безопасно только во время вызова.

Вы можете в конечном итоге нарушить спецификацию и создать статический атрибут где-нибудь (возможно, в самом MDB), но это, безусловно, не будет ни переносимым, ни масштабируемым.

Мое предложение состоит в том, чтобы включить кэширование на уровне JPA (см. Подробности в вашем постоянном поставщике предпочтений), чтобы вы могли очень быстро (действительно быстро) искать любые нужные данные. Это портативный и кластер-дружественный. Именно так я использую это в своих проектах, и я очень доволен этим.

Надеюсь, это поможет.

0 голосов
/ 18 марта 2009

Мне неудобно рекомендовать конкретные продукты, но разве сервер Terracotta не удовлетворяет таким требованиям?

...