Sobre a Amostra Coordinated Request Reply WebSphere MQ

A amostra Coordinated Request Reply WebSphere MQ contém o Coordinated Request Reply MQ Application. Esse aplicativo tem uma referência de biblioteca à Biblioteca de Coordinated Request Reply.

A amostra Coordinated Request Reply WebSphere MQ demonstra o uso de um nó MQGet. As seções a seguir descrevem os detalhes dos fluxos de mensagens e o processamento que eles desempenham.

Fluxo de Mensagens Pedido

O fluxo de mensagens de Pedido executa o seguinte processamento:

  1. Lê uma mensagem do WebSphere MQ que contém uma carga útil XML.
  2. Salva os detalhes originais de ReplyToQ e ReplyToQMgr em uma mensagem do WebSphere MQ separada para recuperação subsequente pelo fluxo de mensagens Resposta.
  3. Converte a mensagem no formato CWF equivalente.
  4. Cria uma mensagem do WebSphere MQ que contém a mensagem transformada.
  5. Configura os detalhes de ReplyToQ e ReplyToQMgr para serem a entrada do fluxo de mensagens Resposta.
  6. Envia a mensagem para o fluxo de mensagens Resposta de Backend.

O fluxo de mensagens de Solicitação contém os seguintes nós:

O fluxo de mensagens de Solicitação contém um nó MQInput, dois nós de subfluxos, um nó Compute e um nó MQOutput.

O nó MQInput GetRequestMsg lê a mensagem XML. A mensagem de entrada está em um formato XML autodefinido, sendo assim, você não tem a necessidade de especificar um conjunto ou formato de mensagens para ela ser analisada com sucesso.

mas O subfluxo StoreOriginalMQMD_Sub encapsula o armazenamento dos valores ReplyToQ e ReplyToQMgr em uma mensagem WebSphere MQ. Essa encapsulação permite que:

O subfluxo TransformXMLtoMRM_Sub copia os cabeçalhos de mensagem a partir da mensagem de entrada para a árvore de mensagens de saída e converte a mensagem de entrada do formato XML para o formato CWF ao configurar o conjunto, tipo e formato da mensagem para a mensagem de saída.

O nó SetReplyTo Compute desempenha as seguintes ações:

  1. Copia os cabeçalhos de mensagens da mensagem de entrada para árvore de mensagens de saída
  2. Copia o corpo da mensagem da mensagem de entrada para árvore de mensagens de saída.
  3. Configura o ReplyToQ para que a nova mensagem seja aquela da fila de entrada para o fluxo de mensagens Resposta.

O nó MQReply OutputRequestMsg grava a mensagem de saída WebSphere MQ.

Fluxo de Mensagens Resposta de Backend

O fluxo de mensagens Resposta de Backend executa o seguinte processamento:

  1. Lê uma mensagem do WebSphere MQ.
  2. Inclui o horário em que a mensagem foi modificada na carga útil da mensagem.
  3. Grava uma mensagem do WebSphere MQ

O fluxo de mensagens Resposta Backend contém os seguintes nós:

O fluxo de mensagens Resposta de Backend contém um nó MQInput, um nó Compute e um nó MQReply.

O nó MQInput GetRequestMsg lê a mensagem CWF. O conjunto de mensagens, o formato e o domínio que são necessários para analisar a mensagem recebida são especificados no nó MQInput.

O nó Compute Modify_CompletionTime desempenha as seguintes ações:

  1. Copia a mensagem de entrada inteira para a árvore de mensagens de saída.
  2. Obtém o horário atual a partir do WebSphere Message Broker e o reformata.
  3. Inclui o horário reformatado na árvore de mensagens de saída.

O nó MQReply PutReplyMsg grava a mensagem de saída WebSphere MQ.

Fluxo de Mensagens Resposta

