A amostra JMS Nodes é um aplicativo de amostra de fluxo de mensagens que mostra como você pode usar um nó JMSInput como um consumidor JMS e um nó JMSOutput como um produtor JMS de e para um provedor JMS externo. A amostra utiliza o WebSphere MQ como o provedor JMS.
Dois fluxos de mensagens são mostrados na amostra, um fornecendo um gateway de transporte para um provedor JMS externo e outro mostrando um exemplo de como você pode usar um fluxo de broker como um consumidor JMS. O fluxo de mensagens também mostra o uso dos nós do broker fornecidos para transformar as mensagens do JMS para WebSphere MQ. O nó Compute em cada fluxo de mensagens contém comentários ESQL detalhados explicando exatamente o que foi feito para obter o comportamento necessário.
Esse fluxo representa o fornecimento de um gateway de transporte do WebSphere MQ para um provedor JMS externo. O cliente de teste do kit de ferramentas do broker é usado para enviar a mensagem do WebSphere MQ para o fluxo.
Esse fluxo utiliza uma mensagem XML. Quando a mensagem é transmitida pelo fluxo, ela é modificada no nó Compute incluindo a data atual no elemento <Timestamp>:
<Parent>
<First>1</First>
<SaleList>
<Invoice>
<Timestamp>2005-01-01 10:10:59</Timestamp>
.
.
.
</Invoice>
</SaleList>
<Last>Test</Last>
</Parent>
A mensagem é então transformada em uma mensagem do produtor JMS e colocada em um destino do JMS para que possa ser selecionada pelo seguinte fluxo JMSInput_Publication.
Nesse fluxo, o nó JMSInput é um consumidor JMS para um provedor JMS externo. A mensagem recebida é então transformada em uma publicação e emitida por um nó de publicação do broker.
O nó JMSInput obtém a mensagem XML a partir do destino JMS e transmite-a para o nó Compute. O nó Compute cria uma nova mensagem de publicação no tópico update/stock e emite a mensagem inteira como uma nova fatura. Um aplicativo Java do assinante JMS é, em seguida, fornecido para receber e exibir a mensagem de publicação.
A mensagem de teste que é usada para conduzir a amostra é uma mensagem XML que contém detalhes de fatura para um cliente. Conforme notado acima, o campo registro de data e hora está inicialmente vazio e será atualizado no fluxo de mensagens no tempo atual:
<Parent>
<First>1</First>
<SaleList>
<Invoice>
<Timestamp></Timestamp>
<Initial>T</Initial>
<Initial>D</Initial>
<Surname>Montana</Surname>
<Item><Code>00</Code>
<Code>01</Code><Code>02</Code>
<Description>Twister</Description>
<Category>Games</Category>
<Price>00.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>00.20</Price>
<Quantity>01</Quantity>
</Item>
<Balance>00.50</Balance>
<Currency>Sterling</Currency>
</Invoice>
</SaleList>
<Last>Test</Last>
</Parent>