[b][color=darkblue]Quando se tem um conjunto de servidores, eles podem estar em Cluster ou não.
Entretanto, cada tipo de EJB tem caracteristicas diferentes quando estão literalmente distribuidos.
Em “Cluster”:
SessionBean Stateless - O J2EE Server irá criar uma quantidade de instâncias que ele julgar necessário para atender a carga de aceso ao AppServer.
SessionBeans Stateful - cada create(), cria somente uma instância deste EJB para aquele cliente. Se o serviço for solicitado e por algum motivo aquela requisição for direcionada a outro container do Cluster, o J2EE Server replica o estado do EJB para a outra instancia e executa a requisição. No final da transação, ele atualiza os outros servidores do Cluster que contêm aquele EJB. No caso de o cliente chamar o remove(), ele será removido em todos os containers.
EntityBean - Tratado da mesma forma que o Stateful, com a diferença que esta instância, independente do container que estiver, somente acessado por uma transação por vez. Visto que um EntityBean, que foi identificado por um PK, não pode ser “criado” novamente, e será compartilhado por vários clientes.
MessageDrivenBean - Tratado da mesma forma que o Stateless.
Sem “Cluster”.
SessionBeans Stateless - Não se altera o comportamento.
SessionBeans Stateful - Seria criado duas sessões diferentes,uma em cada container.
Os EntityBeans - ficariam duplicados tbm, pois um create num Container criará a instância, e num segundo create, se o outro Container receber a requisição, será criado novamente, duplicando a entidade.
MessageDrivenBean - não se altera tbm.
Quanto ao tempo de vida dos EJBs, eles têm atributos como:
SessionBeans:
- Tempo de TimeOut - Se esse tempo for excedido, o J2EE Server vai remover essa instância (Stateful) ou desativar a remote (Stateless)
- Ocupação de Memoria - Determina a quantidade máxima a ser ocupada. Se o consumo de memoria do Container aumentar muito, aumentara a passivação e ativação dos EJBs.
EntityBeans
- PoolSize - Representa a quantidade de “linhas em memoria” para aquele tipo de Entidade. Se o tamanho do pool ficar reduzido, vai tbm acontecer um excesso de ativação e passivação.
MessageDrivenBeans -
- Numero de MDBs/fila - Representa a quantidade de MDBs que podem ser criados para processar as messanges aquela fila.
Espero ter ajudado.[/color][/b][/b]