Sobre os Beans controlados por mensagens

Consulte também

Um Bean controlado por mensagem é um Enterprise Bean que permite aos aplicativos 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 J2EE: um cliente de aplicativo, outro Enterprise Bean ou um componente da Web.

Por que usar Beans controlados por mensagem?

Você pode usar Beans controlados por mensagem em vez dos Beans de sessão ou de entidade se não quiser restringir os recursos do servidor. Os Beans de sessão e de entidade também permitem enviar e receber mensagens JMS, mas eles operam de forma síncrona, e de forma assíncrona, como fazem os Beans de controlados por mensagem.

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 do aplicativo. 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