Управление сессиями на разных экземплярах Tomcat - PullRequest
0 голосов
/ 20 июня 2010

Привет у меня есть сценарий, что я использую 4 экземпляра tomcat на нашем сервере. Когда пользователь входит в систему, то предположим, что он подключен к tomcat-1, поэтому мы сохранили все значения сеанса в tomcat-1. Затем мы обрабатываем paypal. После paypalОбработка пользователя переадресовывается на другого tomcat, скажем, tomcat-2. Так что в этом сеансе нет значений для этого пользователя. И я столкнулся с проблемой. Поэтому я хочу отправить пользователя на тот же tomcat, откуда он приходит после обработки PayPal, так что его всезначения сеанса, которые мы можем получить.

1 Ответ

2 голосов
/ 20 июня 2010

Почему вы используете несколько экземпляров Tomcat на сервере?Лучшим ответом на это будет использование одного экземпляра Tomcat и развертывание на нем всех веб-приложений и, если необходимо, использование виртуального хостинга .

. Если вы используете несколько экземпляров, тоЕдинственное решение - передать интересующую информацию как параметр запроса или pathinfo и обработать ее соответствующим образом.Если эта информация представляет собой большой объем данных и / или сложна, сохраните ее в общем хранилище данных (база данных SQL?) И передайте значение ее идентификатора (первичного ключа) в качестве параметра запроса / pathinfo.

Если вы решите этоиспользуя один экземпляр Tomcat на сервере, вы можете просто установить атрибут emptySessionPath для HTTP-коннектора <Connector> в conf/server.xml на true.Таким образом, HttpSession будет использоваться всеми развернутыми веб-приложениями.

Если у вас на самом деле есть 4 физически независимых серверных компьютера с каждым экземпляром Tomcat, каждый из которых содержит резервную копию / дублирование веб-приложений, то вам необходимо создать кластер с репликацией сеанса..

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