Вот параграф из oracle blog, который я читал недавно.Являются ли состояния бобы управляемыми контейнером или приложением в EJB?
Такое поведение сильно отличается от поведения сессионных компонентов Stateful. Экземпляр экземпляра сеанса Stateful должен быть явно удален клиентом с вызовом метода, аннотированного с помощью @Remove. Контейнер не будет автоматически уничтожен; он не связан ни с каким контекстом. Если вы связываете сессионный компонент Stateful с HttpSession, вы также должны заботиться о его надежном уничтожении в конце или в тайм-ауте HttpSession.
В соответствии с этим, приложение должно удалить stateful session
, когда это будет сделано с его помощью.
Но я прочитал в нескольких книгах, если @Remove
не вызывается, контейнер по-прежнему удаляет компонент из области видимости, но по своему усмотрению.
, так что я хочу знать, что правильно? ли @stateful
должны быть явно удалены или оставить его в контейнер, чтобы удалить, если вообще это делает удаление
EDIT
Цитирую Beginning Java EE7 by Antonio Goncalves
- отличная книга; стр. 243 в pdf
Обратите внимание на необязательные аннотации @ javax.ejb.StatefulTimeout и @ javax.ejb.Remove. @Remove украшает метод checkout(). Это приводит к тому, что экземпляр компонента постоянно удаляется из памяти после вызова метода checkout(). @StatefulTimeout присваивает значение тайм-аута, которое является длительностью, в течение которой бин может оставаться бездействующим (не получая никаких клиентских вызовов) перед удалением контейнером. Единицей времени этой аннотации является java.util.concurrent.TimeUnit, поэтому он может перейти от DAYS, HOURS ... к NANOSECONDS (по умолчанию - MINUTES). В качестве альтернативы вы можете избежать этих аннотаций и полагаться на контейнер, автоматически удаляя экземпляр, когда сеанс клиента заканчивается или истекает. Тем не менее, убедитесь, что компонент состояния с удалением в подходящий момент может сократить потребление памяти. Это может иметь решающее значение для высококонкурентных приложений.
Я интерпретирую то, что вы читали так: «Если вы не управляете SFSB сами, они накапливают, теряют память и создают беспорядок, который контейнер в конечном итоге попытается очистить ...» « – jahroy
@ jahroy: Я процитировал текст из книги –
«Что вы прочитали» – jahroy