Image

Imageintr13 wrote in Imageru_java

Контексты хранения данных в EJB3 (transactional, request, session)

Ситуация:
* Сервер приложений JBoss AS 5.
* Бизнес логика на базе stateless EJB3, есть методы которые долго считают данные или грузят данные из БД.
* Клиент на Swing.

Хочу:
* Контексты для хранения данных. Уровень транзакции (transactional), запроса (request), сессии (session) пользователя. Хранить требуется ключ-значение, главное привязать все к нужному контексту.
* Кэширование результатов выполнения методов у EJB3 (желательно на базе аннотаций). Положил аннотацию на метод, указал контекст и все правильно работает.

Симптоматика:
* Раньше очень много писал под веб, а там есть HttpSession и HttpRequest.
* Нравится идея из ФП о чистых функциях и хочу подобную вещь в Java (особенно кэширование вызова методов).

Варианты:
* Statefull EJB.
* ThreadLocal variables (используется на данный момент).
* TransactionSynchronizationRegistry.
* Прямая передача контекста в методы.
* Что нибудь еще.

Какие есть идей? Может уже существуют готовые решения? Вообще это правильные хотелки или это ересь (хочу аргуметов)?

p/s
К сожалению в других местах разумных комментариев не было, потому не обессудьте за дублирование вопроса в данном сообществе.