Sobre o fluxo de mensagens de Roteamento do Banco de Dados Simplificado

O fluxo de mensagens do Roteamento do Banco de Dados Simplificado recupera detalhes de funcionário a partir de um banco de dados se os detalhes ainda não estiverem no conteúdo da mensagem de entrada. Estes detalhes do funcionário são recuperados com base no número do funcionário fornecido na mensagem de entrada. O fluxo de mensagens então roteia uma mensagem de resposta com base em mais informações recuperadas com o gerenciador de um funcionário. Com base no conteúdo da mensagem de entrada, são atendidas diferentes condições de roteamento: As mensagens podem ser enviadas para saída em uma ou mais das seguintes filas de saída nas condições de roteamento que foram atendidas:

O diagrama a seguir mostra o fluxo de mensagens de Roteamento do Banco de Dados Simplificado.

Captura de Tela do Fluxo de Mensagens do Roteamento do Banco de Dados Simplificado

A tabela a seguir lista os tipos de nós que são utilizados no fluxo de mensagens de Roteamento do Banco de Dados Simplificado:

Tipo de Nó Nome de Nó
MQInput MQInput
Route Route
DatabaseRetrieve

DatabaseRetrieve

DatabaseRoute DatabaseRoute
MQOutput FailureQ, KeyNotFoundQ, SeniorStaffQ, OrderClockQ, DefaultQ
Rastrear Rastrear

Para obter mais informações, consulte Nós Integrados na documentação do WebSphere Message Broker.

O fluxo de mensagens de Roteamento do Banco de Dados Simplificado executa as seguintes ações:

  1. O nó MQInput obtém a mensagem de entrada XML da fila SIMPLERROUTEDB_IN. A mensagem é passada para o nó de Roteamento.
  2. O nó de Roteamento verifica o conteúdo da mensagem de entrada para ver se o campo de departamento de trabalho do funcionário está disponível. Se o campo estiver disponível, a mensagem será roteada através do terminal Match para o nó DatabaseRoute. Se o campo não estiver disponível, os detalhes de funcionário devem ser recuperados e a mensagem será roteada através do terminal Default para o nó DatabaseRetrieve.
  3. O nó DatabaseRetrieve consulta a tabela EMPLOYEE no banco de dados para recuperar os detalhes de funcionários. O número do funcionário na mensagem é utilizado como a chave para a consulta ao banco de dados. As propriedades que são configuradas no nó DatabaseRetrieve especificam quais valores recuperar a partir da consulta de banco de dados na tabela EMPLOYEE e onde inserir estes valores na mensagem de saída.
  4. Se o número do funcionário fornece uma correspondência no banco de dados, a mensagem é preenchida com valores a partir do banco de dados. A mensagem é então passada para o nó DatabaseRoute.
  5. Se o número de funcionários não corresponder a um valor no banco de dados, a mensagem de entrada original será transmitida através do terminal keyNotFound, para o nó KeyNotFoundQ.
  6. O nó DatabaseRoute executa uma operação JOIN para comparar os detalhes de um funcionário e seu gerente. A operação JOIN possui as seguintes etapas:
    1. O valor do departamento de trabalho a partir da mensagem de entrada é utilizada em uma consulta de banco de dados para localizar o gerente do departamento na tabela DEPARTMENT.
    2. O valor da coluna do número do gerente (DEPARTMENT.MGRNUM) é recuperado e utilizado para vincular na tabela EMPLOYEE para localizar um registro de funcionário específico. Portanto, DEPARTMENT.MGRNUM vincula a EMPLOYEE.EMPNUM. O registro de funcionário localizado refere-se ao registro de emprego para o gerente do funcionário.
    3. Os valores que estão especificados na consulta de banco de dados do nó são retornados para o gerenciador.
  7. As expressões de filtro no nó DatabaseRoute são então processadas. As expressões são verdadeiro ou falso. As expressões de filtro são processadas da seguinte forma:
    1. Se o valor do departamento de trabalho do funcionário não corresponde a um registro na tabela DEPARTMENT, a mensagem é transmitida através do terminal keyNotFound para o nó KeyNotFoundQ.
    2. Se a idade em anos do funcionário for maior do que seu gerente e o sobrenome do gerente for 'KWAN', o nó DatabaseRoute transmite a mensagem de entrada através do terminal OlderThanMe para o nó SeniorStaffQ. A próxima expressão de filtro é então avaliada.
    3. Se os anos do funcionário em serviço a partir da mensagem de entrada forem maiores do que 10, o nó DatabaseRoute transmite a mensagem de entrada através do terminal TenYearsService terminal para o nó OrderClockQ.
    4. Se nenhuma das duas expressões de filtro forem verdadeiras, o nó DatabaseRoute transmite a mensagem de entrada através do terminal Default para o nó DefaultQ.
  8. Se ocorrer uma falha de processamento em qualquer um dos nós, a mensagem de entrada é transmitida através do terminal de Falha nos nós para o nó Rastreio para o processamento do erro.

Os nós do banco de dados que são usados no fluxo de mensagens de Roteamento de Banco de Dados Simplificado lêem as informações no banco de dados mas não fazem atualizações dos dados dentro do banco de dados.

Voltar para a amostra Sobre o Roteamento de Banco de Dados Simplificado