Puede incluir subflujos en los flujos de mensajes exactamente de la misma
manera que incluye nodos incorporados
o definidos por el usuario.
También puede conectarlos a otros nodos de la misma
manera. Puesto que puede definir un subflujo una vez y utilizarlo en más
de un flujo de mensajes (e incluso en más de un proyecto de flujo de
mensajes), un subflujo puede proporcionar los siguientes beneficios:
- Se puede reutilizar y reduce el tiempo de desarrollo.
- Proporciona una forma coherente de conseguir una función específica y
una mayor facilidad de mantenimiento de los flujos de mensajes
(considere un subflujo como una macro de programación o como una parte de
código que se escribe una vez pero se utiliza en muchos sitios).
- Flexibilidad. Si promociona todas o parte de las propiedades de los
nodos en el subflujo, puede adaptar el subflujo a un contexto
específico (por ejemplo, actualizando la información de cola de salida
o de origen de datos).
Sin embargo, debe recordar que un subflujo no es un solo nodo y su
inclusión aumenta el número de nodos en el flujo de mensajes, lo cual
puede afectar al rendimiento.
Consulte estos ejemplos de utilización de subflujo:
- Puede definir un subflujo que proporcione una
secuencia común de acciones que se aplique a varios flujos de mensajes si
se produce un error.
Por ejemplo, puede tener una rutina común de errores que escriba el mensaje
en una base de datos a través del nodo Warehouse, y lo coloque en una
cola para que lo procese una rutina de recuperación de errores. El uso de esta rutina en varios flujos de mensajes o en varios sitios
dentro de un flujo de mensajes, proporciona un uso eficaz y coherente de
los recursos y evita tener que reinventar esas rutinas cada vez que se
produce un error.
- Puede tener un cálculo común que desee realizar en los
mensajes que pasan a través de varios flujos de mensajes distintos. Por ejemplo, quizá desee acceder a las tasas de cambio de divisas de una
base de datos y aplicarlas para calcular precios en varias monedas
distintas. Puede incluir el subflujo de cálculo de moneda en cada flujo
de mensajes que sea adecuado.

Utilice
el nodo Passthrough para habilitar el control de versiones de un subflujo
en tiempo de ejecución. El nodo Passthrough le permite añadir una etiqueta
a su flujo de mensajes o subflujo. Mediante la combinación de esta
etiqueta con la sustitución de palabras clave de su sistema de control de
versiones, puede identificar qué versión de un subflujo está incluida en
un flujo de mensajes desplegado. Puede utilizar esta etiqueta para fines
personales. Si ha incluido las palabras clave de versión correctas en la
etiqueta, puede ver el valor de la etiqueta:
- Almacenado en el archivo archivador de intermediario (BAR), utilizando
el mandato mqsireadbar
- Tal como se desplegó por última vez en un intermediario específico, en
las propiedades de un flujo de mensajes desplegado en el Kit de herramientas de Message
Brokers
- En tiempo de ejecución, si habilita el rastreo de usuario para ese
flujo de mensajes.
El mensaje que
propaga en su terminal de salida es el mismo mensaje que ha recibido en su
terminal de entrada. Por ejemplo,
si se produce un error al procesar el subflujo para incluirlo en varios
flujos de mensajes, es posible que desee modificar ese subflujo. Sin
embargo, inicialmente quizá desee introducir la versión modificada a sólo
un subconjunto de los flujos de mensajes en los que está incluido. Establezca un valor para la instancia del nodo Passthrough que
identifica qué versión del subflujo ha incluido.

En el
ejemplo siguiente se ilustra la utilización de los subflujos:
El uso de subflujos se muestra en el Ejemplo Manejador de errores y el
Ejemplo de respuesta de petición coordinada. El ejemplo de manejador de errores utiliza un subflujo para atrapar información sobre errores y
almacenar la información en una base de datos. El ejemplo de respuesta de petición coordinada
utiliza un subflujo para encapsular el almacenamiento de los valores de ReplyToQ y ReplyToQMgr
en un mensaje de WebSphere MQ de forma que la lógica de proceso se pueda volver a utilizar
fácilmente en otros flujos de mensajes y para permitir que se sustituyan las
implementaciones alternativas.