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:
- SIMPLERROUTEDB_SNRSTAFF
- SIMPLERROUTEDB_ORDERCLOCK
- SIMPLERROUTEDB_KEYNOTFOUND
- SIMPLERROUTEDB_DEFAULT
O diagrama a seguir mostra o fluxo de mensagens de 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:
- O nó MQInput obtém a mensagem de entrada XML da fila
SIMPLERROUTEDB_IN.
A mensagem é passada para o nó de Roteamento.
- 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.
- 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.
- 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.
- 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.
- 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:
- 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.
- 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.
- Os valores que estão especificados na consulta de banco de dados do nó são
retornados para o gerenciador.
- 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:
- 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.
- 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.
- 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.
- 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.
- 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