Gerenciamento de Armazenamento

Este tópico lida com questões relativas ao gerenciamento de armazenamento que você deve considerar ao desenvolver extensões definidas pelo usuário para o WebSphere Message Broker na linguagem de programação C. Se você estiver desenvolvendo extensões definidas pelo usuário utilizando a linguagem de programação Java, você pode utilizar métodos padrão Java de gerenciamento de armazenamento.

Toda a memória alocada por uma extensão definida pelo usuário deve ser liberada pela extensão definida pelo usuário. A construção de um nó em tempo de execução faz com que cniCreateNodeContext seja chamado, o que permite à extensão definida pelo usuário alocar áreas de dados específicas à instância do nó para armazenar um contexto. O endereço do contexto é retornado ao intermediário de mensagem e é transmitido de volta do intermediário quando um método interno fizer com que uma função da extensão definida pelo usuário seja chamada; assim, a extensão C definida pelo usuário pode localizar e utilizar o contexto correto para o processamento da função.

O intermediário de mensagem transmitirá endereços de objetos C++ à extensão definida pelo usuário. Esses são simplesmente para serem utilizados como um identificador a ser transmitido de volta em chamadas subseqüentes à função. Você não deve permitir que sua extensão C definida pelo usuário tente manipular ou utilizar esse ponteiro de nenhuma forma, tentando liberar armazenamento utilizando a função free, por exemplo. Tais ações causarão comportamento imprevisível no intermediário de mensagem.

A função de implementação cniCreateNodeContext é chamada sempre que o objeto de nó subjacente tiver sido construído internamente. Isso ocorre quando um intermediário é definido com um fluxo de mensagens que utiliza um nó definido pelo usuário. É importante observar que isso não é necessariamente a mesma atividade que criar (ou reutilizar) um encadeamento para executar uma instância do fluxo de mensagens que contém o nó. De fato, a função cniCreateNodeContext será chamada somente uma vez, durante a configuração do fluxo de mensagens, independente de quantos encadeamentos estejam executando o fluxo de mensagens.

Considerações similares se aplicam a analisadores definidos pelo usuário e à função de implementação correspondente cpiCreateContext.

Conceitos relacionados
Extensões Definidas pelo Usuário
Analisadores Definidos pelo Usuário
Referências relacionadas
cpiCreateContext
cniCreateNodeContext
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
as01440_