Manejo de errores MQeInput

El nodo MQeInput lleva a cabo acciones exclusivas cuando maneja errores con mensajes transaccionales o permanentes. (Los errores que se encuentran con mensajes no transaccionales, se manejan tal como se describe en el apartado Gestión de errores en el nodo de entrada).

Esta acción se resume en la tabla siguientes:

Suceso de error Terminal de anomalías conectado Terminal de anomalías no conectado Terminal de captación conectado Terminal de captación no conectado
El nodo detecta error interno El flujo de anomalías maneja el error Reintento del nodo No aplicable No aplicable
El nodo propaga el mensaje al terminal de salida. Excepción en el flujo de salida No aplicable No aplicable El nodo reintenta y propaga al terminal de captación Reintento del nodo
El nodo propaga el mensaje al terminal de captación. Excepción en el flujo de captación El flujo de anomalías maneja el error Reintento del nodo No aplicable No aplicable
El nodo propaga el mensaje al terminal de anomalías. Excepción en el flujo de anomalías No aplicable No aplicable El nodo transfiere el mensaje a una cola alternativa El nodo transfiere el mensaje a una cola alternativa

Proceso de reintento

El nodo intenta el proceso de reintento cuando un mensaje se restituye en la cola de entrada. Comprueba si el mensaje se ha restituido previamente y, en caso de que sea así, si la cuenta de restituciones ha alcanzado (igualado) el umbral de restitución. WebSphere MQ mantiene la cuenta de restituciones para cada mensaje en el MQMD.

Debe especificar (o permitir el valor por omisión de 0) del atributo del umbral de restitución BOTHRESH cuando crea la cola. Si acepta el valor por omisión de 0, el nodo lo aumenta a 1. El nodo también establece el valor en 1 si no puede detectar el valor actual, lo que significa que si un mensaje no se ha restituido previamente, como mínimo, se restituye y reintenta una vez.

  1. Si no se ha alcanzado el umbral de restitución, el nodo vuelve a obtener el mensaje de la cola. Si se produce un error, se maneja como un error interno (tal como se ha descrito más arriba). Si se ejecuta correctamente, el nodo propaga el mensaje al flujo de salida.
  2. Si se ha alcanzado el umbral de restitución:
    • Cuando procede, el nodo propaga el mensaje al terminal de captación o de anomalías, dependiendo de la situación en la que se ha producido el error (tal como se ha descrito más arriba).
    • En caso contrario, el nodo transfiere el mensaje a una cola disponible, por orden de preferencia:
      1. El mensaje se transfiere al nombre de reposición en cola para restitución de la cola de entrada (atributo de cola BOQNAME), si se ha definido una.
      2. Si no se ha definido la cola de restitución o si el nodo no la puede identificar, el mensaje se transfiere a la cola de mensajes no entregados (DLQ), si se ha definido una. (Si se ha definido el gestor de colas del intermediario con el mandato mqsicreatebroker, se ha definido una DLQ con un nombre por omisión de SYSTEM.DEAD.LETTER.QUEUE y está habilitada para este gestor de colas).
      3. Si el mensaje no se puede transferir a ninguna de estas colas debido a que existe un error MQPUT (además de incluir que la cola no existe) o a causa de que el nodo no la puede identificar, no se puede manejar de modo seguro sin riesgo de pérdida.

        El mensaje no se puede descartar y, por consiguiente, el flujo de mensajes sigue intentando restituirlo. Registra la situación del error escribiendo errores en las anotaciones de error locales. Una segunda indicación de este error en el continuo incremento de la CtaRestituciones del mensaje en la cola puente de entrada.

        Si esta situación se produce debido a que no existe ninguna cola, puede definir una de las colas de restitución que se han mencionado más arriba. Si se borra la condición que impide el proceso del mensaje, puede aumentar temporalmente el valor del atributo BOTHRESH. De este modo se fuerza el proceso normal del mensaje.

Conceptos relacionados
Flujos de mensajes

Tareas relacionadas
Manejo de errores en flujos de mensajes
Gestión de errores en el nodo de entrada
Utilización de subflujos
Creación de un flujo de mensajes
Definición del contenido del flujo de mensajes

Referencia relacionada
Nodos incorporados
WebSphere MQ Mobile Transport