Как заставить JBoss 4.2.3 очищать кеш сеанса спящего режима для каждого запроса?
-
18-09-2019 - |
Вопрос
Мне кажется, что JBoss повторно использует менеджеры сущностей и базовые сеансы гибернации для нескольких запросов.Я провел тест, который доказывает, что в некоторых случаях состояние объекта может быть устаревшим, даже если оно было только что получено с помощью em.find()
.
Как я могу отключить это поведение и принудительно очистить или выбросить использованные сеансы, чтобы гарантировать, что каждый запрос обрабатывается с очисткой кеша?
УПД:
Вот пример случая.
HTTP-запрос 1.Сессионный компонент создает экземпляр объекта и сохраняет его, присвоив полю «A» значение 1.Сохраняемый объект получает ID = 4.
HTTP-запрос 2.Сессионный компонент ищет объект с идентификатором = 4, устанавливает для его поля «A» значение 2 и сохраняет его.
HTTP-запрос 3.Сессионный компонент ищет объект с идентификатором = 4 и проверяет его поле «A».Если значение равно 1, оно делает одно, если 2 — другое.
В случае, если EM в запросе 3 совпадает с запросом 1, происходит нежелательное поведение.Я проверил это и получил ок.10% случаев неудачи.
Решение 2
Хорошо, я понял это.JBoss корректно обрабатывает сессии, в моем тесте была ошибка =) Извините и спасибо за помощь