Сессионный компонент с отслеживанием состояния определяется следующим образом:
Сессионные компоненты с отслеживанием состояния Состояние объекта состоит из значений его переменных экземпляра. В сессионном компоненте с сохранением состояния переменные экземпляра представляют состояние уникального сеанса клиент-компонент. Поскольку клиент взаимодействует («разговаривает») со своим bean-компонентом, это состояние часто называется диалоговым состоянием.
Сессионный компонент без сохранения состояния определяется следующим образом:
Сессионные компоненты без состояния Сессионный компонент без сохранения состояния не поддерживает диалоговое состояние с клиентом. Когда клиент вызывает методы bean-компонента без состояния, переменные экземпляра bean-компонента могут содержать состояние, специфичное для этого клиента, но только на время вызова. Когда метод завершен, состояние, зависящее от клиента, не должно сохраняться. Однако клиенты могут изменять состояние переменных экземпляра в объединенных bean-компонентах без состояния, и это состояние сохраняется до следующего вызова объединенного bean-компонента без состояния. За исключением вызова метода, все экземпляры bean-компонента без состояния эквивалентны, что позволяет контейнеру EJB назначать экземпляр любому клиенту. То есть состояние сеансового компонента без сохранения состояния должно применяться ко всем клиентам.
Преимущество использования сеансового bean-компонента без сохранения состояния над сеансовым bean-компонентом с сохранением состояния заключается в следующем:
Поскольку сессионные компоненты без сохранения состояния могут поддерживать несколько клиентов, они могут предложить лучшую масштабируемость для приложений, которым требуется большое количество клиентов. Как правило, для поддержки того же количества клиентов приложению требуется меньше сеансовых компонентов без состояния, чем сеансовых компонентов с отслеживанием состояния.
Возникает вопрос, когда следует использовать сессионные bean-компоненты с отслеживанием состояния? На мой наивный взгляд, следует по возможности использовать сессионный компонент без сохранения состояния.
В каких кандидатах следует использовать сессионный компонент с отслеживанием состояния? Есть хорошие примеры?