Ciclo de Vida de Nós de Processamento de Mensagens Definidos pelo Usuários Java

Este tópico o orienta pelos vários estágios na vida de um nó de processamento de mensagem definido pelo usuário para a linguagem de programação Java. Ele cobre os objetos que são criados e destruídos e as funções e classes chamadas nos seguintes estágios:

As informações neste tópico se aplicam a nós de saída e a nós de processamento de mensagem. Esses dois tipos de nó podem ser considerados em conjunto porque, embora um nó de processamento de mensagem seja utilizado tipicamente para processar uma mensagem e um nó de saída seja utilizado para fornecer uma saída na forma de um fluxo de bits de uma mensagem, qualquer dos tipos de nó pode ser utilizado para executar qualquer dessas funções.

Registro

A fase de registro ocorre quando um nó de processamento de mensagem definido pelo usuário escrito em Java, se torna conhecido para o intermediário ou se registra com este.

Sempre que um intermediário inicia, ele carrega todas as LILs e classes Java relevantes. Para assegurar que um nó de processamento de mensagem seja registrado com o intermediário, você deve fornecer ao intermediário uma classe que implemente a interface MbNodeInterface e esteja contida no caminho de classe do intermediário.

Instanciação

Um nó de processamento de mensagens Java definido pelo usuário é instanciado quando um intermediário implementa um fluxo de mensagens contendo o nó de processamento de mensagens definido pelo usuário. Quando o nó é instanciado, o construtor da classe de nó de processamento de mensagem é chamado.

Quando um nó é instanciado, quaisquer terminais que foram especificados são criados. Um nó de processamento de mensagem pode ter qualquer número de terminais de entrada e de saída associados a ele. Você deve incluir os métodos createInputTerminal e createOutputTerminal no construtor do nó para declarar esses terminais.

Os terminais de saída incluem terminais out, failure e catch. Utilize a classe createOutputTerminal dentro do construtor da classe do nó para criar o número de terminais de saída necessário.

Como um mínimo, somente é preciso criar esses terminais de saída utilizando a classe do construtor. Contudo, se precisar inicializar valores de atributos, você deve incluir também esse código neste ponto no nó de processamento de mensagem.

Se desejar tratar exceções que sejam transmitidas de volta a seu nó de processamento de mensagens, é recomendável fazer isso criando um terminal de falha para o nó de processamento de mensagens definido pelo usuário, utilizando o método createOutputTerminal. É sensato utilizar o terminal de falha para esse processo porque é para ele que o WebSphere Message Broker propaga os erros.

Certifique-se de que quaisquer exceções capturadas pelo nó de processamento de mensagem sejam tratadas corretamente. Se você não incluir um terminal de falha, o nó de processamento de mensagem não tentará tratar a exceção. Se o fluxo de mensagens não contiver nenhum método de manipulação de exceção, quaisquer exceções lançadas serão transmitidas de volta ao nó de entrada, onde elas serão tratadas.

Se você capturar exceções, certifique-se de relançar quaisquer exceções que o nó de processamento de mensagens não pode tratar. Isso fará com que a exceção seja transmitida novamente para o nó de entrada para manipulação, por exemplo, quando você quiser reverter uma transação.

Processando

Durante a fase de processamento do ciclo de vida de um nó de processamento de mensagens definido pelo usuário, o nó de processamento de mensagens toma a hierarquia lógica da mensagem e a processa de alguma forma.

Destruição

Um nó de processamento de mensagem Java definido pelo usuário é destruído quando o nó é excluído ou o intermediário é encerrado. Você não precisa incluir algo em seu código que especifique que o nó deve ser excluído fisicamente, porque isso pode ser tratado pelo coletor de lixo.

Contudo, se quiser ser notificado de que um nó está prestes a ser excluído, você pode utilizar o método onDelete. Você pode querer fazer isso, se existirem recursos além dos que serão coletados como lixo que você deseja excluir. Por exemplo, se você tiver aberto um soquete, este não será fechado corretamente quando o nó for excluído automaticamente. Você pode incluir essa instrução no método onDelete, para assegurar que o soquete seja fechado corretamente.

Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2005 Última Atualização: 04/11/2005
as24999_