Consumo de memória em EJB3

5 respostas
luciano2

Ola tenho uma dúvida que não consegui encontrar resposta em nenhum site, a dúvida é a seguinte:

se eu tiver um ejb utilizando outro EJB local será criada uma nova thread no servidor de aplicação?

ex:

@Stateless
class A{
     @EJB B b;
}

@Stateless
class B{

}

Nesse caso eu terei duas threads uma para cada EJB?

5 Respostas

FernandoFranzini

Não…agregações de EJB’s não influirão no numero de threads internas do ejb container.
Muito esquisito essa pergunta…

luciano2

É que na verdade eu fiz uma implementação que tem muitas agregações de EJB, mas o cliente me mandou mudar e me deu esta justificativa.

Já faz dois dias que pesquiso na internet procurando materiais que provem que está agregação não gera threads. Você conhece algum material que aborde este assunto?

FernandoFranzini

Nâo existe material pq é uma pergunta sem sentido…vc não achar nenhum autor de livro afirmando uma bobeira dessa.
O que gera thread dentro de um ejb container é uma chamada RMI para consumir algum método EJB.
Se por ventura um ejb chamar o outro…as chamadas dos agregados são colocados na mesma thread.
Ourtra coisa, provedores de EJB container ja abrem um POOL de thread pre estabelecido conforme configurado (favor consultar a documentação do seu provedor)

luciano2

Para comprovar isso só utilizando um profiler para verificar o número de threads rodando no servidor?

FernandoFranzini

O mais fácil é verificar os parâmetros de configuração de pool de Thread adotados pelo provedor de EJB container em uso.

Criado 31 de agosto de 2011
Ultima resposta 31 de ago. de 2011
Respostas 5
Participantes 2