Criando um Nó de Processamento de Mensagem ou de Saída em C
Um nó de processamento de mensagem é usado para processar uma mensagem de alguma maneira e um nó de saída é usado para produzir uma mensagem como um fluxo de bits.
Antes de Começar
Sobre esta tarefa
Ao codificar um nó de processamento de mensagens ou um nó de saída, os nós fornecem essencialmente os mesmos serviços. É possível executar o processamento de mensagens em um nó de saída e enviar uma mensagem para um fluxo de bits usando um nó de processamento de mensagens. Para simplificar, este tópico refere-se principalmente ao nó como um nó de processamento de mensagens, mas também contém informações sobre as funções de dois tipos de nó.
Uma LIL (Biblioteca de Implementação Carregável) é o módulo de implementação para um nó em C. Uma LIL é implementada como uma DLL (Biblioteca de Links Dinâmicos) ou biblioteca compartilhada, mas tem a extensão de arquivo .lil, não .dll.
Para obter mais informações sobre as funções de implementação do nó C gravadas para o nó, consulte Funções de implementação do nó C. É possível chamar as funções do utilitário do nó C, implementadas no nó de integração de tempo de execução, para ajudar com a operação do nó; consulte Funções do utilitário do nó C
IBM® App Connect Enterprise fornece o código-fonte de dois nós definidos pelo usuário de exemplo, chamados SwitchNode e TransformNode. É possível utilizar esses nós em seus estados atuais ou poderá modificá-los.
Declarando e Definindo Seu Nó
Sobre esta tarefa
Para declarar e definir um nó definido pelo usuário para o nó de integração, inclua uma função de inicialização, bipGetMessageflowNodeFactory, na LIL. As etapas a seguir ocorrem no encadeamento de configuração e esboçam como o nó de integração chama sua função de inicialização e como sua função de inicialização declara e define o nó definido pelo usuário:
Procedimento
Criando uma Instância do Nó
Sobre esta tarefa
Para instanciar seu nó:
Procedimento
Definindo Atributos
Sobre esta tarefa
Atributos são configurados sempre que se inicia o nó de integração ou quando se reimplementa um fluxo de mensagens com novos valores. Atributos são configurados pelo nó de integração chamando o código do usuário no encadeamento de configuração. Seu código precisa armazenar esses atributos em sua área de contexto do nó, para utilização no processamento de mensagens posterior.
{
const CciChar* ucsAttr = CciString("nodeTraceSetting", BIP_DEF_COMP_CCSID) ;
insAttrTblEntry(p, (CciChar*)ucsAttr, CNI_TYPE_INTEGER);
_setAttribute(p, (CciChar*)ucsAttr, (CciChar*)constZero);
free((void *)ucsAttr) ;
}
{
const CciChar* ucsAttr = CciString("nodeTraceOutfile", BIP_DEF_COMP_CCSID) ;
insAttrTblEntry(p, (CciChar*)ucsAttr, CNI_TYPE_STRING);
_setAttribute(p, (CciChar*)ucsAttr, (CciChar*)constSwitchTraceLocation);
free((void *)ucsAttr) ;
}- label
- userTraceLevel
- traceLevel
- userTraceFilter
- traceFilter
Implementando a Funcionalidade do Nó
Sobre esta tarefa
Quando o nó de integração recupera uma mensagem da fila e essa mensagem chega no terminal de entrada do nó de es de integração ou os ou de saída de mensagem definido pelo usuário, o nó de integração chama a função de implementação cniEvaluate. Esta função é chamada no encadeamento de processamento de mensagens e deve decidir o que fazer com a mensagem. Essa função pode ser chamada em diversos encadeamentos, principalmente, se instâncias adicionais forem utilizadas.
Excluindo uma Instância do Nó
Sobre esta tarefa
Se um nó for excluído, o nó de integração chama a função cniDeleteNodeContext. Esta função é iniciada no mesmo encadeamento que cniCreateNodeContext. Utilize essa função para liberar os recursos utilizados pelo nó definido pelo usuário. Exemplo:
void _deleteNodeContext(
CciContext* context
){
static char* functionName = (char *)"_deleteNodeContext()";
free ((void*) context);
return;
}