"Stateful Session beans do not participate in instance pooling but rather the container may choose to evict a stateful Session bean from memory to conserve resources. The bean is passivated (i.e. has it�s �state� serialized to disk) and disassociated with the EJB Object. The client is completely unaware of this performance move on the part of the container. When the client invokes another method on the EJBObject, a new instance is created and populated with the passivated state (called �activation�)." I am little confused here. When container passivate the STATEFUL session bean, wht happens to that bean. Does it get removed from memory at all or it's initializes state is being reused? any clarifications plz? ashish
I guess that depends on the vendor implementation...and the EJB specs does not say much. In most cases, I guess the bean is still in the memory, in a pooled state. It is evicted out from memory, when the bean times in the passivatd state.
according to EJB specification once a stateful been is passivated, bean instance is removed from memory, a new instance is created and used to activate and serve another request. As bean is stateful, state is maintained and same instance can not be used for other requests.