устаревшие данные сеанса — websphere

У меня есть устаревший атрибут с сеансом http в Websphere 6, который может быть связан с репликацией сеанса в памяти.

Шаги:

  1. Объект A.0 - Помещен в сессию с идентификатором "ABC"
  2. Удалить A.0 из сеанса.
  3. Объект A.1 (Новый экземпляр) - помещен в сеанс с идентификатором "ABC"
  4. получить объект с идентификатором "ABC" из сеанса - РЕЗУЛЬТАТ: A.1 (верно)
  5. выполнить сервлет вперед или перенаправление (проблемы, наблюдаемые в обеих функциях).
  6. получить "ABC" из сеанса - РЕЗУЛЬТАТ: A.0, объект, который был удален из сеанса..

Примечания -

  • Тот же объект сеанса (хэш-код/идентификатор сеанса), который использовался в шагах 1–5, с использованием репликации памяти между двумя JVM (один кластер)
  • продолжительность времени между шагами 2 и 5 составляет всего 4 секунды
  • Никакие другие внешние потоки не обращались к сеансу в промежутке времени.
  • Замечено только для 1 конкретного варианта использования; не сталкивался с этим
    в других случаях использования..

Кто-нибудь видел что-нибудь подобное раньше, когда устаревшие данные возвращаются с сервера приложений websphere?

Спасибо,

Ян.


person Mannie    schedule 14.06.2012    source источник
comment
Ян, ты понял. Я не могу понять шаги (или проблемы, как вы это называете)   -  person Manglu    schedule 14.06.2012
comment
Используете ли вы веб-сервер с подключаемым модулем WebSphere? Репликация будет иметь значение только в том случае, если вы фактически переключили элементы кластера, что, если вы используете подключаемый модуль WebSphere, вам не следует делать, пока сеанс активен. Изменяли ли вы какие-либо параметры сеанса? Например, каковы ваши параметры управления сеансом › Пользовательские параметры настройки?   -  person dbreaux    schedule 14.06.2012


Ответы (1)


Вы явно записываете измененный объект обратно в сеанс, прежде чем перенаправлять/перенаправлять? По крайней мере, в некоторых версиях WebSphere и в некоторых конфигурациях это необходимо сделать, чтобы убедиться, что изменение зафиксировано.

(Если я найду четкую ссылку на это, я обновлю свой ответ.)

person dbreaux    schedule 14.06.2012
comment
Что вы имеете в виду в явном виде? Я делаю setAttribute в HttpSession перед перенаправлением, но больше ничего не делаю.... - person Mannie; 15.06.2012
comment
Это то, что я имел в виду. Если вы getAttribute() измените содержимое объекта, но не сделаете этого setAttribute() обратно, у вас могут возникнуть проблемы. Но, видимо, это не твоя проблема. - person dbreaux; 15.06.2012