In this post, we will see the differences b/w stateless and stateful session beans.
Stateless Session Bean:
- Stateless session bean do not maintain state across method calls and transactions
The EJB server transparently reuses instances of the Bean to service different clients at the per-method level (access to the session bean is serialized and is 1 client per session bean per method.
- Used mainly to provide a pool of beans to handle frequent but brief requests. The EJB server transparently reuses instances of the bean to service different clients.
- Do not retain client information from one method invocation to the next. So many require the client to maintain on the client side which can mean more complex client code.
- Client passes needed information as parameters to the business methods. Performance can be improved due to fewer connections across the network.
Stateful Session Bean :
- A stateful session bean holds the client session’s state.
- It is an extension of the client that creates it.
- Its fields contain a conversational state on behalf of the session object’s client.
This state describes the conversation represented by a specific client/session object pair.
- lifetime of these are controlled by the client and cannot be shared between clients.