Consumo Paralelo de EJB

2 respostas
ddduran

Pessoal tenho uma aplicação que pode consumir N (hoje são 4) EJBs que estão rodando em maquinas diferentes. Cada ejb desses (que tem a mesma interface) demora varios segundos para entregar a resposta, então fizemos um loop chamando cada um em uma maquina e na hr de executar esse ejb, a execução é feita em uma thread, para que o processo seja paralelo e execute mais rapido.

O problema é que esse consumidor agora tambem será um EJB e segundo li, não é recomendavel abrir threads dentro de um EJB, como posso fazer pra substituir essas threads?

Existe alguma anotação que eu possa usar que indique que aquele metodo deve ser executado em uma thread a parte

Tem como eu usar as threads gerenciadas pelo container pra que não haja os problema sitados no link abaixo?
http://java.sun.com/blueprints/qanda/ejb_tier/restrictions.html#threads

O unico jeito é usando JMS e MDB?
Se alguem tiver uma opinião agradeço

2 Respostas

L

Hoje, a única opção de assincronicidade (utilizando o padrão) é através de filas JMS com MDB. Espera-se para o Java EE 6, a introdução de Servlets e EJBs assíncronos.

Mas uma dúvida pairou no ar: por que você tem EJB em máquinas diferentes? Não seria melhor fazer uma aplicação onde todos os EJBs estivessem em apenas uma máquina?

ddduran

poxa por que o sistema é distribuido oras, essa é a arquitetura dele :slight_smile:

Enfim, eu fiz um WS e to consumindo eles assincronamente, o que acham da solução?

Criado 9 de fevereiro de 2009
Ultima resposta 10 de fev. de 2009
Respostas 2
Participantes 2