The Life Cycle of a Stateful Session Bean
The biggest difference between the stateful session bean and the other bean types is that stateful session beans don’t use instance pooling. Stateful session beans are dedicated to one client for their entire life, so there is no swapping or pooling of instances.[34] Instead of pooling instances, stateful session beans are simply evicted from memory to conserve resources. The EJB object remains connected to the client, but the bean instance is dereferenced and garbage collected during inactive periods. This means that a stateful bean must be passivated before it is evicted to preserve the conversational state of the instance, and it must be activated to restore the state when the EJB object becomes active again.
The bean’s perception of its life cycle depends on whether or
not it implements a special interface called
javax.ejb.SessionSynchronization
. This interface
defines an additional set of callback methods that notify the bean of
its participation in transactions. A bean that implements
SessionSynchronization
can cache database data
across several method calls before making an update. We have not
discussed transactions in any detail yet, so we will not consider
this view of the stateful session bean’s life cycle until Chapter 8. This section describes the life cycle of
stateful session beans that do not implement the
SessionSynchronization
interface.
The life cycle of a stateful session bean has three states: Does Not Exist, Method-Ready, ...
Get Enterprise JavaBeans, Second Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.