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