Message-driven bean

6 respostas
M

Pessoal,

Tenho uma aplicação onde implementei um thread, porém essa aplicação recebe muitas requisições, dai pensei em usar multithread nela. Só que conversando com um colega ele me disse que eu poderia utilizar o Message-driven bean, porque ele, junto com o JBoss, controla a quantidade de requisições, como se fosse multithreads e assim eu não teria que implementar thread nenhuma no meu sistema. Porém, pelo que andei lendo, o message-driven bean só é utilizado com EJB e eu não estou utilizando EJB. Alguém sabe me dizer se é isso mesmo ou se existe alguma forma de implementar o message-driven bean sem EJB?

Aguardo resposta

6 Respostas

renanreismartins

amigo, estudando jms uma vez, criei um emissor e um receptor em classes nao gerenciadas, porém meu servidor de aplicação que gerenciava a fila era o glassfish.

para usar jms será necessario um servidor de aplicação, no seu caso, jboss. entao nao vejo porque não usar o ambiente gerenciado, anotacoes e etc.

porem de qualquer forma, segue o codigo que fiz. espero que seja util

abrassssss

M

Oi renanreismartins,

vi o seu código. Nele vc utiliza thread também. No meu sistema, utilizo uma thread também, o problema é que como serão muitas solicitações na fila, essas devem ser consumidas com uma certa rapidez. Dai me veio a idéia de utilizar multithread ou message-driven bean. Só que ainda não encontrei uma forma de como implementar o message-driven bean.

AndreAlves

Se eu não me engano, o Message Driven Bean nada mais é do que um EJB assíncrono, que utiliza um mecanismo de controle de fila no servidor de aplicação (no Websphere eu já vi com o MQ).

renanreismartins

@malbarbosa nada haver amigo

aquela thread que esta no codigo chama apenas o metodo sleep().

faço isso justamente para ver o comportamento assincrono
quando executo o EmissorQueue ele printa na tela “livre” apenas para mostrar que ele ja enviou a mensagem e pode fazer qualquer outro processamento, inclusive enviar mais mensagens.

Ja a thread que vc se refere apenas faz o programa esperar um certo tempo para dps continuar a execução e printar o usuario na tela, isso para mostrar que o Emissor e o Tratador sao totalmente assincronos.

abrassss

J

@renanreismartins, cara como ficaria teu código usando annotations?
Estou usando Glassfish v3 e tá faltando alguma coisa que não consigo fazer funcionar um MDB usando Queue. Segui o tutorial Sun JEE 5, mas falta algo que não sei.

Outra coisa, você poderia explicar essas properties que você usou?

renanreismartins

cara com glassfish3 desse jeito não funciona, creio que justamente pq as properties sao diferentes, porem creio que com mdbs funcione sim.

As annotations que uso sao exatamentes as do tutorial, tente com o glassfish2 e veja se consegue, dps migre

abrassss

Criado 11 de novembro de 2010
Ultima resposta 23 de nov. de 2010
Respostas 6
Participantes 4