Se recomienda el uso de stateful cuando se cumpla una de las siguientes situaciones:
- El estado del bean representa la interacción entre el bean y un cliente específico.
- El bean necesita mantener información acerca del cliente a lo largo de varias invocaciones de métodos.
- El bean es mediador entre el cliente y los otros componentes de la aplicación, presentando una vista simplificada para el cliente.
Tras bambalinas, el bean maneja el control de flujo de muchos otros enterprise beans. Para incrementar el rendimiento, se podrían utilizar stateless session bean en alguna de las siguientes situaciones:
- El estado del bean no tiene datos para un cliente en específico.
- En un único método de invocación, el bean realiza una tarea genérica para todos los clientes. Por ejemplo, se podría utilizar un stateless session bean para mandar un email que confirme una compra online.
- El bean implementa un servicio web.
Los singleton session bean son apropiados en las siguientes circunstancias:
- El estado necesita ser compartido a través de la aplicación.
- Un único enterprise bean necesita ser accedido por múltiples hebras concurrentemente.