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.
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 informações adicionais sobre as funções de implementação do nó C que você grava para o nó, consulte Funções de Implementação de Nó C. Você pode chamar funções de utilitário do nó C, implementadas no broker de tempo de execução, para ajudar na operação do nó; consulte Funções de Utilitários de Nó C.
Você só pode visualizar informações sobre amostras quando usa o centro de informações que está integrado ao WebSphere Message Broker Toolkit ou o centro de informações on-line. Você só poderá executar amostras quando usar o centro de informações que está integrado ao WebSphere Message Broker Toolkit.
Para declarar e definir um nó definido pelo usuário para o intermediário, inclua uma função de inicialização, bipGetMessageflowNodeFactory, na LIL. As etapas a seguir devem ser realizadas no encadeamento de configuração, devem esboçar como o intermediário chama sua função de inicialização e como sua função de inicialização declara e define o nó definido pelo usuário:
Para instanciar seu nó:
Os atributos são definidos sempre que se inicia o intermediário, ou quando se reimplementa um fluxo de mensagens com novos valores. Os atributos são definidos pelo intermediário, chamando o código do usuário a partir do 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) ;
}
Quando o intermediário recupera uma mensagem da fila e essa mensagem chega no terminal de entrada do nó de processamento de mensagens ou de saída definido pelo usuário, o intermediário 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 vários encadeamentos, principalmente, se instâncias adicionais forem utilizadas.
Se um nó for excluído, o intermediário chamará 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. Por exemplo:
void _deleteNodeContext(
CciContext* context
){
static char* functionName = (char *)"_deleteNodeContext()";
free ((void*) context);
return;
}