Предотвращение тайм-аута сеанса узла с помощью Jetty 8 и реплицированных сеансов через MongoDB

Я использую Jetty 8, и в настоящее время у меня есть два экземпляра, настроенных и работающих за балансировщиком нагрузки с циклическим перебором. Я настроил его на использование репликации сеанса через MongoDB. Он отлично работает с двумя исключениями. Я включу один здесь, а другой в другом вопросе.

  1. Можно сохранить сеанс на одном из узлов, пока время ожидания того же сеанса на другом узле истекает. Как только вы нажмете на узел с истекшим временем ожидания, поведение будет таким, как если бы срок действия сеанса истек, даже если есть активность пользователя на другом узле.

У кого-нибудь есть предложения? Я собираюсь начать копаться в реализации jetty-nosql, но мне бы очень хотелось, чтобы кто-нибудь сэкономил мне время.


person DavidA    schedule 21.11.2012    source источник


Ответы (1)


Оказывается, указанное выше поведение связано с ошибкой в ​​диспетчере nosqlSession. Он не обновляет время последнего доступа при чтении сеанса из базы данных. Таким образом, если доступ к узлу не осуществляется в течение периода ожидания сеанса, он сделает сеанс недействительным, независимо от того, был ли осуществлен доступ к какому-либо другому узлу. Я подал этот отчет об ошибке: https://bugs.eclipse.org/bugs/show_bug.cgi?id=397193

Мы исправили это, внеся пользовательские изменения в файлы, указанные в ошибке, чтобы время доступа для сеанса обновлялось временем доступа, хранящимся в базе данных, когда сеанс был обновлен из базы данных.

person DavidA    schedule 19.03.2013