Defina um subfluxo para fornecer uma sequência comum de ações a ser usada por diversos fluxos de mensagens, aplicativos ou serviços. É possível incluir subfluxos nos
fluxos de mensagens 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.
Um subfluxo fornece 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 sequencial que é gravado
uma vez mas utilizado em muitos locais).
- Flexibilidade para padronizar um subfluxo para um contexto específico (por exemplo, atualizando as
informações da fila de saída ou da origem de dados).
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 por meio do nó Banco de Dados 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 nas mensagens que passam pelos
vários diferentes fluxos de mensagens, por exemplo, você pode 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.
Para aprender mais sobre subfluxos, consulte o seguinte cenário ../com.ibm.scenarios.doc/UnderstandingSubflows/topics/scnsubflows_01_11_.htm.
Tipos de Subfluxos
Defina um subfluxo uma vez e use-o em mais de um fluxo de
mensagens, aplicativo, serviço e Projeto do Message Broker. Defina o conteúdo do subfluxo da mesma maneira
que define o conteúdo do fluxo de mensagens, incluindo, configurando e conectando
nós do fluxo de mensagens.
Nota: No tempo de execução, cada instância de um subfluxo cria uma cópia de todos os nós de fluxo de mensagens que definem esse subfluxo. Isso afeta o uso de recurso, o que pode afetar o desempenho geral do fluxo de mensagens.
É possível criar um subfluxo como um arquivo
.subflow ou
.msgflow. Escolha qual tipo de subfluxo usar com base nas seguintes informações:
- Um subfluxo definido em um arquivo .subflow pode ser implementado de qualquer uma das formas a seguir:
- Separadamente de qualquer um dos fluxos de mensagens que usem esse subfluxo.
O subfluxo e os fluxos de mensagens que incluem este subfluxo devem ser implementados no mesmo grupo de execução em um broker. O subfluxo pode ser implementado diretamente um grupo de execução em um broker ou como parte de uma biblioteca. Se você atualizar esse tipo de subfluxo e reimplementá-lo,
todos os fluxos de mensagens que usarem o subfluxo, e que não forem parte de um aplicativo ou serviço, serão atualizados automaticamente. Não é necessário reimplementar os fluxos de mensagens.
- Como parte de um aplicativo ou serviço.
- Não é possível usar os seguintes nós nesse tipo de subfluxo:
- Nós que representem subfluxos definidos em arquivos .msgflow
- Nós definidos pelo usuário criados a partir de subfluxos são definidos em arquivos .msgflow
- Nós MQOptimizedFlow
- Se você criar um arquivo BAR que contenha código ESQL e
um subfluxo que esteja definido em um arquivo .subflow,
não será possível incluir o código ESQL diretamente em arquivos de fluxo de mensagens compilados.
- Um subfluxo que é definido em um arquivo .msgflow está integrado dentro de qualquer fluxo de mensagens pai que o use quando o fluxo de mensagens é colocado em um arquivo bar. Este tipo de subfluxo, portanto, pode ser implementado apenas em um broker com o fluxo de mensagens em que é usado.
- Se você atualizar esse
tipo de subfluxo, deverá reimplementar todos os fluxos de mensagens que usarem o
subfluxo para que as mudanças sejam usadas.
- Esse tipo de subfluxo pode ser compactado
como um nó definido pelo usuário.
Condições Aplicáveis ao Converter um Subfluxo entre .msgflow e .subflow e Vice-versa
É possível converter um subfluxo criado como um arquivo
.msgflow para
.subflow.
- Se o arquivo .msgflow contiver subfluxos que estejam definidos como arquivos .msgflow, esses subfluxos deverão também ser convertidos em arquivos .subflow.
- Se o arquivo .msgflow for usado como um subfluxo, o fluxo pai deverá ser atualizado para que ele faça referências ao novo arquivo .subflow.
É possível converter um subfluxo criado como um arquivo
.subflow para
.msgflow.
- Não é possível usar
o nome de um arquivo que já exista nesse aplicativo, biblioteca
ou projeto do Message Broker em que o subfluxo foi criado como um arquivo .msgflow. Você deve incluir .msgflow no final do nome do arquivo do subfluxo.
Condições Aplicáveis ao Desejar Incluir um Subfluxo em um Fluxo de Mensagens
É possível incluir subfluxos em um fluxo de mensagens se uma das sentenças abaixo for verdadeira:
Condições Aplicáveis ao Desejar Incluir um Subfluxo em um Subfluxo
É possível incluir subfluxos em um subfluxo em um dos casos a seguir:
- É possível incluir subfluxos definidos em arquivos .subflow
em subfluxos definidos em arquivos .subflow
e arquivos .msgflow.
- É possível incluir subfluxos definidos em arquivos .msgflow
em subfluxos definidos apenas em arquivos .msgflow.
Condições Aplicáveis ao Implementar um Subfluxo
É possível implementar subfluxos em uma das seguintes maneiras:
- Implemente um subfluxo como recurso independente definido em um projeto do Message
Broker.
- Implemente um subfluxo como parte de um projeto do aplicativo.
- Implemente um subfluxo como parte de um projeto do serviço.
- Implemente um subfluxo como parte de uma biblioteca.
Implemente um subfluxo
em um grupo de execução enviando um arquivo broker archive (BAR) a um grupo de execução em um broker,
que descompacta e armazena o conteúdo pronto para quando seus fluxos de mensagens
forem iniciados.
As seguintes condições se aplicam quando você implementa um subfluxo como parte de uma solução de integração:
- Caso implemente um fluxo de mensagens que contém um subfluxo definido em um arquivo .subflow, o subfluxo é incluído automaticamente no arquivo BAR.
- Caso implemente um subfluxo que está contido em um aplicativo, você deve implementar o aplicativo em um grupo de execução, o que resulta em uma implementação completa do aplicativo.
- Caso implemente um subfluxo que está contido em um serviço, você deve implementar o serviço em um grupo de execução, o que resulta em uma implementação completa do serviço.
- Caso implemente um subfluxo que está contido em uma biblioteca, você pode implementar a biblioteca em um grupo de execução diretamente, fora de um aplicativo ou serviço. Então, o subfluxo incluído na biblioteca pode ser referenciado por outros fluxos e subfluxos de mensagens que estão implementados diretamente no mesmo grupo de execução que a biblioteca.
- Um subfluxo que é criado como arquivo .msgflow em um projeto do Message Broker apenas pode ser implementado como recurso separado se contiver pelo menos um nó de Entrada.
Controle da Versão
Utilize o nó Passthrough para
ativar o controle de versão de um subfluxo no tempo de execução.
Incluindo um nó
Passthrough, você pode incluir um rótulo em seu fluxo de mensagens
ou subfluxo. 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 de versão corretas na etiqueta, é possível visualizar o valor da etiqueta de qualquer uma das formas a seguir:
- Usando o comando mqsireadbar para ler as propriedades armazenadas no arquivo broker archive (BAR).
- No WebSphere Message Broker Toolkit, nas propriedades de um fluxo de mensagem implementado como o último implementado em um broker específico.
- No ambiente de tempo de execução, caso ative o rastreio do usuário para esse fluxo de mensagens.
Para subfluxos criados como um arquivo
.subflow, você deverá considerar o seguinte comportamento ao implementar uma nova versão de um subfluxo:
- Se o subfluxo for implementado separadamente de qualquer fluxo de mensagens que use esse subfluxo e uma nova versão do subfluxo for implementada, todos os fluxos de mensagens são automaticamente atualizados.
- Se o subfluxo for implementado como parte de um aplicativo ou serviço, é necessário atualizar os aplicativos e serviços para incluir a nova versão do subfluxo e reimplementá-los.
Para subfluxos criados como um arquivo
.msgflow, você deverá considerar o seguinte comportamento ao implementar uma nova versão de um subfluxo:
- É necessário atualizar os aplicativos, serviços e recursos independentes que usam o subfluxo para incluir a nova versão do subfluxo e reimplementá-los.
Amostras
A utilização de subfluxos
é demonstrada nas seguintes amostras:
O Manipulador de Erros usa um subfluxo para efetuar trap de informações sobre os erros e armazenar as informações em um banco de dados. A Resposta de Pedido Coordenada usa 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 reutilizada em outros fluxos de mensagens e para permitir que implementações alternativas sejam substituídas.
Você
só pode visualizar informações sobre amostras quando usa o centro de informações
que está integrado ao WebSphere Message Broker Toolkit ou o centro de
informações on-line. Você só poderá
executar amostras quando usar o centro de informações que está integrado ao
WebSphere Message Broker Toolkit.