Se pueden incluir subflujos en los flujos de mensajes exactamente de la misma
manera que se incluyen nodos incorporados o definidos por el usuario.
También puede conectar subflujos a otros
nodos de la misma manera. 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), de forma que un subflujo puede proporcionar los siguientes
beneficios:
- Reutilización y tiempo de desarrollo reducido.
- Coherencia y posibilidad de mantenimiento de los flujos de mensajes (considere un
subflujo
como una macro de programación o como código en línea que se escribe una vez pero se
utiliza en muchos sitios).
- Flexibilidad para adaptar un subflujo para un contexto específico
(por ejemplo, actualizando la información de la cola de salida
o del origen de datos.
Sin embargo,
recuerde 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.
- Es posible que desee llevar a cabo un cálculo común de
los mensajes que pasan por 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 permite añadir una etiqueta al
flujo o el subflujo del mensaje. 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 de archivado 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 desarrolla un subflujo de proceso de
errores 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.
El uso de subflujos se muestra en los siguientes ejemplos:
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.
Los ejemplos sólo pueden verse cuando se utiliza el
centro de información que está integrado en el Kit de herramientas de Message
Brokers.