WebSphere Message Broker, Versión 8.0.0.5 Sistemas operativos: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte la información sobre la última versión del producto en IBM Integration Bus, Versión 9.0

Generar varios mensajes de salida

Puede utilizar la sentencia PROPAGATE para generar varios mensajes de salida en el nodo Compute. Los mensajes de salida que genere puede tener el mismo o un contenido diferente. También puede dirigir los mensajes de salida a cualquiera de los cuatro terminales de salida alternativos del nodo Compute o a un nodo Label.

Por ejemplo, para crear tres copias de mensajes de entrada que ha recibido el nodo Compute y enviar una al terminal estándar Out del nodo Compute, una al primer terminal alternativo Out1 del nodo Compute y la otra al nodo ThirdCopy Label, codifique el ESQL siguiente:

SET OutputRoot = InputRoot;
PROPAGATE;
SET OutputRoot = InputRoot;
PROPAGATE TO TERMINAL 'out1';
SET OutputRoot = InputRoot;
PROPAGATE TO LABEL 'ThirdCopy';
En el ejemplo anterior, el contenido de OutputRoot se restablece antes de cada PROPAGATE, porque, por omisión, el nodo borra el almacenamiento intermedio de mensaje de salida y reclama la memoria cuando se completa la sentencia PROPAGATE. Un método alternativo consiste en indicar al nodo que no borre el mensaje de salida en las dos primeras sentencias PROPAGATE, para que el mensaje esté disponible para direccionarse al siguiente destino. El código para conseguir este resultado es:
SET OutputRoot = InputRoot;
PROPAGATE DELETE NONE;
PROPAGATE TO TERMINAL 'out1' DELETE NONE;
PROPAGATE TO LABEL 'ThirdCopy';

Si no inicializa el almacenamiento intermedio de salida, se genera un mensaje vacío y el flujo de mensajes detecta un error y genera una excepción.

Asimismo, asegúrese de que copia todas las cabeceras de mensajes en el almacenamiento intermedio de mensajes de salida para cada mensaje de salida que propague.

Si desea modificar el contenido del mensaje de salida antes de propagar cada mensaje, codifique el ESQL adecuado para realizar los cambios que desee antes de codificar la sentencia PROPAGATE.

Si configura el contenido del último mensaje de salida que desea generar y lo propaga como la acción final del nodo Compute, no tiene que incluir la sentencia PROPAGATE final. La acción predeterminada del nodo Compute es propagar el contenido del almacenamiento intermedio de salida cuando termina. Esto lo implementa la sentencia RETURN TRUE incluida como la sentencia final del esqueleto del módulo.

Por ejemplo, para generar tres copias del mensaje de entrada y no realizar ninguna acción adicional, incluya este código inmediatamente antes de la sentencia RETURN TRUE:

SET OutputRoot = InputRoot;
PROPAGATE DELETE NONE;
PROPAGATE DELETE NONE;

Alternativamente, puede modificar el comportamiento predeterminado del nodo modificando RETURN TRUE por RETURN FALSE:

SET OutputRoot = InputRoot;
PROPAGATE DELETE NONE;
PROPAGATE DELETE NONE;
PROPAGATE;
RETURN FALSE;

Tres sentencias PROPAGATE generan tres mensajes de salida. La sentencia RETURN FALSE final hace que el nodo finalice pero no propague un mensaje de salida final. Observe que la sentencia PROPAGATE final no incluye la cláusula DELETE NONE, porque el nodo debe liberar la memoria en esta etapa.

Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Comentarios

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última actualización:
        
        Última actualización: 2015-02-28 16:58:24


Tema de tareaTema de tarea | Versión 8.0.0.5 | ac12370_