A Amostra Coordinated Request Reply JMS contém o Coordinated Request Reply JMS Application. Esse aplicativo tem uma referência de biblioteca à Biblioteca de Coordinated Request Reply.
A amostra Coordinated Request Reply JMS demonstra como usar o nó JMSReceive. As seções a seguir descrevem os fluxos de mensagens e o processamento que eles desempenham.
O fluxo de mensagens Pedido executa o seguinte processamento:
O fluxo de mensagens de Solicitação contém os seguintes nós:
O nó JMSInput 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.
O subfluxo StoreOriginalJMSHeader_Sub encapsula o armazenamento dos valores ReplyToQ e ID de Correlação em uma mensagem JMS. O ID de Mensagem está sendo copiado para o ID de Correlação. Essa encapsulação é feita por duas razões: permitir o processamento lógico, para ser facilmente reutilizado em outros fluxos de mensagens, e para permitir que implementações alternativas sejam substituídas. Por exemplo, uma implementação alternativa que usa um nó de banco de dados pode ser criada.
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 executa a conversão da 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ó Compute SetReplyTo_CorrelID desempenha as seguintes ações:
O nó OutputRequestMsg JMSOutput grava a mensagem de saída JMS.
O fluxo de mensagens Resposta de Backend executa o seguinte processamento:
O fluxo de mensagens Resposta Backend contém os seguintes nós:
O nó JMSInput 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ó JMSInput.
O nó Compute Modify_CompletionTime desempenha as seguintes ações:
O nó PutReplyMsg JMSReply grava a mensagem de saída JMS.
O fluxo de mensagens Resposta executa o seguinte processamento:
O fluxo de mensagens Resposta consiste em um dos seguintes nós:
O nó JMSInput 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ó JMSInput.
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 RestoreOriginalJMSHeader_Sub encapsula a recuperação dos valores ReplyToQ e ID de Correlação. Ele usa um nó JMSReceive para ler a mensagem JMS que contém os valores de ReplyToQ e ID de Correlação que foram especificados na mensagem de solicitação original e os copia para a mensagem de resposta. Um nó Compute vem antes do nó JMSReceive no fluxo. No nó Compute, a propriedade ID de Correlação do nó JMSReceive é substituída na variável de ambiente pelo ID de Correlação da mensagem de resposta. O nó JMSReceive é configurado para selecionar a mensagem correspondente pelo seu ID de Correlação e para copiar a solicitação original JMSHeader no JMSHeader da mensagem que está sendo processada para direcionar a mensagem de resposta do aplicativo estabelecido para o aplicativo do solicitante correto. O nó JMSReceiver também recupera a carga útil da mensagem JMS que foi usada para armazenar os valores originais do ReplyToQ.
Para obter informações adicionais sobre o nó JMSReceive, consulte Nó JMSReceive na documentação do WebSphere Message Broker.
O nó PutOriginalReply JMSReply grava a mensagem de saída JMS.
A mensagem de teste usada na amostra Resposta de Pedido Coordenado é 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>