Incluindo Números de Sequência em Mensagens

Você pode adicionar números de sequência em mensagens entrando em um fluxo de mensagens usando o nó Sequence .

Antes de Começar

Leia o tópico de conceito sobre o Sequenciamento de mensagens

Sobre esta tarefa

O nó Sequence aloca um número de sequência monotonicamente crescente para cada mensagem de entrada que chega no nó. Como cada mensagem chega no nó Sequence , o número da sequência é incrementado e armazenado com a mensagem no local especificado pela propriedade Path to store sequence number . A alocação de números de sequência continua até que a sequência termine, conforme especificado pela propriedade Definição de Fim da Sequência.

É possível dividir mensagens de entrada em grupos de sequências independentes, com base em um identificador definido na mensagem. Cada grupo possui um identificador do grupo separado e a sequência das mensagens em cada grupo é gerenciada de forma independente.

O nó Sequence aloca um número de sequência para cada mensagem no grupo de sequência, e o próximo número de sequência no grupo não é alocado até que a mensagem atual no grupo tenha terminado o processamento (seja por estar comprometido ou rollback). Isto assegura que a sequência seja mantida para o grupo quando houver diversos encadeamentos no fluxo de mensagens.

Se você precisar salvar a mensagem com o número de sequência recém-atribuído (por exemplo, se precisar salvar a mensagem em IBM MQ para processamento por outro fluxo) e, caso não haja um local adequado na mensagem para salvar o número de sequência, você pode adicionar um cabeçalho ` MQRFH2 ` à mensagem antes do nó `Sequence ` e definir o número de sequência em um campo na usr pasta.

Vários grupos de sequências podem ser gerenciados de forma independente, em paralelo, e o estado do grupo de sequências é preservado quando o nó de integração é reiniciado.

As etapas a seguir mostram como criar um fluxo de mensagens que inclui um número de sequência para cada mensagem em um grupo de sequências.

Procedimento

  1. Crie um fluxo de mensagens contendo um nó MQInput , um nó Sequence e um nó MQOutput .
  2. Conecte o terminal Out do nó MQInput para o terminal In do nó Sequence .
  3. Conecte o terminal Out do nó Sequence até o terminal In do nó MQOutput .
    Fluxo de mensagens consistindo em nós MQInput, Sequence e MQOutput.
  4. No nó MQInput, especifique a origem das mensagens de entrada para o nó definindo a propriedade Nome da fila (na guia Básico ) com o nome de uma fila do IBM MQ, da qual o nó MQInput recupera as mensagens. Por exemplo: SEQ.TASK1.IN1.
  5. Configure as seguintes propriedades do nó Sequence :
    1. Na guia Basic , configure as seguintes propriedades:
      • Configure a propriedade Caminho para número de sequência de armazenamento para o local na mensagem em que o número de sequência deve ser configurado. Por exemplo, $OutputBody/doc/seq. O número de sequência também é configurado no ambiente local, com a variável LocalEnvironment.Sequence.Number.
      • Configure a propriedade Caminho para o Identificador do Grupo de Sequências para o local do identificador do grupo de sequências na mensagem. Por exemplo, $InputBody/doc/grp. O identificador do grupo de sequências também é copiado no ambiente local, com a variável LocalEnvironment.Sequence.Group.
      • Configure a propriedade Definição do Início da Sequência como Literal com o valor inicial necessário; por exemplo, 0.

        Embora o número de sequência inicial precise ser especificado por um número literal, o valor pode ser substituído no ambiente local pela variável LocalEnvironment.Sequence.StartOfSequenceNumber.

        O início da mensagem de sequência é indicado no ambiente local pela variável LocalEnvironment.Sequence.Start, que utiliza um valor Booleano.

      • Configure a propriedade Definição de Fim da Sequência com um dos seguintes valores:
        • Automático com o valor de tempo limite necessário; por exemplo, 60. Este valor especifica que o grupo de sequências é fechado automaticamente quando a fila de mensagem no nó permanecer vazia por 60 segundos.
        • Literal com o valor final necessário; por exemplo, 100. Este valor especifica que o grupo de sequências é fechado quando a mensagem com o número de sequência 100 é processado.
        • Predicado com a expressão XPath necessária; por exemplo, $InputBody/doc/endFlag. Este valor especifica que o grupo de sequências é fechado quando o predicado $InputBody/doc/endFlag é avaliado como True ($InputBody/doc/endFlag=True).

        O fim da mensagem de sequência é indicado no ambiente local pela variável LocalEnvironment.Sequence.End, que utiliza um valor Booleano.

    2. Na guia Avançado , configure a propriedade Modo de persistência para Não persistente.
      Selecione Persistente, se desejar que a sequência seja preservada, se o gerenciador de filas for reiniciado.
  6. No nó MQOutput , configure a propriedade Nome da fila (na guia Basic ) para o nome de uma fila WebSphere® MQ para a qual o nó MQOutput envia mensagens. Por exemplo: SEQ.TASK1.OUT1.
  7. Salve seu fluxo de mensagens.