A execução da amostra Roteamento de Mensagens pode ser dividida em duas partes principais:
Essas duas partes são descritas separadamente. Todas as mensagens de teste mencionadas nesta seção podem ser localizadas no diretório Mensagens de Teste no projeto do fluxo de mensagens denominado Fluxos de Mensagens da Amostra Roteamento de Mensagens.
Todas as mensagens de teste utilizadas na execução dessa amostra são baseadas no seguinte formato:
<SaleEnvelope> <Header> <SaleListCount>1</SaleListCount> </Header> <SaleList> <Invoice> <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> <Trailer> <CompletionTime>12.00.00</CompletionTime> </Trailer> </SaleEnvelope>
Os campos <Inicial> e <Sobrenome> são utilizados para rotear a mensagem.
Essa parte da amostra utiliza o fluxo de mensagens Routing_using_database_table. Ela contém uma fila de entrada denominada ROUTING.DATABASE.IN1. O fluxo de mensagens pode rotear a mensagem para uma das 20 filas de saída com base no conteúdo da mensagem (ROUTING.OUT, seguida por um número de 1 a 19, além de uma fila denominada ROUTING.DEFAULT). Para executar essa parte da amostra:
Se todas as etapas acima tiverem funcionado, a primeira parte da amostra estará concluída. Dê uma olhada no ESQL no fluxo de mensagens Routing_using_database_table para ver como o roteamento da mensagem foi concluído.
Essa parte da amostra utiliza o fluxo de mensagens Routing_using_memory_cache. Ela contém duas filas de entrada denominadas ROUTING.MEMORY.IN1 e ROUTING.REFRESH.IN1 e o fluxo de mensagens pode rotear a mensagem para uma das 20 filas com base no conteúdo da mensagem (ROUTING.OUT, seguido por um número de 1 a 19, além de uma fila denominada ROUTING.DEFAULT). A lógica de roteamento é a mesma da versão não armazenada em cache. A única diferença é que o banco de dados é armazenado em cache utilizando variáveis compartilhadas. As etapas para executar essa parte da amostra são:
DB2
db2cmd
DB2> connect to ROUTING user user using password
em que user é um usuário que possui a autoridade para acessar o banco de dados ROUTING. Este é normalmente o
mesmo usuário que foi utilizado para criar o intermediário de amostra. password é a senha utilizada para esse usuário.
DB2> update routing_table set queue_name='ROUTING.OUT18' where Variable3='Braithwaite'
Derby
ij>update routing_table set queue_name='ROUTING.OUT18' where Variable3='Braithwaite';
As etapas de 5 a 10 podem ser repetidas, mas alterando o queue_name no banco de dados para um dos outros nomes de fila que estão disponíveis. Em vez de utilizar a mensagem Refresh_cache_message1, o fluxo de mensagens pode ser parado e reiniciado. Isso também fará com que a tabela de banco de dados armazenada em cache seja atualizada.
Se todas as etapas acima tiverem funcionado, a execução da amostra estará concluída. Dê uma olhada no ESQL no fluxo de mensagens Routing_using_memory_cache para ver como o armazenamento do banco de dados nas variáveis compartilhadas foi concluído.
A amostra Roteamento de Mensagens roteia a mensagem de teste de entrada para várias filas de saída sem modificar a saída. A mensagem de saída é idêntica à mensagem de teste de entrada. As etapas fornecidas em duas partes detalham para onde as mensagens são roteadas. Pode ser verificado se as mensagens foram roteadas para a fila correta utilizando o WebSphere MQ Explorer (conforme detalhado nas etapas acima). Além disso, é possível verificar o conteúdo das mensagens nas filas utilizando o programa dequeue que faz parte do Toolkit do Message Brokers. Para acessar o programa dequeue clique no ícone dequeue na barra de ferramentas do toolkit: