What is difference between StateFul and Stateless Session Bean?

A Stateful Session Bean is a bean that is designed to service business processes that span multiple method requests or transactions. Stateful Session beans retain state on behalf of an individual client. Stateless Session Beans do not maintain state.
EJB containers pools stateless session beans and reuses them to service many clients. Stateful session beans can be passivated and reused for other clients. But this involves I/O bottlenecks. Because a stateful session bean caches client conversation in memory, a bean failure may result in loosing the entire client conversation. Therefore, while writing a stateful session bean the bean developer has to keep the bean failure and client conversation loss in mind.
In case of stateless session beans, client specific data has to be pushed to the bean for each method invocation which will result in increase in the network traffic. This can be avoided in a number of ways like persisting the client specific data in database or in JNDI. But this also results in I/O performance bottlenecks.
If the business process spans multiple invocations thereby requiring a conversation then stateful session bean will be the ideal choice. On the other hand, if business process lasts only for a single method call, stateless session bean model suits.

Stateful session beans remembers the previous request and responses. But stateless beans do not. stateful does not have pooling concept, whereas the stateless bean instances are pooled.

  
Showing Answers 1 - 2 of 2 Answers

svsathya

  • Mar 31st, 2007
 

stateful
A stateful bean contains a conversational state that is retained across method calls and transactions. The create method takes arguments e.g. create(String id) , create(int I , String id) There can be one or more arguments in a create method e.g An EJB that unzips 100 bytes of data An EJB that checks to see if a stock symbol is valid Stateless Bean
 A stateless bean does not have any state between calls to its methods The create method does not take arguments e.g create() There can be no arguments in a create method e.g An EJB that books a flight and rents a car at a travel agent’s web site.

  Was this answer useful?  Yes

Give your answer:

If you think the above answer is not correct, Please select a reason and add your answer below.

 

Related Answered Questions

 

Related Open Questions