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 de Nós C de Processamento de Mensagens Definidos pelo Usuário

Um nó de processamento de mensagens definido pelo usuário para a linguagem de programação C passa por vários estágios.

Este tópico cobre os objetos que são criados e destruídos e as funções e classes de implementação que são 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ós podem ser considerados juntos, porque embora um nó de processamento de mensagens seja utilizado tipicamente para processar uma mensagem e um nó output seja utilizado para fornecer uma saída no formato de um fluxo de bits, você pode utilizar o tipo de nó para executar uma dessas funções.

Registro

Um nó de processamento de mensagem definido pelo usuário é registrado com o broker quando a LIL que contém o nó tiver sido carregada e inicializada pelo sistema operacional.

O servidor broker chama bipGetMessageflowNodeFactory para estabelecer a função da LIL e como ela deve ser chamada.

A função bipGetMessageflowNodeFactory por sua vez chama a função cniCreateNodeFactory, a qual retorna um nome de depósito de informações do provedor ou de grupo para todos os nós suportados pela LIL.

A LIL deve em seguida chamar a função utilitária cniDefineNodeClass para transmitir o nome de cada nó e uma tabela de funções virtuais dos ponteiros de funções das funções de implementação.

Instanciação

Durante a fase de instanciação, uma instância de um nó de processamento de mensagem definido pelo usuário é criada. A fase começa quando o broker cria um fluxo de mensagens e chama a função cniCreateNodeContext para cada instanciação do nó definido pelo usuário neste fluxo de mensagens. A função cniCreateNodeContext é aquela especificada no campo iFpCreateNodeContext da estrutura CNI_VFT transmitida para cniDefineNodeClass para esse tipo de nó. Essa função deve alocar os recursos requeridos para esse nó, incluindo a memória para essa instanciação do nó definido pelo usuário para conter os valores dos atributos configurados.

O broker criará uma instância do nó e chamará cniCreateNodeContext nas seguintes ocasiões:
  • O fluxo de mensagens é criado:
    • O broker está sendo iniciado (o usuário precisa executar mqsistart). Quaisquer fluxos de mensagens anteriormente implementados são recriados quando o broker inicia.
    • O grupo de execução está sendo recarregado (o usuário precisa executar mqsireload). Quaisquer fluxos de mensagens que tenham sido implementados anteriormente são recriados quando o grupo de execução recarrega.
    • Ocorreu um erro grave dentro do grupo de execução, que resulta no grupo de execução sendo reiniciado.
  • O fluxo de mensagens é reimplementado. Quando um fluxo de mensagens é alterado e reimplementado, os processos do broker são reimplementados excluindo todos os nós do fluxo e, em seguida, recriando-os com a nova configuração.
Nota: Um fluxo de mensagens não é criado ao iniciar um grupo de execução. Parar um grupo de execução simplesmente pára todos os fluxos e não exclui o fluxo ou desativa o processo. Reiniciar um grupo de execução inicia os fluxos de mensagens, mas não recria os fluxos de mensagens.

Em cniCreateContext, a extensão definida pelo usuário chama as duas funções cniCreateInputTerminal e cniCreateOutputTerminal para estabelecer quais terminais de entrada e de saída o nó de processamento de mensagem possui.

Processamento

Durante a fase de processamento do ciclo de vida de um nó de processamento de mensagem definido pelo usuário, a mensagem é transformada de alguma forma, quando alguma operação de processamento ocorre na mensagem de entrada.

Quando o broker recupera uma mensagem da fila e essa mensagem chega no terminal de entrada do nó definido pelo usuário, o broker chama a função de implementação cniEvaluate. Essa função é utilizada para decidir o que fazer com a mensagem.

É possível utilizar uma gama de funções de utilitários de nó no nó de processamento de mensagem definido pelo usuário, para executar uma variedade de funções de processamento de mensagem, tais como, acessar os dados da mensagem, acessar ESQL, transformar um objeto de mensagem e propagar uma mensagem. Você deve incluir as funções utilitárias de nó que irá utilizar para processar a mensagem na função cniEvaluate.

Essa interface não gera automaticamente uma subárvore de propriedades para uma mensagem. Não é um requisito para uma mensagem ter uma subárvore de propriedades, embora você possa achar útil criar uma para fornecer uma estrutura de árvore de mensagem consistente independentemente do nó input. Se você quiser que uma subárvore de propriedades seja criada em uma mensagem, e também estiver utilizando um nó input definido pelo usuário, deverá fazer isso você mesmo.

Destruição

Quando um nó de processamento de mensagem definido pelo usuário tiver processado uma mensagem você deverá assegurar que ele seja destruído, para liberar quaisquer recursos do sistema que ele utilizou, e para liberar quaisquer áreas de dados específicas à instância do nó, como o contexto, que foram adquiridas quando a mensagem foi construída ou processada.

Uma instância de um nó de processamento de mensagem definido pelo usuário é destruído quando o broker chama a função cniDeleteNodeContext.

O broker chama cniDeleteNodeContext quando a instância do nó é excluída. Os eventos a seguir podem fazer com que um nó seja excluído:
  • Finalização controlada do processo do grupo de execução:
    • O broker está sendo parado (o usuário precisa executar mqsistop)
    • O grupo de execução está sendo recarregado (o usuário precisa executar mqsireload)
    • Ocorreu um erro grave dentro do grupo de execução, que resulta no grupo de execução sendo reiniciado.
    Nota: Isso NÃO inclui parar um grupo de execução. Parar um grupo de execução simplesmente pára todos os fluxos e não exclui o fluxo ou desativa o processo.
  • O fluxo de mensagens é excluído.
  • O fluxo de mensagens é reimplementado. Quando um fluxo de mensagens é alterado e reimplementado, os processos do broker são reimplementados excluindo todos os nós do fluxo e, em seguida, recriando-os com a nova configuração.
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:19


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