Как сделать тайм-аут сеанса WebLogic более согласованным

Я использую WebLogic 12c и должен реализовать функцию, которая убивает сеанс при закрытии браузера. У меня есть «пульс» от клиента, который совершает сетевой вызов каждые заданное количество секунд. Weblogic настроен на отсчет времени сеанса после 3 пропущенных сердечных сокращений. Это отлично работает по большей части.. Если вы не смотрите журналы.

Итак, я обнаружил кое-что интересное: WebLogic на самом деле не определяет время сеанса в указанное время. У меня есть прослушиватель сеанса, чтобы регистрировать, когда пользователь фактически выходит из системы, и обрабатывать некоторые другие функции выхода из системы. Я заметил, что эти сообщения журнала не появляются точно в это время ожидания. Вместо этого WebLogic, по-видимому, «случайно» решает, когда очищать мертвые сеансы. Хорошо то, что если клиент попытается повторно подключиться, используя те же учетные данные, WebLogic увидит, что время сеанса истекло, и активирует функцию выхода из системы. К сожалению, это действительно не сработает для меня. По крайней мере, мне нужно было бы иметь некоторое «Максимальное время», прежде чем WebLogic решит очистить мертвые сеансы.

Я чувствую, что эта проблема похожа на сборку мусора в Java. Это происходит, когда когда-либо кажется, что это происходит.

Итак, вкратце, мой вопрос: есть ли способ установить приоритет потока очистки сеанса в WebLogic или есть способ настроить WebLogic для запуска потока очистки сеанса каждые X секунд?


person CraigR8806    schedule 29.10.2019    source источник
comment
WebLogic использует второй параметр с именем invalidation-interval-secs для настройки момента, когда объект сеанса http действительно очищается. В документации сказано: italic_Устанавливает время в секундах, в течение которого WebLogic Server ожидает между выполнением «чистки дома» для просроченных и недействительных сеансов и удалением старых сеансов и освобождением памяти. Используйте этот элемент для настройки WebLogic Server для достижения наилучшей производительности на сайтах с высоким трафиком. Значение по умолчанию – 60 секунд._italic   -  person Emmanuel Collin    schedule 29.10.2019
comment
@EmmanuelCollin Это именно то, что я ищу! Спасибо!! Добавьте это в качестве ответа, и я приму и проголосую   -  person CraigR8806    schedule 29.10.2019


Ответы (1)


WebLogic использует второй параметр с именем "invalidation-interval-secs" для настройки момента, когда объект http-сеанса действительно очищается. В документации сказано:

Устанавливает время в секундах, в течение которого WebLogic Server ожидает между выполнением домашних проверок на наличие истекших по времени и недействительных сеансов и удалением старых сеансов и освобождением памяти. Используйте этот элемент для настройки WebLogic Server для достижения наилучшей производительности на сайтах с высоким трафиком. Значение по умолчанию — 60 секунд.

https://docs.oracle.com/cd/E11035_01/wls100/webapp/weblogic_xml.html

person Emmanuel Collin    schedule 29.10.2019