Um Cenário de Pedido/Resposta Utilizando um Nó MQGet

Leia sobre o cenário no qual um nó MQGet é utilizado em um fluxo de pedido/resposta e explica como o nó processa as mensagens de entrada para construir as mensagens de saída, com base no conteúdo da árvore LocalEnvironment e nos parâmetros de entrada configurados.

Um fluxo de pedido-resposta é uma forma especializada de um aplicativo ponto a ponto. Para obter uma descrição geral desses aplicativos, consulte Modelos de Comunicação de Aplicativos. Para obter um exemplo de um fluxo de mensagens de pedido/resposta, consulte a amostra a seguir: Você pode visualizar amostras apenas quando utilizar o centro de informações integrado ao Message Brokers Toolkit.

É possível incluir um nó MQGet em qualquer lugar em um fluxo de mensagens, incluindo um fluxo que implementa um cenário de pedido/resposta. O nó recebe uma mensagem de entrada em seu terminal de entrada a partir do nó precedente no fluxo de mensagens. Em seguida, emite uma chamada MQGET para recuperar uma mensagem da fila WebSphere MQ que você configurou em suas propriedades e constrói uma árvore de mensagens do resultado. Por fim, utiliza a árvore de entrada e a árvore de resultados para criar uma árvore de saída que é, então, propagada para seu terminal Out, Warning ou Failure, dependendo da configuração do nó e do resultado da operação MQGET.

Como o Nó MQGet Manipula o LocalEnvironment

O nó MQGet examina a árvore LocalEnvironment propagada a partir do nó precedente. Utiliza, então, o conteúdo relacionado ao MQGMO (Opções de Mensagens do MQ Get) e o MQMD (Cabeçalho do Descritor de Mensagens do MQ) e atualiza o LocalEnvironment:

  • O nó lê a estrutura MQGMO de ${inputMQParmsLocation}.MQGMO.*.
  • O nó copia os códigos de conclusão e de razão do WebSphere MQ para ${outputMQParmsLocation}.CC e ${outputMQParmsLocation}.RC.
  • O nó gravará o MQGMO completo utilizado para a chamada MQGET no ${outputMQParmsLocation}.MQGMO se ${inputMQParmsLocation}.MQGMO existir na árvore de entrada.
  • O nó grava o MQMD transmitido para a chamada MQGET (que contém os valores especificados na mensagem de entrada ou gerados pelo nó) em ${inputMQParmsLocation}.MQMD, excluindo qualquer conteúdo existente.

Configure o valor como ${inputMQParmsLocation} na propriedade do nó MQGet Local de Parâmetros do MQ de Entrada na guia Propriedades do Pedido.

Configure o valor como ${outputMQParmsLocation} na propriedade do nó MQGet Local de Parâmetros do MQ de Saída na guia Propriedades do Resultado.

Para obter informações adicionais sobre essas propriedades, consulteNó MQGet.

Em resumo:
${inputMQParmsLocation}
  • QueueName: Substituição opcional para a propriedade Nome da Fila do nó MQGet
  • InitialBufferSize: Substituição opcional para a propriedade Tamanho do Buffer Inicial do nó MQGet
  • MQGMO.*: Opções de mensagens do MQGET opcionais utilizadas pelo nó MQGet
${outputMQParmsLocation}
  • CC: Código de conclusão da chamada MQGET
  • RC: Código de resultado da chamada MQGET
  • MQGMO.*: Opções de mensagens do MQGET que serão utilizadas se existentes em ${inputMQParmsLocation}
  • MQMD: MQ Message Descriptor não analisado para mensagens recebidas1
É possível analisar o MQMD (por exemplo, utilizando ESQL), onde ${outputMQParmsLocation} é LocalEnvironment.MQ.GET:
DECLARE ptr REFERENCE TO OutputLocalEnvironment.MyMQParms;
CREATE FIRSTCHILD OF ptr DOMAIN('MQMD') PARSE(InputLocalEnvironment.MQ.GET.MQMD)

Como o MQMD para a Chamada MQGET É Construído

  • Um MQMD padrão é preparado. Para obter informações adicionais sobre o MQMD, consulte a seção Referência de Programação do Aplicativo do WebSphere MQ Versão 6: centro de informações on-line o manual WebSphere MQ Versão 5.3 no WebSphere MQ.
  • Se você não fornecer um MQMD de entrada, o MQMD padrão será utilizado.
  • Se você fornecer um MQMD de entrada, o MQMD padrão será utilizado depois das seguintes modificações:
    • Se a propriedade Utilizar MQMD de Entrada Completo estiver definida, todos os campos do MQMD fornecidos serão copiados no MQMD padrão a partir do MQMD de entrada.
    • Se a propriedade Utilizar MQMD de Entrada Completo não estiver definida e as propriedades Obter por ID de Mensagem ou Obter por ID de Correção estiverem selecionadas, os respectivos IDs serão copiados para o MQMD padrão a partir do MQMD de entrada.

O diagrama a seguir mostra como o nó MQGet constrói o MQMD utilizado na chamada para o WebSphere MQ:

O diagrama é descrito no texto acima.

Como a Árvore de Mensagens de Saída É Construída

O diagrama a seguir descreve como o nó MQGet constrói a árvore de mensagens de saída, combinando a árvore de entrada do nó anterior com a árvore de resultados da chamada MQGET:

O diagrama é descrito no texto acima.

Nesse exemplo, as propriedades do nó MQGet são configuradas como mostrado na tabela a seguir.
Propriedade Ação
Copiar Mensagem Copiar Mensagem Inteira
Modo de Geração Mensagem
Local de Dados de Saída OutputRoot.XMLNS.A
Local de Dados de Resultado ResultRoot.XMLNS.C
O nó MQGet constrói a árvore de saída de acordo com a seguinte seqüência:
  1. Toda a árvore de entrada é copiada para a árvore de saída, incluindo a ramificação XML com o filho A e o filho B de A.
  2. Na árvore de resultados, o filho C da ramificação XML e o filho D de C são colocados na árvore de saída na posição OutputRoot.XMLNS.A. Todo o conteúdo anterior de A (valores e filhos) é perdido e substituído pelo conteúdo de C, incluindo todos os valores e filhos que ele possui, neste caso, o filho D.
  3. A posição na árvore de saída retém o nome A.

O diagrama a seguir mostra este comportamento:

O diagrama é descrito no texto acima.

Para obter alguns exemplos de árvores de mensagens que são construídas pelo nó MQGet de acordo com as regras descritas acima, consulte Exemplos da Árvore de Mensagens do Nó MQGet.

Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última atualização : 2009-02-13 16:11:57

ac34680_