2009-11-13 1 views

ответ

3

«Без гражданства» в названии относится к состоянию сеанса сеанса, то есть к состоянию, которое сохраняется между вызовами компонента, сохраненными в течение всего сеанса. Тем не менее, сессионным компонентам без состояния не разрешено иметь переменные экземпляра. Эти переменные экземпляра не должны относиться к состоянию разговора, но «разделяются» между клиентами.

Другими словами, сеансовые бэкграфы без состояния не гарантируют безопасность потока.

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

+3

Я думаю, что экземпляр переменные сохраняют свои значения между вызовами - экземпляр просто живет в бассейне. Они могут использоваться для кэширования не-разговорных ресурсов. Согласитесь, что Session Beans явно не потокобезопасны, а при использовании в соответствии с моделью программирования EJB контейнер действительно гарантирует, что один поток/запрос в момент обслуживания обслуживается экземпляром. – djna

+0

Хорошо, я отредактировал ответ соответственно. – skaffman

+0

arg, извините, я тоже. – djna

2
  • Потому что они дороги построить, часто требующие доступа к внешним ресурсам, как базы данных, очереди сообщений и т.д ..
  • Потому что вы не хотите, неограниченное число которых создается или иначе вы будете бежать из ресурсы
  • Так что контейнер может управлять потокобезопасность для вас
Смежные вопросы