É possível incluir subfluxos em seus fluxos de mensagens exatamente da mesma forma que você inclui nós internos
ou definidos pelo usuário.
Você pode conectá-los com outros nós da mesma
forma. Como você pode definir um subfluxo uma vez e utilizá-lo em
mais de um fluxo de mensagens (e até mesmo em mais de um projeto do
fluxo de mensagens), um subfluxo pode fornecer benefícios:
- Tempo de desenvolvimento reutilizado e reduzido.
- Uma forma consistente de obter uma função específica e a
sustentabilidade dos fluxos de mensagens aumentada (considere um
subfluxo como análogo a uma macro de programação ou a um código
seqüencial gravado uma vez, mas utilizado em muitos locais).
- Flexibilidade. Se
você promover algumas ou todas as propriedades dos nós no subfluxo,
poderá ajustar um subfluxo a um contexto específico (por exemplo,
atualizando as informações da fila de saída ou da origem de dados).
No entanto, lembre-se de que um subfluxo não é um único nó e,
sua inclusão aumenta o número de nós no fluxo de mensagens, que pode
afetar seu desempenho.
Considere estes exemplos de utilização
de subfluxos:
- Você pode definir um subfluxo que fornece uma seqüência comum de ações que
se aplicam a vários fluxos de mensagens se for encontrado um erro. Por exemplo, você pode ter uma rotina de erro comum, que grava a
mensagem em um banco de dados através do nó Warehouse e a coloca em uma
fila para processamento por uma rotina de recuperação de erros. A
utilização dessa rotina em vários fluxos de mensagens, ou em vários
locais dentro de um fluxo de mensagens, fornece uma utilização
eficiente e consistente de recursos e evita que tais rotinas sejam
reinventadas sempre que for encontrado um erro.
- Você pode ter um cálculo comum que deseja executar nas mensagens
que passam por vários fluxos de mensagens diferentes. Por exemplo, talvez você queira
acessar taxas de câmbio de um banco de dados e aplicá-las para calcular
preços em várias moedas diferentes. Você pode incluir o subfluxo da calculadora
de moedas em cada um dos fluxos de mensagens nos quais ele é apropriado.

Utilize o nó Passagem para ativar a definição de versão de um subfluxo no tempo de execução. O nó Passagem permite incluir uma etiqueta em seu fluxo ou subfluxo de mensagens. Combinando essa etiqueta com a substituição de palavra-chave de seu sistema de controle de versão, é possível identificar qual versão de um subfluxo está incluída em uma fluxo de mensagens implementado. É possível utilizar esta etiqueta para suas próprias finalidades. Se você tiver incluído as palavras-chave corretas na etiqueta, é possível salvar o valor da etiqueta:
- Armazenado no arquivo BAR (Broker Archive), utilizando o comando mqsireadbar
- Conforme implementado pela última vez em um intermediário específico, nas propriedades de um fluxo de mensagens implementado no Message Brokers Toolkit
- No tempo de execução, se você ativar o rastreio de usuário para esse fluxo de mensagens.
A
mensagem que propaga em seu terminal externo é a mesma recebida em
seu terminal interno. Por
exemplo, se você desenvolver um subfluxo de processamento de erros a
ser incluído em vários fluxos de mensagens, será necessário
modificá-lo. No
entanto, convém introduzir a versão modificada, inicialmente, em apenas
um subconjunto dos fluxos de mensagens em que estiver incluído.
Defina um valor para a instância do nó Passthrough que identifique qual
versão do subfluxo foi incluída.

A utilização de subfluxos é ilustrada nas seguintes amostra:
A utilização de subfluxos é demonstrada no Amostra Error Handler e no Amostra Coordinated Request Reply . A amostra Error Handler utiliza um subfluxo para captar informações sobre erros e armazenar as informações em um banco de dados. A amostra Coordinated Request Reply utiliza um subfluxo para encapsular o armazenamento dos valores ReplyToQ e ReplyToQMgr em uma mensagem do
WebSphere MQ de forma que a lógica de processamento possa ser facilmente reutilizada em outros fluxos de mensagens para permitir que implementações alternativas sejam substituídas.