EJB orientado a mensagens

11 respostas
serp

Na prática qual é a utilidade deles?
:oops: :oops: :oops: :oops: :oops:

11 Respostas

cv1

Em qualquer servico onde voce tenha que trabalhar com mensagens e/ou processamento assincronos. Um exemplo pratico:

Numa bolsa de valores, um monte de corretoras faz operacoes o dia todo. Quando uma corretora faz uma operacao, voce nao precisa dar um retorno pra ela - basta dizer que a operacao foi colocada na bolsa com sucesso.

Nesse caso, basta montar uma fila de mensagens, e todas as corretoras publicam mensagens nessa fila. O servidor de aplicacoes gerencia essa fila sozinho, e sempre que uma mensagem chega, o metodo onMessage(Object message) do seu EJB MDB é chamado. Daí é só processar a mensagem :wink:

louds

Processamento assincrono de mensagens. Ok isso não quer dizer nada.

Como o cv falou, faz sentido usar um MDB quando se tem uma tarefa que precisa ser executada, porêm não precisa ser agora e não existe interesse no resultado.

cv1

Na verdade, a coisa mais legal do processamento assincrono eh que as tarefas geralmente PRECISAM ser executadas o mais rapido possivel - e economizar o tempo de se retornar resultados e manter o cliente conectado enquanto isso salva preciosos recursos na maquina :wink:

louds

Sim, voce pode usar MDB para fazer processamento de varias coisas de forma assincrona.

Porêm até onde eu lembro a especificação de JMS não inclui garantias de tempo.

cv1

De fato, a spec dos MDBs nem a spec da JMS define isso, mas todo bom servidor de mensageria (ou seja, os que custam +$10000) tem essa feature :wink:

louds

Hmm
então agora é só esperarmos a odmg entrar na JSR sobre EJB e esperarmos a spec de real-time EJB. :twisted: :twisted: :twisted: :twisted: :twisted:

cv1

“louds”:
Hmm
então agora é só esperarmos a odmg entrar na JSR sobre EJB e esperarmos a spec de real-time EJB. :twisted: :twisted: :twisted: :twisted: :twisted:

Corram por suas vidas! :smiley:

serp

Por exemplo se eu tivesse um processamento em lote grande, por exemplo o fechamento do mês, e após esse processamento eu precisasse destes dados para gerar relatórios, o message bean é a melhor solução?

cv1

Provavelmente… processamento “em lote” geralmente nao eh mto legal de se fazer - melhor seria ir montando o fechamento aos pouquinhos o tempo todo, e so “finalizar” ele no fim do mes. Em ambos os casos, da pra bolar otimas solucoes usando MDBs e JMS. :wink:

serp

Mas e se eu quisesse um processamento em lote uma única vez ao mês usando ejb’s qual seria a melhor solução?

cv1

MDBs seriam uma boa, mas ainda assim depende de diversos outros fatores, por exemplo, que tipo de processamento vc esta fazendo. Se for so mover um monte de registros em um banco de dados pra lah e pra cah, e fazer umas totalizacoes, eh uma otima ideia. Processamento de dados meteorologicos, em compensacao, nao daria certo :wink:

Criado 27 de novembro de 2003
Ultima resposta 28 de nov. de 2003
Respostas 11
Participantes 3