O comportamento do subfluxo de Rota depende do valor do parâmetro do padrão de Roteamento.
Se Sem Roteamento for selecionado, um único nó MQOutput será criado e configurado com os valores dos parâmetros padrão de Gerenciador de filas de saída e Fila de saída. O fluxo de roteamento é um subfluxo que inclui um nó de Passagem. O nó Falha é incluído para que este subfluxo esteja consistente com todos os outros tipos de subfluxo de roteamento.
Um grupo de quatro parâmetros que definem uma rota:
Para cada rota que é definida, um terminal de Saída para o subfluxo de Rota e um nó MQOutput são criados e conectados.
O subfluxo de Rota contém um nó Rota que é configurado com um filtro que roteia para o terminal de Saída se a condição KeyLocation = Key Value for preenchida. Se um elemento de mensagem não corresponder a qualquer uma das rotas, o erro será registrado em uma variável de ambiente e a mensagem será transmitida para o terminal de Falha.
Várias rotas podem ser especificadas usando Especificar Rotas.
Se este valor for selecionado, um único terminal de Saída será criado para o subfluxo de Rota e este terminal será conectado a um único nó MQOutput que é configurado para obter uma lista de destino.
O subfluxo de roteamento verifica se o cache requer atualização verificando se o valor da variável de linha compartilhada por CacheQueueTable.valid está configurado como NULL. Ele será configurado como NULL quando o fluxo iniciar e também se Atualização de Cache estiver ativada e uma mensagem de atualização tiver sido configurada como Fila de Atualização. As mensagens de atualização configuram o valor como NULL.
Se o cache requerer atualização, a tabela ROUTING_TABLE da origem de dados, especificada no parâmetro padrão Origem de Dados de Roteamento, será procurada para localizar todas as linhas que correspondem ao contexto de roteamento para este fluxo. O contexto de roteamento é definido pelo parâmetro padrão de Contexto de Roteamento e as linhas em que o campo ROUTING_CONTEXT corresponde a este parâmetro são lidas em um cache na memória, o que é feito automaticamente para evitar consultas enquanto o cache está em um estado inconsistente.
A estrutura dos dados em cache é:
VARIABLE1, VARIABLE2, QUEUE_MANAGER, QUEUE_NAME
A consulta é executada extraindo um ou dois valores de chave do elemento de mensagem, usando expressões ESQL que são definidas como parâmetros padrão. Defina os parâmetros padrão usando uma instrução no seguinte formato:
SET KEY = <pattern parameter>
Se uma única chave for especificada para selecionar uma linha, ou linhas, dos dados de roteamento, use uma cláusula WHERE:
WHERE S.VARIABLE1 = KEY1
Se uma segunda chave for especificada, a cláusula WHERE usada para seleção será:
WHERE S.VARIABLE1 = KEY1 and S.VARIABLE2 = KEY2
Esta seleção configura o gerenciador de filas e a fila no ambiente local que é usado no nó MQOutput. Múltiplas linhas podem ser retornadas e os dados de destino incluem todos os destinos selecionados. Se nenhuma correspondência for localizada, ocorrerá um erro de roteamento e a mensagem será transmitida ao terminal de Falha do subfluxo de Rota.