Captura de excepciones en un nodo TryCatch

Puede diseñar un flujo de mensajes para captar excepciones antes de que éstas se devuelvan al nodo de entrada. En un flujo individual, puede incluir uno o varios nodos TryCatch para proporcionar un solo punto de anomalía para una secuencia de nodos. Con esta técnica, puede proporcionar un proceso y una recuperación de error muy específicos.

Un nodo TryCatch no procesa un mensaje de ningún modo, sólo representa un punto de decisión en un flujo de mensajes. Cuando el nodo TryCatch recibe un mensaje, lo propaga al terminal de intentos (try). El intermediario pasa el control a la secuencia de nodos conectados a dicho terminal (flujo de intentos).

Si se genera una excepción en el flujo de intentos, el intermediario devuelve el control al nodo TryCatch. El nodo graba el contenido actual del árbol de Lista de excepciones en las anotaciones de error locales y, a continuación, graba la información para la excepción actual en la Lista de excepciones, grabando encima de la información que está almacenada allí.

El nodo propaga entonces el mensaje a la secuencia de nodos conectados al terminal de captación (flujo de captación). El contenido del árbol de mensajes que se propaga es idéntico al contenido que se ha propagado al terminal de intentos, que era el contenido del árbol cuando el nodo TryCatch lo recibió por primera vez. Amplía este árbol con la nueva información de excepción que ha grabado en la Lista de excepciones. Las modificaciones o adiciones realizadas en los nodos del flujo de intentos que afecten al árbol de mensajes no aparecerán en el árbol de mensajes que se propaga al flujo de captación.

Sin embargo, éstas no se pierden si el flujo de intentos ha terminado un proceso que incluye actualizaciones en bases de datos externas. Las actualizaciones persisten mientras el flujo de captación procesa el mensaje y la decisión sobre si las actualizaciones se confirman o se restituyen se toma en la configuración del flujo de mensajes y de los nodos individuales que interactúan con las bases de datos. Si las actualizaciones se confirman debido a la configuración que se ha establecido, deberá incluir lógica en el flujo de captación que restituya los cambios que se han efectuado.

Para revisar las opciones de configuración, consulte el apartado Configurar flujos de mensajes coordinados globalmente.

El intermediario devuelve el control al siguiente punto de captación del flujo de mensajes (que puede ser otro nodo TryCatch, pero que es siempre, en última instancia, el nodo de entrada) si se cumple una de las condiciones siguientes:

El ejemplo siguiente muestra cómo se puede configurar el flujo para captar excepciones en el nodo de entrada. El terminal de captación del nodo MQInput se conecta a un nodo Trace para registrar el error.

Este flujo de mensajes tiene un nodo MQInput, un nodo Compute y un nodo MQOutput. El terminal de captación del nodo MQInput se conecta a un nodo Trace.

En el ejemplo siguiente, el flujo de mensajes tiene dos flujos de proceso independientes conectados a los terminales verdadero y falso del nodo Filter. Aquí se incluye un nodo TryCatch en cada una de las dos rutas que puede tomar el mensaje. El terminal de captación de los dos nodos TryCatch se conecta a un subflujo de proceso de errores común.

Este flujo de mensajes tiene un nodo MQInput seguido de un nodo Filter que se ha codificado para probar un valor en el mensaje. Un nodo TryCatch se conecta al terminal verdadero del nodo Filter y su terminal de intentos se conecta a un nodo Compute seguido por un terminal MQOutput. Su terminal de captación se conecta a un subflujo llamado error1 que proporciona una rutina de proceso de errores comunes. Un segundo terminal de captación se conecta al terminal falso del nodo Filter. Sus terminales de intentos y de captación se conectan a secuencias de nodos idénticas a las del primer terminal de intentar-captar.

Si el nodo de entrada del flujo de mensajes no tiene un terminal de captación (por ejemplo, Real-timeInput) y desea procesar errores en el flujo, deberá incluir un nodo TryCatch. El ejemplo siguiente muestra cómo puede conectar un flujo para proporcionar este proceso de errores. En este ejemplo, puede configurar el ESQL en el nodo Compute del flujo de captación para examinar la excepción que se ha captado y establecer el nombre de cola de salida dinámicamente.

Este flujo de mensajes tiene un nodo Real-timeInput seguido de un nodo TryCatch. El terminal de intentos del nodo TryCatch se conecta al flujo de salida normal (Compute seguido de Publication), el terminal de captación se conecta al flujo de captación (Trace seguido de Compute seguido de MQOutput.
Conceptos relacionados
Visión general de flujos de mensajes
Visión general del despliegue
Tareas relacionadas
Utilizar subflujos
Crear un flujo de mensajes
Definir el contenido del flujo de mensajes
Edición de propiedades configurables
Configurar flujos de mensajes coordinados globalmente
Manejar excepciones en flujos de agregación
Referencia relacionada
Nodos incorporados
WebSphere MQ Enterprise Transport
WebSphere MQ Mobile Transport
WebSphere MQ Multicast Transport
WebSphere MQ Real-time Transport
WebSphere MQ Telemetry Transport
WebSphere MQ Web Services Transport
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última actualización : 2009-02-16 13:53:57

ac18880_