2016-06-06 2 views
0

У меня есть веб-приложение Java, развернутое в Tomcat. В моем web.xml я указываю максимальный тайм-аут простоя. Тем не менее, мы отслеживаем время безотказной работы этого веб-приложения, проверяя количество страниц и проверяя ответ 200. Каждый ping инициирует сеанс и с несколькими пинами каждые несколько секунд, мы набираем большое количество сеансов.Java - более короткий тайм-аут сеанса для низкого «используемого времени»

Эти сессии в конечном итоге истекают, но я бы хотел удалить их раньше.

На странице «Администрирование сеансов Tomcat» я могу с легкостью определить, кто попадает в эту категорию. Их «Неактивное время» больше, чем несколько секунд, но их «Использованное время» - 00:00. Это говорит, что они сделали один запрос и не вернулись, чтобы сделать другое.

Вопрос

Есть ли способ, чтобы таймаут этих неактивные одиночных запросов, не затрагивая пользователь?

Дополнительная информация

  • Наш тайм-аут сеанса в настоящее время установлена ​​довольно высокая, в течение часа. Клиент знает лучше =)
  • Наш веб-каркас в значительной степени основан на AJAX, поэтому отсутствие последующих запросов маловероятно для реального пользователя.
  • Насколько нам известно, мы не контролируем обработку сеанса со стороны средства мониторинга.

ответ

0

Из верхней части моей головы:

  1. Используйте тот же сеанс - сделать первоначальный запрос и сохранить идентификатор сеанса, а затем сделать каждый последующий запрос, используя этот идентификатор.
  2. Отправьте специальный заголовок при пинге (например, X-Invalidate-Session). Внедрите фильтр, который приведет к аннулированию сеанса сразу после запроса.
  3. Измерение производительности с запросами «пинг» и без них. Если нет существенных различий, перестаньте беспокоиться об этом.

Я бы сказал, что этот вопрос слишком широк для SO, поскольку есть определенные возможности для решения этого вопроса.

Смежные вопросы