El intermediario proporciona un manejo básico de errores para todos los flujos de mensajes. Si el proceso básico no es suficiente y desea realizar acciones específicas en respuesta a ciertas condiciones y situaciones de error, puede mejorar sus flujos de mensajes para que proporcionen un manejo de errores personalizado.
Las opciones que puede utilizar para esto pueden llegar a ser muy complejas. Las opciones que se proporcionan para los nodos MQInput son amplias porque estos nodos tratan con mensajes y transacciones persistentes. MQInput también se ve afectado por las opciones de configuración para WebSphere MQ.
Puesto que puede decidir manejar distintos errores de distintas maneras, no hay procedimientos fijos para describir. Esta sección proporciona información sobre los principios del manejo de errores y las opciones que estás disponibles, y usted debe decidir la combinación de opciones que necesita en cada situación, basándose en la información que se proporciona en esta sección.
Puede elegir una o más de estas opciones en los flujos de mensajes:
Si incluye nodos definidos por usuario en el flujo de mensajes, debe consultar la información proporcionada con el nodo para comprender cómo puede manejar los errores con estos nodos. Las descripciones en esta sección solamente abarcan los nodos incorporados.
Cuando diseñe el método de manejo de errores, tenga presente los siguientes factores:
Cuando se detecta una excepción dentro de un nodo, el mensaje y la información sobre la excepción se propagan al terminal de anomalías del nodo. Si el nodo no tiene un terminal de anomalías, o no está conectado, el intermediario genera una excepción y devuelve el control al nodo de entrada.
Si un nodo MQinput detecta un error interno, su comportamiento es ligeramente diferente; si el terminal de anomalías no está conectado, intenta poner el mensaje en la cola de reposición en cola para restitución de la cola de entrada o (si ésta no está definida) en la cola de mensajes no entregados del gestor de colas del intermediario.
Un mensaje se propaga a un terminal de captación sólo si se ha propagado fuera del nodo anteriormente (por ejemplo, a los nodos conectados al terminal de salida).
Los principios generales del manejo de errores son:
El flujo de anomalías también se invoca si se genera una excepción fuera del nodo MQInput (en los flujos de salida o de captación), el mensaje es transaccional y el restablecimiento del mensaje en la cola de entrada hace que el contador de restituciones alcance el umbral de restituciones.
El nodo SCADAInput no propaga el mensaje al terminal de anomalías si se genera una excepción fuera del nodo y no ha conectado su terminal de captación.
El Ejemplo Manejador de errores muestra cómo utilizar una rutina de manejo de errores para captar información sobre errores y para almacenar dicha información en una base de datos. La rutina de manejo de errores es un subflujo que puede añadir, sin modificar, a cualquier flujo de mensajes. El ejemplo también muestra cómo configurar flujos de mensajes para controlar las transacciones; en particular, el uso de transacciones coordinadas globalmente para asegurar la integridad total de los datos.