Fluxo de Pedido para o Padrão de Message Splitter para WebSphere MQ: Unidirecional (para XML)

Este padrão usa um único fluxo de mensagens.

  1. O nó de Entrada espera uma mensagem XML bem formada e é configurado para usar o analisador XMLNSC. Se qualquer mensagem recebida contiver um cabeçalho MQRFH2 que altera o domínio, ele causará um erro e a mensagem será revertida.
  2. A validação da mensagem é opcional e é especificada no parâmetro padrão Validação requerida. A validação não é imediata e é transportada conforme cada elemento é extraído.
  3. O fluxo de mensagens é executado como uma transação e não é confirmado, a menos que todos os elementos necessários sejam extraídos e gravados com êxito em uma fila.
  4. O controle principal neste fluxo é o nó Propagar Cálculo do Elemento. Este nó cria uma variável local para conter uma árvore mutável que seja uma cópia da entrada. Este fluxo faz loop através da árvore de mensagens, movendo para um elemento filho em uma tag de contêiner e propagando-o para diante. Conforme cada elemento é selecionado, o elemento anterior é excluído para reduzir o uso de memória.
  5. A estrutura da mensagem é determinada pelos parâmetros padrão e, se uma mensagem não estiver em conformidade com esta estrutura, um erro será produzido.
  6. É feita uma verificação se a mensagem inclui o caminho de contêiner, ou seja, o contêiner para todos os elementos a serem processados. Se este caminho de contêiner for especificado como *:*, o contêiner será considerado como sendo a tag raiz, qualquer que seja seu nome, e os elementos de mensagem que são filhos da raiz são extraídos.
  7. Se o parâmetro padrão Nome de Elemento de Mensagem for *:*, todos os elementos que são filhos do contêiner serão processados. Se qualquer outro valor for especificado, apenas elementos de mensagens que possuem tags que correspondem ao Nome de Elemento de Mensagem serão extraídos. O elemento de mensagem extraído é transmitido para processamento adicional.
  8. O fluxo de mensagens inclui o subfluxo MessageProcessor, que por padrão não tem impacto porque contém apenas um nó de Passagem. O subfluxo é incluído para fornecer um local no qual uma instância padrão pode ser customizada usando o conjunto de ferramentas padrão, sem qualquer alteração na estrutura do padrão.
  9. A mensagem é transmitida ao subfluxo Rota, que a direciona à fila do WebSphere MQ correta. A falha em localizar uma rota, ou qualquer exceção, configura o status da falha e direciona o controle ao nó de Falha.
    • Se a Ação da Mensagem Inválida for Salvar, o nó de Falha será conectado a um nó MQOutput para salvar a mensagem. O controle retorna ao nó de Cálculo para extrair o próximo elemento.
    • Se a Ação de Mensagem Inválida for Cancelar, o nó de Falha não será conectado e o nó de Cálculo produzirá um erro do usuário causando a reversão do fluxo.
  10. Quando uma movimentação para o próximo elemento falha, porque todos os elementos foram processados, o subfluxo de Log é chamado, se a criação de log é requerida pelos parâmetros padrão. Neste ponto, o fluxo de mensagens sempre para com êxito e a transação é confirmada. Quaisquer erros que ocorrem na criação de log são capturados e processados gravando em um nó Rastreio.
  11. Se o parâmetro Roteamento estiver configurado como Consultar Rotas e o parâmetro padrão Atualização de Cache especificar que uma atualização de cache é necessária, o fluxo principal conterá um segundo nó de Entrada que lê a partir da fila que é definida pelo parâmetro padrão Fila de Atualização. Qualquer mensagem que é enviada para esta fila limpa a variável compartilhada CacheQueueTable.valid, de forma que o cache seja atualizado antes da próxima consulta.
Voltar à especificação do padrão do Message Splitter para WebSphere MQ: Unidirecional (para XML)