Переменная экземпляра в сессионном компоненте без сохранения состояния - PullRequest
1 голос
/ 11 ноября 2011

У меня есть сеансный компонент без сохранения состояния, в котором есть переменная экземпляра и два открытых метода. Ниже приведен псевдокод этого.

private int instanceVar;

public void methodA(int x) {
    instanceVar = x;
}

public void methodB() {
    print instanceVar;
}

Оба метода вызываются один за другим из клиента. Код клиента и сессионный компонент без сохранения состояния развернуты в Websphere. Замечено, что значение instanceVar, напечатанное из methodB, такое же, как и в methodA, когда это единственный экземпляр сервера приложений или кластер, имеющий 2 сервера приложений. Но в среде с 3 серверами приложений значение напечатанного instanceVar содержит более старое значение. Кто-нибудь может объяснить это поведение для меня?

Заранее спасибо!

С уважением, Sudhu

1 Ответ

0 голосов
/ 12 ноября 2011

Даже на одном сервере приложений контейнер EJB может создавать несколько экземпляров сессионного компонента без сохранения состояния. Поэтому использование атрибута экземпляра, как показано в вашем псевдокоде, никогда не даст ожидаемого результата.

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