WebSphere Message Broker, Versão 8.0.0.5 Sistemas operacionais: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte as informações sobre a versão mais recente do produto em IBM Integration Bus, Versão 9.0

Ciclo de Vida do Nó Input Definido pelo Usuário Java

Um nó de entrada definido pelo usuário que é gravado na linguagem de programação Java™ progride através de vários estágios durante seu ciclo de vida.

Os estágios do ciclo de vida são:

Registro

Durante a fase de registro, um nó de entrada definido pelo usuário gravado em Java torna-se conhecido para o intermediário. O nó é registrado com o intermediário através do método estático getNodeName. Sempre que um intermediário é iniciado, ele carrega todas as classes Java relevantes. O método estático getNodeName é chamado nesse ponto e o intermediário registra o nó input com o nome de nó especificado no método getNodeName. Se não for especificado um nome de nó, o intermediário criará automaticamente um nome para o nó com base no pacote onde ele está contido.

Utilizar um método estático aqui significa que o método pode ser chamado pelo intermediário antes que o próprio nó seja instanciado.

Instanciação

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

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.

Para tratar de exceções transmitidas de volta a seu nó de entrada, utilize createOutputTerminal para criar um terminal de captura para seu nó de entrada. Quando o nó de entrada captura um erro, o terminal de captura processa o mesmo da mesma forma que um nó MQInput o faria. Você pode permitir que a maioria das exceções, como exceções causadas por problemas de implementação, sejam transmitidas de volta ao intermediário, o qual avisará o usuário sobre quaisquer possíveis erros de configuração.

Como um mínimo, a classe do construtor somente necessita criar esses terminais de saída no nó input. Contudo, se precisar inicializar valores de atributos, tais como definir o analisador que fará a análise inicial de uma mensagem transmitida do nó input, você deve incluir também esse código neste ponto no nó input.

Processando

O processamento de mensagens para um nó input começa quando o intermediário chama o método run. O método run cria a mensagem de entrada, e deve conter a função de processamento para o nó input.

O método run é definido em MbInputNodeInterface, que é a interface utilizada em um nó definido pelo usuário que o define como um nó de entrada. Você deve incluir um método run em seu nó. Se um método run não for incluído no nó de entrada definido pelo usuário, o código-fonte do nó não será compilado.

Quando um fluxo de mensagens contendo um nó input definido pelo usuário é implementado com êxito, o intermediário chama o método de implementação run do nó, e continua a chamar esse método enquanto aguarda o processo das mensagens.

Quando um fluxo de mensagens é iniciado, um único encadeamento é despachado pelo intermediário e é chamado para o método run do nó input. Se o método dispatchThread() for chamado, mais encadeamentos podem também ser criados no mesmo método run. Esses novos encadeamentos chamam imediatamente para o método run do nó input e podem ser tratados da mesma forma que o encadeamento original. O número de novos encadeamentos que podem ser criados é definido pela propriedade additionalInstances. Certifique-se de que os encadeamentos sejam despachados após uma mensagem ter sido criada e antes de ser propagada, para assegurar que somente um encadeamento por vez esteja aguardando uma nova mensagem.

O nó input definido pelo usuário pode escolher um modelo de encadeamento e ser responsável pela implementação do modelo escolhido. Se o nó de entrada suportar a propriedade additionalInstances e dispatchThread() for chamada, o código deverá ser totalmente reentrante e todas as funções chamadas pelo nó também devem ser reentrantes. Se o nó de entrada forçar encadeamento único, ou seja, não chamar dispatchThread(), a documentação do nó deve determinar que configurara a propriedade additionalInstances não tem nenhum efeito no nó de entrada.

Para obter informações adicionais sobre o modelo de encadeamento para nós de entrada definidos pelo usuário, consulte Considerações sobre Encadeamento para Extensões Definidas pelo Usuário.

Destruição

Um nó de entrada definido pelo usuário Java é destruído quando o nó é excluído ou o intermediário é encerrado. Você não necessita 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

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última atualização:
        
        Última atualização: 2015-02-28 18:30:30


Tópico de ConceitoTópico de Conceito | Versão 8.0.0.5 | as24998_