Un nodo de flujo de mensajes es un paso de proceso de un flujo de mensajes.
Recibe un mensaje, efectúa un conjunto de acciones en el mensaje y opcionalmente pasa el mensaje al nodo siguiente del flujo de mensajes. Un nodo de flujo de mensajes puede ser un nodo incorporado , un nodo definido por el usuario o un nodo de subflujo.
Un nodo de flujo de mensajes tiene un número fijo de puntos de entrada y salida que se conocen como terminales. Puede efectuar las conexiones entre los terminales para definir las rutas que puede tomar un mensaje a través de un flujo de mensajes.
Para obtener información sobre todos los nodos incorporados proporcionados por WebSphere Message Broker, consulte Nodos incorporados.
Un nodo de entrada recibe un mensaje y lo procesa siguiendo la definición del subflujo. Esto puede incluir almacenarlo en un nodo Warehouse o entregarlo a otro destino de mensaje, por ejemplo, a través de un nodo MQOutput. Si es necesario, el mensaje se puede pasar a través de un nodo Output otra vez al flujo principal para su proceso adicional.
Cuando se intercala en un flujo principal, el subflujo se representa mediante un nodo de subflujo que tiene un icono exclusivo. El icono se muestra con el número de terminales correcto para representar los nodos de entrada y de salida que ha incluido en la definición del subflujo.
El uso más común de un subflujo es proporcionar un proceso necesario en muchos lugares de un flujo de mensajes o compartirlo entre varios flujos de mensajes. Por ejemplo, puede codificar algún proceso de errores en un subflujo o crear un subflujo que proporcione un seguimiento de auditoría (almacenando todo el mensaje y escribiendo una entrada de rastreo).
Un nodo no siempre genera un mensaje de salida para cada terminal de salida: a menudo, genera un nodo de salida para un solo terminal basándose en el mensaje recibido o en el resultado de la operación del nodo. Por ejemplo, un nodo Filter generalmente envía un mensaje al terminal true o al terminal false pero no a ambos.
Si se conecta más de un terminal, el nodo envía el mensaje de salida en cada terminal pero sólo envía al terminal siguiente cuando el proceso ha terminado para el terminal actual. Las actualizaciones efectuadas en un mensaje no se propagan nunca a nodos ejecutados anteriormente, sólo a nodos que van a continuación del nodo en el que se ha efectuado la actualización. El orden en el que se propaga el mensaje a los diferentes terminales de salida lo determina el intermediario y este orden no se puede modificar. La única excepción a esta norma es el nodo FlowOrder, en el que los terminales indican el orden en el que se propaga el mensaje a cada uno.
El flujo de mensajes puede aceptar un mensaje nuevo para su proceso sólo cuando se han completado todas las vías de acceso a través del flujo de mensajes, esto es, todos los nodos conectados desde todos los terminales de salida.
Para obtener información sobre todos los nodos incorporados