Установка времени ожидания для бина сеанса с сохранением состояния? - PullRequest
3 голосов
/ 07 марта 2012

Для моего веб-приложения JavaScript серверная часть - это сервер приложений JBoss.
Интерфейс JavaScript общается ВСЕГДА ОДИН сервлет (фронт-контроллер).
Сервлет выполняет ОДИН поиск (плюс «узкий») во время входа в систему.
Этот поиск является поиском SFSB (Stateful Session Bean).
Результат этого поиска сохраняется в объекте HttpSession.
Вся последующая связь между сервлетом и SFSB осуществляется этим сохраненный удаленный объект.

Время ожидания сеанса (для объекта HttpSession) из JBossWeb (Tomcat) составляет 30 минут.
Поэтому каждый раз, когда на интерфейсе НЕТ активности (> 30 минут), сеанс истекает, сеанс со всем в нем - также удаленный интерфейс СФСБ - удалено.

Тем временем SFSB пассивируется на диск (deploy / ejb3-interceptors-aop.xml -> idleTimeoutSeconds = 300).

Тайм-аут по умолчанию для моей SFSB бесконечен (RemovalTimeoutSeconds = 0). Таким образом, по умолчанию пассивный sfsb не удаляется автоматически.

Есть ли на самом деле какая-либо причина не устанавливать тайм-аут SFSB (removalTimeoutSeconds) в 30 минут (30 * 60) в моем случае (так же, как тайм-аут сеанса)?

1 Ответ

0 голосов
/ 03 июня 2012

Единственным исключением будут длительные фоновые транзакционные процессы, связанные с компонентом с состоянием.Если для его завершения потребуется больше времени, чем указано, это приведет к исключению, вероятно, транзакция не активна.

Следовательно, даже если во внешнем интерфейсе имеется тайм-аут, фоновый процесс должен завершиться.В таком случае тайм-аут удаления может повлиять на обработку и должен быть соответственно изменен.

...