Executando a Amostra Roteamento de Mensagens

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.

Mensagens de Teste de Entrada

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.

Executando a Amostra

Utilizando uma Conexão Direta com a Tabela de Banco de Dados 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:

  1. Abra o arquivo de enfileiramento da mensagens de teste denominado: Direct_database_message1. Assegure que o campo de Porta contenha o valor 2414.
  2. Clique em Gravar na Fila. Uma mensagem é enviada para a fila ROUTING.DATABASE.IN1. O fluxo de mensagens roteia a mensagem para a fila ROUTING.OUT1.
  3. Para verificar se a mensagem alcançou a fila correta, utilize o WebSphere MQ Explorer:
    1. Inicie o WebSphere MQ Explorer
    2. Clique com o botão direito do mouse na pasta Gerenciadores de Filas e selecione Mostrar Gerenciador de Filas. Digite WBRK6_DEFAULT_QUEUE_MANAGER.
    3. Expanda as pastas no gerenciador de filas e selecione Filas. Atualize a exibição da fila para mostrar o número atual de mensagens em cada fila. Se estiver utilizando o WebSphere MQ v5.3 no Windows, ao atualizar o WebSphere MQ Explorer, certifique-se de que a pasta Filas esteja selecionada e não um nome de fila vigente, caso contrário, nem todas as filas mostradas serão atualizadas.
    4. Utilize o WebSphere MQ Explorer para o resto da amostra para assegurar que as mensagens serão roteadas para o local correto.
  4. Abra o arquivo de enfileiramento denominado Direct_database_message2 e grave a mensagem na fila.
  5. Atualize o WebSphere MQ Explorer. Uma mensagem deve aparecer na fila ROUTING.OUT19.

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.

Utilizando um Cache de Memória da Tabela de Banco de Dados para Rotear a Mensagem

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:

  1. Abrir o arquivo de enfileiramento da mensagem de teste denominado Memory_cache_message1 e gravar a mensagem na fila.
  2. Atualize o WebSphere MQ Explorer. Uma nova mensagem deve aparecer na fila ROUTING.OUT1 (um total de duas mensagens).
  3. Abrir o arquivo de enfileiramento da mensagem de teste denominado Memory_cache_message2 e gravar a mensagem na fila.
  4. Atualize o WebSphere MQ Explorer. Uma nova mensagem deve aparecer na fila ROUTING.OUT19 (um total de duas mensagens).
  5. Até este ponto o fluxo está se comportando exatamente da mesma forma que o último fluxo, no que diz respeito à funcionalidade, mas está utilizando uma versão armazenada em cache da tabela de banco de dados. Para testar o efeito de utilizar o cache, a tabela de banco de dados será modificada para mostrar como o cache na memória pode ser atualizado. Para modificar a tabela de banco de dados:

    DB2

    1. Digite o comando a seguir em uma Janela de Comandos do DB2 (no Windows) ou em um console de comandos (no Linux):

      db2cmd

    2. A partir do prompt de comandos, digite db2 para iniciar a linha de comandos do DB2.
    3. Conecte-se ao banco de dados ROUTING:

      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.

    4. Atualize a última entrada na routing_table para gravar na fila ROUTING.OUT18

      DB2> update routing_table set queue_name='ROUTING.OUT18' where Variable3='Braithwaite'

    Derby

    1. Inicie a linha de comandos ij. Se você ainda não tiver configurado o arquivo em batch para a linha de comandos ij, consulte Visualizando o Conteúdo de um Banco de Dados Derby.
    2. Atualize a última entrada em routing_table para gravar na fila ROUTING.OUT18:

      ij>update routing_table set queue_name='ROUTING.OUT18' where Variable3='Braithwaite';

  6. Abra o arquivo de enfileiramento da Mensagem de teste denominado: Memory_cache_message2 e grave a mensagem na fila.
  7. Atualize o WebSphere MQ Explorer. Uma nova mensagem deve aparecer na fila ROUTING.OUT19 (um total de três mensagens). Observe que a mensagem não está sendo roteada para o novo nome de fila porque a tabela de banco de dados não foi lida novamente.
  8. Para fazer com que o fluxo releia o banco de dados, abra a fila de enfileiramento: Refresh_cache_message1 e grave a mensagem na fila.
  9. Repita a etapa 3 para enviar uma mensagem de teste para o fluxo de mensagens.
  10. Atualize o WebSphere MQ Explorer. Uma nova mensagem deve aparecer na fila ROUTING.OUT18 (um total de uma mensagem). A tabela de banco de dados armazenada na memória agora foi atualizada.

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.

Entendendo os Resultados

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:

Local do Programa dequeue

Ícone Página Principal   Voltar para Home da Amostra