Al utilizar flujos de agregaciones, es posible que se produzcan excepciones o puntos muertos en la base de datos. Este tema le indica cómo tratarlos.
Antes de empezar:
Para llevar a cabo esta tarea, debe haber completado las siguientes tareas:
Si se ha detectado un error en sentido descendente de un nodo AggregateReply, el intermediario emite una excepción. Es posible que otro nodo de flujo de mensajes genere una excepción utilizando la sentencia ESQL THROW. En cualquiera de los dos casos, cuando se emite una excepción, ésta se detecta en uno de los dos lugares siguientes:
En la tabla siguiente se listan sucesos y lo que le sucede a una excepción emitida en sentido descendente del nodo AggregateReply.
Suceso | Mensaje propagado | Terminal de salida | Excepción detectada en |
---|---|---|---|
Una respuesta esperada llega al nodo de entrada y se pasa al terminal de entrada del nodo AggregateReply. Es la última respuesta necesaria para que la agregación sea completa. | Mensaje de respuesta agregado que contiene todas las respuestas | Terminal de salida | Nodo Input |
Una respuesta inesperada llega al nodo de entrada y se pasa al nodo AggregateReply. No se reconoce como una respuesta válida y la propiedad Tiempo de espera de mensaje desconocido está establecida en 0. | Mensaje recibido | Desconocido | Nodo Input |
Se ha excedido el tiempo de espera porque todavía no han llegado todas las respuestas para una agregación. | Mensaje de respuesta agregado que contiene todas las respuestas que han llegado | Tiempo de espera | Nodo AggregateReply |
Se produce un suceso de tiempo de espera excedido desconocido porque un mensaje retenido no se identificó como una respuesta válida. | Mensaje retenido | Desconocido | Nodo AggregateReply |
Se determina que una agregación está completa en un momento distinto del momento en que ha llegado la última respuesta. | Mensaje de respuesta agregado que contiene todas las respuestas | Terminal de salida | Nodo AggregateReply |
Si desea manejar errores que se producen en flujos de agregación, debe detectar estas excepciones en todas las instancias de cada uno de los nodos del flujo de mensajes. Para ello:
Si desea una método unificado para el manejo de errores, conecte los terminales de captación de todos estos nodos a una sola secuencia de nodos, o cree un subflujo que maneje errores de una forma coherente y conéctelo a cada terminal de captación.
El ejemplo ESQL siguiente muestra cómo añadir una cabecera MQMD y pasar las respuestas recibidas por el nodo AggregateReply:
-- Add MQMD SET OutputRoot.MQMD.Version = 2; . -- Include consolidated replies in the output message SET OutputRoot.XML.Data.Parsed = InputRoot.ComIbmAggregateReplyBody; .
Si desea propagar la información sobre la excepción en el mensaje de salida, también debe establecer la propiedad Modalidad de cálculo del nodo Compute en un valor que incluyaExcepción.
Los nodos AggregateRequest y AggregateReply acceden a la base de datos del intermediario para grabar y leer información relacionada con el proceso de peticiones agregadas en la tabla BAGGREGATE. Los puntos muertos pueden producirse cuando varios recursos intentan acceder simultáneamente a las tablas de base de datos.
Para evitar que se produzca un punto muerto en la base de datos:
Si surge este problema, inhabilite el bloqueo de clave siguiente especificando lo siguiente en una ventana de mandatos de DB2:
db2set DB2_RR_TO_RS=YES
Cuando este mandato finaliza, reinicie el gestor de base de datos DB2. Este mandato no afecta de ninguna otra forma al funcionamiento de esta base de datos.
Si utiliza otra base de datos, estos puntos muertos no se producen.
Conceptos relacionados
Flujos de mensajes
Agregación de flujos de mensajes
Tareas relacionadas
Configuración de flujos de agregación
Creación del flujo ramificado de agregaciones
Creación de un flujo de abanico de entrada de agregación
Asociación de flujos de agregaciones ramificados y de abanicos de entrada
Configuración de tiempos de espera para la agregación
Utilización de varios nodos AggregateControl
Manejo de errores en flujos de mensajes
Diseño de un flujo de mensajes
Creación de un flujo de mensajes
Definición del contenido del flujo de mensajes
Referencia relacionada
Nodo AggregateControl
Nodo AggregateReply
Nodo AggregateRequest
Avisos |
Marcas registradas |
Descargas |
Biblioteca |
Soporte |
Información de retorno (feedback)
![]() ![]() |
ac12340_ |