Os subfluxos podem ser incluídos em seus fluxos de mensagens exatamente da
mesma maneira que você inclui nós integrados ou definidos pelo usuário.
Você também pode conectar subfluxos
a outros nós da mesma forma. Pode definir um subfluxo uma vez e utilizá-lo em mais de
um fluxo de mensagens (e até mesmo em mais de um projeto de fluxo de mensagens), para que
um subfluxo possa fornecer os seguintes benefícios:
- Capacidade de reutilização e tempo de desenvolvimento reduzido.
- Consistência e capacidade de manutenção aumentada de seus fluxos de mensagens (considere
um subfluxo como análogo a uma macro de programação ou ao código seqüencial que é gravado
uma vez mas utilizado em muitos locais).
- Flexibilidade para adaptar um subfluxo a um contexto específico (por exemplo, atualizando
informações da fila de saída ou da origem de dados).
Entretanto,
lembre-se de que um subfluxo não é um nó único, e sua inclusão aumenta o número de nós no
fluxo de mensagens, o que poderá afetar seu desempenho.
Considere estes exemplos de utilização
de subfluxos:
- Você pode definir um subfluxo que forneça 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 por meio do nó Warehouse
e a coloca em uma fila para processamento por uma rotina de recuperação de erro. 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.
- Talvez você queira executar um cálculo comum das mensagens transmitidas
pelos diferentes fluxos de mensagens; por exemplo, talvez você queira acessar taxas de
câmbio de um banco de dados e aplicá-las para calcular preços em diversas moedas. Você pode incluir o subfluxo da calculadora
de moedas em cada um dos fluxos de mensagens nos quais ele é apropriado.
Utilize o nó
Passthrough para
ativar o controle de versão de um subfluxo no tempo de execução. O nó
Passthrough
permite incluir um rótulo em seu fluxo de mensagens ou subfluxo. Combinando este rótulo 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 este rótulo para suas próprias finalidades. Se você tiver incluído as palavras-chave corretas no rótulo, é possível salvar o valor do rótulo:
- 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 do usuário para esse fluxo de mensagens
A
mensagem que ele propaga em seu terminal Out é a mesma recebida em seu
terminal In; por exemplo, se você desenvolver um subfluxo de processamento
de erro a ser incluído em vários fluxos de mensagens, será necessário modificar esse
subfluxo. No
entanto, convém introduzir a versão modificada, inicialmente, em apenas
um subconjunto dos fluxos de mensagens em que estiver incluído. Configure um valor para a instância
do nó
Passthrough que
identifique qual versão do subfluxo foi incluída.
A utilização de subfluxos
é demonstrada nas seguintes amostras:
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 para que a lógica de processamento
possa ser facilmente reutilizada em outros fluxos de mensagens e permitir
que implementações alternativas sejam substituídas.
Você
pode visualizar amostras apenas quando utilizar o centro de informações integrado
ao Message
Brokers Toolkit.