WebSphere Message Broker incluye un gran número de nodos de proceso de mensajes que puede utilizar dentro de los flujos de mensajes.
Consulte el tema de concepto sobre nodos de flujos de mensajes.
WebSphere Message Broker también proporciona una interfaz que puede utilizar para definir nodos propios, conocidos como nodos definidos por el usuario.
La decisión sobre qué nodos utilizar depende del proceso que desee realizar en los mensajes.
El uso de los flujos de mensajes que contienen nodos MQeInput en WebSphere Message Broker Versión 6.0 ya no se utiliza. Vuelva a diseñar los flujos de mensajes para eliminar los nodos MQe y sustitúyalos por nodos MQ que estén configurados según las especificaciones propias y coordinados con la configuración de pasarela MQe. Para obtener más información, consulte el tema Migración de un flujo de mensajes que contiene nodos WebSphere MQ Everyplace.
El nodo Real-timeInput es un nodo de entrada y el nodo Real-timeOptimizedFlow es un flujo de mensajes completo que proporciona un flujo de mensajes publicación/suscripción de alto rendimiento.
Una instancia del nodo Input representa un terminal In (de entrada). Por ejemplo, si ha incluido una instancia del nodo Input, el icono de subflujo muestra un terminal de entrada que se puede conectar a otros nodos del flujo principal del mismo modo que se conecta cualquier otro nodo.
Para desplegar un flujo de mensajes, éste debe tener al menos un nodo de entrada. Si su flujo de mensajes no contiene un nodo de entrada, no podrá añadirlo al archivo de archivado de intermediario. El nodo de entrada puede estar en el flujo principal, o en un flujo de mensajes que esté incorporado al flujo principal.
Puede utilizar más de un nodo de entrada en un flujo de mensajes. Para obtener más información, consulte Utilizar más de un nodo de entrada.
La utilización de los flujos de mensajes que contienen nodos MQeOutput en WebSphere Message Broker Versión 6.0 está en desuso. Vuelva a diseñar los flujos de mensajes para eliminar los nodos MQe y sustitúyalos por nodos MQ que estén configurados según las especificaciones propias y coordinados con la configuración de pasarela MQe. Para obtener más información, consulte el tema Migración de un flujo de mensajes que contiene nodos WebSphere MQ Everyplace.
Una instancia del nodo Output representa un terminal Out (de salida). Por ejemplo, si ha incluido dos instancias del nodo Output, el icono de subflujo muestra dos terminales de salida, que puede conectar a otros nodos del flujo principal de la misma manera que conecta cualquier otro nodo.
La mayoría de empresas tienes aplicaciones que se han desarrollado a lo largo de muchos años, en distintos sistemas, utilizando lenguajes de programación distintos y métodos de comunicación también distintos. WebSphere Message Broker elimina la necesidad de que las aplicaciones entiendan estas diferencias ya que proporciona la posibilidad de configurar flujos de mensajes que transforman los mensajes de un formato a otro.
Por ejemplo, los nombres de las personas están en distintos formatos en las distintas aplicaciones. El apellido en primer o segundo lugar, uno o dos apellidos, en minúsculas o mayúsculas: estas son sólo algunas de las posibilidades. Puesto que puede configurar el flujo de mensajes según los requisitos de cada aplicación, cada mensaje puede transformarse al formato correcto sin modificar la aplicación que lo envía ni la que lo recibe.
Puede trabajar con el contenido del mensaje para actualizarlo de diversas maneras. La elección dependerá de si el flujo de mensajes debe manejar mensajes predefinidos (con modelo), mensajes autodefinidos (por ejemplo, XML), o ambos.
Un flujo de mensajes puede reconstruir completamente un mensaje, convertirlo a otro formato (donde formato significa el orden de los campos, el orden de los bytes, el idioma, etc.), eliminar contenido del mensaje, o colocar datos específicos en él. Por ejemplo, un nodo puede interactuar con una base de datos para recuperar información adicional, o para almacenar una copia del mensaje (total o parcial) en la base de datos para su proceso fuera de línea.
También puede crear flujos de mensajes que utilizan estos nodos para interactuar entre sí. Aunque el funcionamiento predeterminado de un flujo de mensajes no afecta al funcionamiento de otro flujo de mensajes, puede forzar esta acción configurando sus flujos de mensajes de forma que almacenen y recuperen información en una fuente externa como, por ejemplo, una base de datos.
Utilice el editor ESQL para crear un módulo ESQL, específico de este nodo, que contiene las sentencias que definen las acciones que se van a realizar en el mensaje o la base de datos. No utilice en ningún otro tipo de nodo el código ESQL que desarrolle para utilizarlo en un nodo Compute.
Puede controlar la forma en que este nodo accede a la base de datos especificando la información de usuario y contraseña para el origen de datos que especifique en la propiedad de nodo. Utilice el mandato mqsisetdbparms para inicializar y mantener estos valores.
Si los requisitos de manipulación del mensaje son complejos, establézcalos dentro de un solo nodo Compute. El rendimiento es mayor si hay pocos nodos Compute más complejos en lugar de un gran número de nodos más sencillos, ya que el intermediario analiza el mensaje cuando entra en cada nodo Compute.
Puede controlar la forma en que este nodo accede a la base de datos especificando la información de usuario y contraseña para el origen de datos que especifique en la propiedad de nodo. Utilice el mandato mqsisetdbparms para inicializar y mantener estos valores.
Utilice el Editor de correlaciones para desarrollar correlaciones para realizar manipulaciones sencillas en mensajes predefinidos. No utilice en ningún otro tipo de nodo las correlaciones que desarrolle para utilizarlas en un nodo Mapping.
Con un nodo Extract, puede crear un mensaje de salida nuevo a partir de elementos especificados del mensaje de entrada. Puede extraer partes del mensaje y, opcionalmente, cambiar su contenido, para crear un nuevo mensaje de salida que sea una copia parcial del mensaje que ha recibido el nodo. El nodo Extract sólo maneja mensajes predefinidos.
Utilice el Editor de correlaciones para desarrollar manipulaciones simples en mensajes predefinidos en el nodo Extract. No utilice en ningún otro tipo de nodo las correlaciones que desarrolle para utilizarlas en un nodo Extract.
Este nodo proporciona una interfaz muy flexible con una amplio rango de funciones. También tiene propiedades que puede utilizar para controlar la forma en que la interacción participa en las transacciones.
Puede controlar la forma en que este nodo accede a la base de datos especificando la información de usuario y contraseña para el origen de datos que especifique en las propiedades del nodo. Utilice el mandato mqsisetdbparms para inicializar y mantener estos valores.
Desde este nodo sólo puede actualizar bases de datos; no puede actualizar el contenido de un mensaje. Si desea actualizar el contenido de un mensaje, utilice el nodo Compute o Mapping.
Los nodos DataDelete, DataInsert y DataUpdate sólo manejan mensajes predefinidos. Utilice un editor de correlaciones para desarrollar correlaciones que realicen estas funciones. No utilice en ningún otro tipo de nodo las correlaciones que desarrolle para estos nodos. Puede utilizar estos nodos para controlar las características transaccionales de las actualizaciones que realizan.
Puede controlar la forma en que este nodo accede a la base de datos especificando la información de usuario y contraseña para el origen de datos que especifique en la propiedad de nodo. Utilice el mandato mqsisetdbparms para inicializar y mantener estos valores.
Desde estos nodos sólo puede actualizar bases de datos; no puede actualizar el contenido de los mensajes. Si desea actualizar el contenido de un mensaje, utilice el nodo Compute o Mapping.
Puede controlar la forma en que este nodo accede a la base de datos especificando la información de usuario y contraseña para el origen de datos que especifique en la propiedad de nodo. Utilice el mandato mqsisetdbparms para inicializar y mantener estos valores.
Desde este nodo sólo puede actualizar una base de datos; no puede actualizar el contenido de un mensaje. Si desea actualizar el contenido de un mensaje, utilice el nodo Compute o Mapping.
El motor de transformación Xalan-Java (Procesador XSLT Xalan-java Apache) se utiliza como motor de transformación subyacente. Para obtener más información sobre transformaciones XML, la especificación W3C de la sintaxis y semántica del lenguaje de transformaciones XSL para transformar documentos XML en otros documentos XML, consulte Transformaciones XSL W3C.
Puede desplegar hojas de estilo y archivos XML en grupos de ejecución de intermediario, para facilitar el mantenimiento de archivos XML y de hojas de estilo.
El nodo JMSMQTransform se puede usar para enviar mensajes a flujos de mensajes existentes e interactuar con JMS de WebSphere MQ y WebSphere MQ Publicación/Suscripción.
Puede utilizar el nodo MQJMSTransform para enviar mensajes a los flujos de mensajes existentes e interactuar con JMS de WebSphere MQ y WebSphere MQ Publicación/Suscripción.
Utilice el nodo MQOptimizedFlow para sustituir un flujo de mensajes publicación/suscripción que consta de un nodo MQInput conectado a un nodo Publication y que utiliza JMS a través del transporte WebSphere MQ. El nodo MQOptimizedFlow no se puede usar en sistemas z/OS.
Utilice el nodo MQOptimizedFlow para mejorar el rendimiento, especialmente cuando un solo publicador produzca una publicación persistente para un solo suscriptor.
Por ejemplo, si su nodo accede a una base de datos, incluya un nodo definido por el usuario para interactuar con la base de datos. Puede controlar la forma en que este nodo accede a la base de datos especificando la información de usuario y contraseña para el origen de datos que especifique en la propiedad de nodo. Utilice el mandato mqsisetdbparms para inicializar y mantener estos valores.
Nodo | ¿Actualizar la base de datos? | ¿Actualizar el mensaje? | ¿Actualizar el entorno local? | ¿Requiere conjunto de mensajes? |
---|---|---|---|---|
Compute | Sí | Sí | Sí | No |
Database | Sí | No | Sí | No |
DataDelete | Sí | No | Sí | Sí |
DataInsert | Sí | No | Sí | Sí |
DataUpdate | Sí | No | Sí | Sí |
Extract | Sí | Sí | Sí | Sí |
Mapping | Sí | Sí | Sí | Sí |
Warehouse | Sí | No | Sí | Sí |
Puede utilizar nodos que determinen el orden y el flujo de control en el flujo de mensajes de varias formas para tomar decisiones sobre cómo el flujo procesa los mensajes. También puede utilizar nodos (TimeoutControl y TimeoutNotification) que determinen la hora y la frecuencia de aparición de sucesos dentro del flujo de mensajes. El direccionamiento es independiente de la transformación de mensajes, aunque la ruta que toma un mensaje puede determinar con exactitud la transformación que se efectúa en el mismo.
Por ejemplo, una aplicación de transferencia de dinero siempre envía mensajes a otra aplicación. Puede decidir que cada mensaje con un valor de transferencia superior a los 10.000 euros también debe enviarse a una segunda aplicación, para que se registren todas las transacciones de gran valor.
En otro ejemplo, un club automovilístico nacional ofrece un servicio 'premier' a miembros específicos por pedidos superiores a un cierto valor. La mayor parte de los pedidos se direccionan a través de los canales habituales, pero si el número de miembro y el valor del pedido cumplen ciertos criterios, el pedido recibe un tratamiento especial.
También puede establecer una opción de direccionamiento más dinámica creando información adicional de direccionamiento en el mensaje cuando éste se procesa. Se establecen conjuntos de normas opcionales para recibir mensajes según los valores (destinos) establecidos en el mensaje. Puede establecer estas normas de forma que un mensaje sea procesado por uno o más conjuntos de normas opcionales, en el orden que determine el contenido añadido al mensaje.
Utilice los nodos siguientes para tomar decisiones sobre la dirección que toma un mensaje a través del flujo de mensajes:
El nodo Validate sustituye al nodo Check, que ya no se utiliza en WebSphere Message Broker Versión 6.0. El nodo Validate funciona del mismo modo que el nodo Check, pero tiene propiedades de validación adicionales que permiten que los analizadores validen el contenido de los mensajes que tengan soporte para dicha posibilidad.
Los terminales del nodo son True (verdadero), False (falso), Unknown (desconocido) y Failure (de anomalías); el mensaje se propaga al terminal verdadero si el resultado de la prueba es satisfactorio y al terminal falso, si no lo es. Si no se puede resolver la sentencia (por ejemplo, prueba el valor de un campo que no está en el mensaje de entrada), el mensaje se propaga al terminal desconocido. Si se detecta cualquier otro error, el mensaje se propaga al terminal de anomalías.
La prueba en la sentencia ESQL puede depender del contenido del mensaje, el contenido de la base de datos o una combinación de ambos.
Si hace referencia a una base de datos, puede controlar la forma en que este nodo accede a ella, especificando información de usuario y de contraseña para cada origen de datos definido en el registro en el sistema de intermediarios. Utilice el mandato mqsisetdbparms para inicializar y mantener estos valores.
Utilice preferentemente este nodo en vez del nodo Compute para permitir la selección y el direccionamiento de mensajes; el nodo Filter es más eficaz para esta tarea.
Se puede asociar más de un nodo TimeoutControl a cada nodo TimeoutNotification.
Utilice los nodos AggregateControl, AggregateReply y AggregateRequest para clasificar las peticiones y las respuestas correspondientes. Utilice estos nodos para generar varias peticiones en respuesta a un mensaje de entrada, para controlar y coordinar las respuestas que se reciben en respuesta a estas peticiones, y para combinar la información proporcionada por las respuestas para continuar el proceso.
Utilice los nodos siguientes para manejar e informar de los errores: