2012-06-14 1 views
0

WebSphere У меня несвежий атрибут с HTTP сессии в рамках Websphere 6 и может быть связано с репликации сеанса памяти ..несвежий данные сеанса -

шаги:

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

Notes -

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

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

Thanks,

Ian.

+0

Иэн, вы поняли, что поняли. Я не могу понять шаги (или проблемы, как вы это называете) – Manglu

+0

Используете ли вы веб-сервер с плагином WebSphere? Репликация будет только фактором, если вы на самом деле переключили членов кластера, которые, если вы используете плагин WebSphere, не должны делать, пока активен сеанс. Вы настроили какие-либо настройки сеанса? Например, каково ваше управление сеансом> Пользовательские параметры настройки? – dbreaux

ответ

0

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

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

+0

Что значит «явно»? Я делаю «setAttribute» на HttpSession перед перенаправлением, но ничего не делаю ... – Ian

+0

Вот что я имел в виду. Если вы 'getAttribute()' и измените содержимое объекта, но затем не возвращаете 'setAttribute()', у вас может быть проблема. Но, видимо, это не твоя проблема. – dbreaux