Sobre os Beans controlados por mensagens

Consulte também

Um bean controlado por mensagem é um enterprise bean que permite às aplicações J2EE processarem mensagens de forma assíncrona. O Bean age como um ouvinte de mensagens Java Message Service (JMS), que é semelhante a um ouvinte de eventos, exceto pelo fato de que o Bean controlado por mensagem recebe mensagens em vez de eventos. As mensagens podem ser enviadas por qualquer componente do J2EE: um cliente de aplicativo, outro Enterprise Bean ou um componente da Web.

Por que usar Beans controlados por mensagem?

Os Beans controlados por mensagem são a solução para criar aplicativos empresariais assíncronos onde o processamento é iniciado com a chegada de uma mensagem. Esta abordagem permite um emparelhamento livre entre os módulos do aplicativo empresarial. Um emissor (conhecido como produtor) envia uma mensagem para um objeto gerenciado JMS (tópico ou fila) para iniciar um processo.

Comparação entre beans de sessão e beans de entidade

Ao contrário dos beans de sessão e dos beans de entidade, os clientes dos Beans controlados por mensagem não pode acessá-los através de interfaces. O Bean controlado por mensagem apresenta apenas uma classe de Bean.

Um Bean controlado por mensagem se parece em muitos aspectos a um bean de sessão sem estado:

As variáveis de instância da instância do Bean controlado por mensagem podem manter algumas informações de estado através da manipulação de mensagens de clientes, como uma referência a objeto para um objeto do Enterprise Bean.

Manipulação de mensagens

Quando uma mensagem chega, o recipiente chama o método onMessage do Bean controlado por mensagem para processar a mensagem. O método onMessage normalmente envia a mensagem a um dos cinco tipos de mensagem JMS e manipula a mensagem de acordo com a lógica empresarial da aplicação. O método onMessage pode chamar métodos de ajuda ou chamar um bean de sessão ou de entidade para processar a informação da mensagem e possivelmente armazenar os resultados em um banco de dados.

Muitas instâncias de uma classe de Bean controlado por mensagem podem ser executadas simultaneamente, permitindo que um fluxo de mensagens seja processado simultaneamente. Devido ao fato de não haver garantias em relação à ordem exata na qual as mensagens são entregues a estas instâncias, os Beans controlados por mensagem devem estar preparados para manipular as mensagens que estão fora de seqüência. Por exemplo, a mensagem de cancelamento de uma reserva pode ser entregue antes da mensagem de solicitação da reserva.

Transações

O recipiente fornece a instância do Bean controlado por mensagem com MessageDrivenContext, que dá à instância do Bean acesso ao contexto mantido pelo recipiente. Dependendo se o Bean gerenciar suas próprias transações ou contar com o gerenciamento de transação do recipiente, poderá acessar diferentes métodos de MessageDrivenContext para manipular transações.

Consulte também
Enviando uma mensagem JMS
Sobre os beans de entidade
Sobre os beans de sessão
Criando um Enterprise Bean
Sobre métodos empresariais

Notificações legais