Configurando saídas de API

Uma saída de API é um módulo de código, um arquivo .dll, que você mesmo fornece e que é executado imediatamente antes ou após chamadas de MQI.

Sobre esta tarefa

Quando IBM® MQ recebe uma chamada de um programa para um de seus pontos de entrada da API, IBM MQ chama sua saída de API. A saída de API é executada antes ou após a execução do MQI, de acordo com a maneira em que a saída foi configurada.

Você pode configurar nenhuma, uma ou muitas saídas para serem chamadas e pode configurar a seqüência em que várias saídas são chamadas. Nas plataformas Windows e Linux® (x86 e x86-64 ), é possível configurar as saídas de API usando IBM MQ Explorer. Os detalhes de configuração são armazenados em arquivos .ini.

  1. Configure uma saída de API em IBM MQ Explorer.
  2. Substituir uma saída de API comum com uma saída de API local.
Há três tipos de definição de saída de API:
Comum (ApiExitCommon)
Um conjunto de definições por computador. Quando o gerenciador de filas inicia, as saídas de API que estiverem definidas, se houver, são lidas e aplicadas ao gerenciador de filas. Configurar saídas de API comuns no diálogo de propriedades IBM MQ . Saídas comuns são exibidas na tabela Saídas de API Locais no diálogo de propriedades de cada gerenciador de filas locais.
Gabarito (ApiExitTemplate)
Um conjunto de definições por computador. Quando um gerenciador de filas é criado, as saídas de API definidas aqui, se houver, são copiadas no gerenciador de filas recém-criado como saídas locais. Configurar saídas API de template no diálogo de propriedades IBM MQ .
Local (ApiExitLocal)
Um conjunto de definições por gerenciador de filas. Quando o gerenciador de filas é iniciado, as saídas de API que estiverem definidas, se houver, substituirão as saídas comuns caso seus atributos de Nome sejam os mesmos e se a substituição foi especificada. Quando uma saída de API comum é substituída, nenhum dos campos na definição comum é salvo, mesmo se o atributo opcional Dados tiver um valor designado. Configure saídas de API locais no diálogo de propriedades do gerenciador de filas.
Ao configurar saídas de API nos diálogos de propriedades do IBM MQ e do gerenciador de filas, os valores do atributo são adicionados às estrofes ApiExitCommon, ApiExitTemplatee ApiExitLocal nos arquivos de configuração ou no registro Windows.
Tabela 1. Atributos de Saída de API
Atributo Significado Chave da sub-rotina
Nome Especifica o nome descritivo da saída de API que é transmitido para a saída de API no campo ExitInfoName da estrutura MQAXP. Este nome deve ser único e é limitado a um comprimento de 48 caracteres, e deve conter apenas aqueles caracteres válidos para o nome de objetos IBM MQ , como nomes de filas. Nome
tipo Especifica o tipo de saída: common, template, localou override. (Não uma chave de sub-rotina separada.)
Sequência Este atributo é um valor numérico sem sinal que define a seqüência na qual essa saída de API é chamada em comparação com outras saídas de API. Uma saída de API com um número de seqüência baixo é chamada antes de outra saída de API com um número de seqüência mais alto. A ordem na qual são chamadas as saídas de API diferentes com o mesmo número de seqüência é indefinida. É perfeitamente válido que haja intervalos nos números de seqüência das saídas de API definidas para um gerenciador de filas. Sequência
Módulo Especifica o módulo que contém o código para a saída de API. Se esse campo contiver o nome de caminho completo do módulo, ele será utilizado dessa forma. Se esse campo contiver apenas o nome do módulo, este será localizado utilizando o mesmo método que as saídas de canal, ou seja, utilizando o valor no campo Caminho de saída padrão na página Saídas do diálogo de propriedades do gerenciador de filas. Módulo
Function Especifica o nome do ponto de entrada da função no módulo que contém o código para a saída de API. O ponto de entrada é a função MQ_INIT_EXIT. O comprimento deste campo está limitado a MQ_EXIT_NAME_LENGTH. Function
Dados Se esse atributo for especificado, os espaços em branco iniciais e finais serão removidos, o restante da cadeia será truncado em 32 caracteres e o resultado será transmitido para a saída no campo ExitData da estrutura MQAXP. Se este atributo não for especificado, o valor padrão de 32 espaços em branco será passado para a saída no campo ExitData da estrutura MQAXP. Dados

Procedimento

  • [OPTION 1] Configure uma saída de API em IBM MQ Explorer.
    1. Abra o diálogo de propriedades relevante:
    2. Na página Exits , clique em Adicionar .... O diálogo Incluir Saída de API é aberto.
    3. Digite as informações necessárias nos campos do diálogo Add API Exit .
    4. Clique em OK para criar a saída e feche o diálogo Add API Exit .
    As propriedades da nova saída de API são exibidas na tabela na página Saídas.
  • [OPÇÃO 2] Substituir uma saída de API comum por uma saída de API local.

    Quando uma saída de API local é definida em um gerenciador de filas com o mesmo nome que uma saída comum, a saída comum é substituída. Isto é, a saída comum não é chamada; em vez disso, a saída local de substituição é chamada. Para impedir a substituição acidental, a interface com o usuário faz com que você execute ações deliberadas para configurar uma substituição; por exemplo, não é possível incluir uma nova saída com o mesmo nome de uma saída existente nem alterar o nome de uma saída para que seja o mesmo nome de uma saída existente. Entretanto, talvez você queira incluir uma saída de API local em um gerenciador de filas para que, em vez de utilizar a saída de API comum, seja utilizada a saída de API local. Nesse caso, é necessário substituir a saída de API comum pela local.

    1. Abra a página Exits do diálogo de propriedades do gerenciador de filas.
    2. Clique na saída comum que você deseja substituir na tabela Exits de API locais .
    3. Clique em Override.
      O diálogo Editar Saída de API é aberto com o nome da saída de API comum exibida.
    4. Digite os detalhes da saída da API local no diálogo Edit API Exit , e clique em OK para salvar as alterações.
    Agora, a saída local substitui a saída comum que tem o mesmo nome.