Как ограничить количество сеансов на пользователя в сервлете в распределенной среде Tomcat - PullRequest
0 голосов
/ 07 февраля 2020

Мы хотим ограничить количество параллельных одновременных сеансов, которые один и тот же пользователь может иметь в нашем приложении.

В настоящее время мы разработали его таким образом, чтобы при входе в систему в таблицу БД вносилась запись с помощью * Столбец 1003 * как null, указывающий, что пользователь активен. Когда один и тот же пользователь пытается войти в систему с отдельной машины, запускается запрос к БД, чтобы проверить, существует ли уже запись для этого пользователя с logout_time как null. Если такая запись существует, пользователь перенаправляется на страницу выхода с соответствующим сообщением. Это прекрасно работает, когда пользователь выходит из системы систематически, когда после выхода из системы logout_time в этой таблице БД обновляется до значения метки времени. Однако, в случае нескольких внезапных событий, таких как браузер cra sh, системный cra sh, выключение системы без выхода из системы, сбой inte rnet и т.д. c. Эта строка БД не обновляется, поскольку сервер (Tomcat) не получает возможности обнаружить такие резкие события.

Существует ли способ, которым контейнер сервлетов обновляет эту строку БД, при таких резких событиях или в худшем случае? время ожидания сеанса, так что пользователь может войти снова, по крайней мере, через 30 минут.

Любое другое решение приветствуется! Благодарим вас за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...