O fluxo de mensagens Resposta executa o seguinte processamento:

  1. Lê uma mensagem do WebSphere MQ que contém uma mensagem no formato CWF
  2. Converte a mensagem no formato XML equivalente.
  3. Obtém os detalhes ReplyToQ e ReplyToQMgr da mensagem de solicitação original ao ler a mensagem do WebSphere MQ que era usada para armazenar essas informações no fluxo de mensagens de Solicitação. Esta ação é desempenhada pelo nó MQGet.
  4. Cria uma mensagem do WebSphere MQ que contém a mensagem transformada e os valores recuperados ReplyToQ e ReplyToQMgr.

O fluxo de mensagens Resposta contém os seguintes nós:

O fluxo de mensagens Resposta contém um nó MQInput, dois nós de subfluxos e um nó MQReply.

O nó MQInput GetBackendReply lê a mensagem CWF. O conjunto de mensagens, o formato e o domínio que são necessários para analisar a mensagem recebida são especificados no nó MQInput.

O subfluxo TransformMRMtoXML_Sub copia os cabeçalhos de mensagem a partir da mensagem de entrada para a árvore de mensagens de saída e converte a mensagem de entrada do formato CWF para o formato CWF.

O subfluxo RestoreOriginalMQMD_Sub encapsula a recuperação dos valores ReplyToQ e ReplyToQMgr. Ele lê a mensagem do WebSphere MQ que contém os valores de ReplyToQ e ReplyToQMgr que foram especificados na mensagem de pedido original e os copia para a mensagem de resposta. Ele usa o nó MQGet para executar a leitura. O nó MQGet é configurado para selecionar a mensagem correspondente pelo seu CorrelId e para copiar a solicitação original MQMD no MQMD da mensagem que está sendo processada para direcionar a mensagem de resposta do aplicativo estabelecido para o aplicativo do solicitante correto. O nó MQGet também recupera a carga útil da mensagem WebSphere MQ que foi usada para armazenar os valores originais do ReplyToQ e do ReplyToQMgr.

O nó MQReply PutOriginalReply grava a mensagem de saída WebSphere MQ.

Mensagem de Teste

A mensagem de teste usada na amostra Coordinated Request Reply é uma mensagem XML simples que contém detalhes de fatura para um cliente. Essa amostra converte a mensagem XML no formato CWF. O valor do campo CompletionTime é o único valor que é alterado pela amostra. O seguinte exemplo mostra a mensagem:

<SaleEnvelope>
<Header>
<SaleListCount>1</SaleListCount>
</Header>
<SaleList>
<Invoice>
<Initial>K</Initial>
<Initial>A</Initial>
<Surname>Braithwaite</Surname>
<Item>
<Code>00</Code>
<Code>01</Code>
<Code>02</Code>
<Description>Twister</Description>
<Category>Games</Category>
<Price>30</Price>
<Quantity>01</Quantity>
</Item>
<Item>
<Code>02</Code>
<Code>03</Code>
<Code>01</Code>
<Description>The Times Newspaper</Description>
<Category>Books and Media</Category>
<Price>20</Price>
<Quantity>01</Quantity>
</Item>
<Balance>50</Balance>
<Currency>Sterling</Currency>
</Invoice>
<Invoice>
<Initial>T</Initial>
<Initial>J</Initial>
<Surname>Dunnwin</Surname>
<Item>
<Code>04</Code>
<Code>05</Code>
<Code>01</Code>
<Description>The Origin of Species</Description>
<Category>Books and Media</Category>
<Price>22</Price>
<Quantity>02</Quantity>
</Item>
<Item>
<Code>06</Code>
<Code>07</Code>
<Code>01</Code>
<Description>Microscope</Description>
<Category>Miscellaneous</Category>
<Price>36</Price>
<Quantity>01</Quantity>
</Item>
<Balance>80</Balance>
<Currency>Euros</Currency>
</Invoice>
</SaleList>
<Trailer>
<CompletionTime>12.00.00</CompletionTime>
</Trailer>
</SaleEnvelope>

Voltar para Home da Amostra