SessionBean Определенные методы, такие как ejbCreate, реализация ejbRemove? - PullRequest
1 голос
/ 17 июня 2011

Я немного запутался в функциональности ejbcreate и ejbremove в сессионных компонентах без сохранения состояния и с состоянием?Вот мое понимание и сомнения: -

1) StatefulSessionBeans: при вызове для создания метода домашнего интерфейса последующий вызов переходит к методу ejbcreate, когда мы можем инициализировать все, что захотим.аналогично при вызове метода удаленного интерфейса для удаления (в данном случае это удаленный, а не hemoe) последующий вызов переходит к методу ejbremove, когда мы можем освободить ресурс по своему усмотрению.

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

аналогично, если мы хотим пассивировать любой компонент, у нас есть код записи в этом методе, чтобы сохранить состояние объекта вкакой-то файл.Это правильно?

2) StatelesSessionBeans: при вызове для создания метода домашнего интерфейса.вызов не переходит к методу ejbcreate сессионного компонента. аналогично, вызов метода удаления удаленного интерфейса не вызывает метод ejbremove сессионного компонента?Если это правда, когда контейнер вызывает метод ejbcreate и ejbremove в случае StatelesSessionBeans?

1 Ответ

2 голосов
/ 17 июня 2011

1) StatefulSessionBeans

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

Оба. В EJB 3.0+ вы можете аннотировать метод с помощью @Remove, чтобы указать, что вы хотите удалить компонент после его завершения. До EJB 3.1 вы использовали методы EJBObject.remove или EJBLocalObject.remove. Если вы не удалите его явно, контейнер автоматически очистит компонент после истечения времени ожидания. В EJB 3.1 вы можете контролировать продолжительность с помощью аннотации @StatefulTimeout.

если контейнер выполняет пассивацию состояние, прежде чем уничтожить боб, если в будущий запрос приходит для того же Экземпляр

Контейнеры пассивируют bean-компонент, когда он больше не нужен, в соответствии с политиками конкретного поставщика. Например, если слишком много активных SFSB, контейнер может пассивировать наименее использованный компонент. Пока бин используется снова до истечения времени ожидания, контейнер будет автоматически. воссоздать / активировать компонент.

аналогично, если мы хотим пассивировать любую боб, у нас есть написать код в этом способ сохранить состояние объекта в какой-то файл. Это правильно?

Нет, контейнер автоматически сохранит значения всех непереходных полей в bean-компоненте, даже если bean-компонент не помечен как Serializable, но вы можете реализовать Serializable, если вам нужен больший контроль.

2) StatelesSessionBeans * * тысяча двадцать-одна

по вызову для создания метода дома интерфейс. звонок не идет ejbcreate метод сессионного компонента.

Правильно, create для bean-компонента без состояния просто вернет оболочку / прокси. Как только вы вызываете метод, контейнер выделяет компонент (обычно из пула), вызывает метод, а затем освобождает компонент (обычно возвращается в пул).

аналогичным образом вызовите метод удаления удаленный интерфейс не звонит ejbremove метод сеанса bean?

Правильно, метод удаления не влияет на bean-компонент без сохранения состояния. Контейнер управляет экземплярами объединенного компонента.

Если это правда, когда контейнер позвонить в ejbcreate и ejbremove метод в случае StatelesSessionBeans

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

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