Las salidas de usuario permiten al software personalizado
proporcionado por el usuario hacer un seguimiento de los
datos que pasan a través de los flujos de mensajes en WebSphere
Message Brokers.
Las funciones proporcionadas por el usuario pueden invocarse
en puntos específicos durante el ciclo de vida de un mensaje
a medida que pasa por el flujo de mensajes, y pueden invocar funciones
de programa de utilidad para consultar información sobre el punto
del flujo y el contenido del mensaje ensamblado.
Las salidas de usuario pueden invocarse cuando se produce uno o varios
de los siguientes sucesos:
- Fin de una unidad de trabajo (UOW) o transacción (COMMIT/ROLLBACK)
- Un mensaje pasa entre dos nodos
- Un mensaje se extrae de la cola del origen de entrada.
En el flujo de mensaje básico mostrado más arriba, puede hacer un
seguimiento de mensajes a dos niveles:
- Nivel de transacción
- Nivel de nodo
A nivel de transacción, puede hacer un seguimiento de los sucesos
siguientes:
- Mensajes que se leen en el flujo
- Finalización de la transacción.
A nivel de nodo, puede hacer un seguimiento de los sucesos
siguientes:
- Un mensaje pasa de un nodo a otro
- Finalización del proceso para un nodo.
Esto significa que hay cuatro tipos diferentes de sucesos, que tienen
lugar en el siguiente orden:
- Mensaje extraído de la cola del origen de entrada (leído en el flujo)
- Mensaje propagado al nodo para su proceso
- Proceso de nodo completado
- Fin de la transacción.
En el diagrama anterior, el nodo MQInput se utiliza como ejemplo, pero
la función se aplica a todos los nodos de entrada, incluidos los nodos
definidos por el usuario. No obstante, hay una pequeña diferencia
entre los nodos incorporados y los nodos definidos por el usuario, en lo
que respecta al modo en que se invocan las salidas de usuario. Para los
nodos de entrada incorporados, la salida de usuario se invoca en cuanto los
datos se han leído del origen externo. Para los nodos de entrada definidos por el
usuario, la salida de usuario se invoca justo antes de que el nodo propague
el mensaje.
En el ejemplo anterior, el suceso 4 se produce al final de la transacción.
La salida de usuario se invoca después de que la transacción se ha
completado, por lo que el proceso de la salida de usuario no forma parte
de esa transacción. La salida de usuario se invoca aunque el flujo
no haya completado ningún proceso transaccional. Cuando la propiedad
de flujo de mensajes Cuenta de confirmaciones tiene un valor superior a 1,
hay una relación "muchos a uno" entre el suceso 1 y el suceso 4. Esto
también es cierto en algunos escenarios específicos para el nodo
de entrada concreto; por ejemplo, cuando se configura un nodo MQInput
con la propiedad Confirmar por grupo de mensajes seleccionada.
Puede escribir una salida de usuario para hacer un seguimiento de
uno o varios de estos sucesos. Para cada uno de estos sucesos, hay
disponibles los siguientes datos para la salida de usuario. Todo acceso es
de sólo lectura, a menos que se indique lo contrario:
- Extraer mensaje de la cola:
- Corriente de bits
- Nodo de entrada
- Árbol de Entorno (lectura/grabación)
- Mensaje propagado a un nodo:
- Árbol de mensaje
- Árbol de Entorno local (lectura/grabación)
- Lista de excepciones
- Árbol de Entorno (lectura/grabación)
- Nodo de origen
- Nodo de destino
- Proceso de nodo completado:
- Árbol de mensaje
- Árbol de Entorno local (lectura/grabación)
- Lista de excepciones
- Árbol de Entorno (lectura/grabación)
- Nodo
- Nodo ascendente
- Excepción (si la hay)
- Fin de la transacción:
- Nodo de entrada
- Excepción, si la hay
- Árbol de Entorno (lectura/grabación)
Se pueden registrar múltiples salidas de usuario y, si las hay, se
invocan en un orden definido (consulte el Mandato mqsichangeflowuserexits). Todos
los cambios realizados por una salida de usuario en el mensaje ensamblado
son visibles para las salidas de usuario subsiguientes.
Cuando se invoca la salida de usuario, se puede consultar la siguiente
información:
- Información sobre el flujo de mensajes:
- Nombre del flujo de mensajes
- Nombre del intermediario
- Nombre del gestor de colas del intermediario
- Nombre del grupo de ejecución
- Propiedad Cuenta de confirmaciones del flujo de mensajes
- Propiedad Intervalo de confirmación del flujo de mensajes
- Propiedad Transacción coordinada del flujo de mensajes
- Información sobre el nodo:
- Nombre de nodo
- Tipo de nodo
- Nombre de terminal
- Propiedades de nodo
- Navegar y leer el mensaje ensamblado (Message,LocalEnvironment,ExceptionList)
- Navegar y leer/grabar el árbol de Entorno.
Las salidas de usuario se pueden registrar de forma dinámica, sin
tener que volver a desplegar la configuración.