Сеансы с кластеризованными экземплярами Oracle Application Server - PullRequest
0 голосов
/ 23 февраля 2009

У меня есть два экземпляра Oracle Application Server (OAS), сгруппированных вместе и реплицирующих сеансы. Всякий раз, когда я прекращаю работу одного из экземпляров, убивая процесс, другой экземпляр запускается и содержит сеанс. Все работает как положено. Если я корректно завершу работу одного экземпляра (используя opmn stopall) OAS, события HttpSessionDestroyedEvent сработают, и информация будет удалена, что приведет к тому, что приложение не будет корректно переключаться. Это мой первый опыт работы в кластерной среде, и мне любопытно, распространено ли это. Я знаю и ожидаю, что события HttpSessionDestroyedEvent запускаются в некластеризованной среде, когда экземпляр сервера останавливается, но здесь это не кажется правильным. Как можно выполнить какое-либо обслуживание на одном сервере? Я использую Spring Framework, откуда происходит событие HttpSessionDestroyedEvent.

1 Ответ

0 голосов
/ 24 февраля 2009

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

Tomcat Issues

JBoss Issues

Обходной путь - загрузить файл свойств (см. Ссылку JBoss), который содержит флаг завершения работы в любом месте, где вы прослушиваете событие уничтожения сеанса. Одним из недостатков этого является то, что системный администратор должен помнить об обновлении файла свойств до и после перезапуска.

...