When should you use a Stateful Session Bean?
When fetching frequently used read-only data.
If you need to manage the workflow or several EJBs.
At any time, multiple clients can have access to the bean instance.
When the bean should represent a business entity.
The bean needs to hold data about the client across multiple invocations.
To asynchronously receive JMS messages.