Consulte el tema de concepto sobre nodos de flujos de mensajes.
WebSphere Message Broker incluye un gran número de nodos de proceso de mensajes que puede utilizar dentro de los flujos de mensajes. 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. Los nodos incorporados pueden considerarse en varias categorías y se muestran en el entorno de trabajo agrupados en estas categorías (aunque este agrupamiento no tenga ningún efecto en su funcionamiento). También puede clasificar los nodos definidos por el usuario de la misma manera. Las categorías son:
La utilización de flujos de mensajes que contienen nodos MQeInput en WebSphere
Message Broker Versión
6.0 está desfasada. 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 de un nodo de entrada representa un terminal de entrada. Por ejemplo, si ha incluido una instancia del nodo de entrada, el icono de subflujo muestra un terminal de entrada que puede conectar a otros nodos en el flujo principal, de la misma manera que conecta cualquier otro nodo.
Sólo puede desplegar flujos de mensajes que tengan, como mínimo, un nodo de entrada. Si su flujo de mensajes no contiene un nodo de entrada, no podrá añadirlo al archivo archivador 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 flujos de mensajes que contienen nodos MQeOutput en WebSphere
Message Broker Versión
6.0 está desfasada. 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 de salida representa un terminal de salida. Por ejemplo, si ha incluido dos instancias del nodo de salida, el icono de subflujo muestra dos terminales de salida que puede conectar a otros nodos en el 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 porque 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) o 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 el 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.
Los ejemplos siguientes muestran la importancia que puede tener la transformación de mensajes:
También puede crear flujos de mensajes que interactúan con otros utilizando estos nodos. Aunque el funcionamiento por omisión de un flujo de mensajes no afecta el funcionamiento de otro flujo de mensajes, puede forzar esto 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 contenga las sentencias que definen las acciones 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 utilizar 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.
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 de mensajes son complejos, complételos dentro de un solo nodo Compute. El rendimiento es mayor si hay pocos nodos Compute 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.
Utilizando un editor de correlaciones, puede desarrollar correlaciones para efectuar manipulaciones sencillas en mensajes predefinidos en el nodo Mapping. No utilice en ningún otro tipo de nodo las correlaciones que desarrolle para utilizar en un nodo Mapping.
Utilizando un editor de correlaciones, puede desarrollar correlaciones para efectuar manipulaciones sencillas en mensajes predefinidos en el nodo Extract. No utilice en ningún otro tipo de nodo las correlaciones que desarrolle para utilizar 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 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.
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.
Si desea transformar un mensaje XML de entrada a otro formato utilizando hojas de estilo XMLT, utilice el nodo XMLTransformation. Es imperativo que los datos se puedan analizar en un mensaje XML. El resultado de la transformación es salida en forma de mensaje BLOB. La hoja de estilo, utilizando las normas definidas en ella, puede clasificar los datos, seleccionar elementos de datos para incluirlos o excluirlos basándose en algunos criterios y transformar los datos en algún otro formato de datos.
El motor de transformación Xalan-Java (Procesador XSLT Xalan-java Apache) se utiliza como motor de transformación subyacente. Para obtener información detallada sobre XMLT, 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.
Se puede utilizar el nodo JMSMQTransform para enviar mensajes a flujos de mensajes heredados y para interoperar con JMS de WebSphere MQ y la publicación/suscripción de WebSphere Message Broker.
Se puede utilizar el nodo MQJMSTransform para enviar mensajes a los flujos de mensajes heredados y para interoperar con JMS de WebSphere MQ y la publicación/suscripción de WebSphere Message Broker.
Utilice el nodo MQOptimizedFlow para sustituir un flujo de mensajes de publicación/suscripción que consta de un nodo MQInput conectado a un nodo Publication y que utiliza el transporte JMS sobre WebSphere MQ. El nodo MQOptimizedFlow no se puede utilizar en sistemas z/OS.
Utilice el nodo MQOptimizedFlow para mejorar el rendimiento, especialmente donde un solo publicador produzca una publicación persistente para un solo suscriptor.
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.
La tabla siguiente resume lo que puede actualizar en estos nodos.
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 determinan la hora y la frecuencia de aparición de los sucesos en el 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 normales, 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 el nodo Check que está desfasado en WebSphere Message Broker Versión 6.0 y en los releases subsiguientes. El nodo Validate funciona del mismo modo que el nodo Check, pero tiene propiedades de validación adicionales, que permiten que los analizadores que soportan esta posibilidad validen el contenido del mensaje.
Los terminales del nodo son verdadero, falso, desconocido y anomalía; el mensaje se propaga al terminal verdadero si el resultado de la prueba es satisfactoria y al terminal de error, si no lo es. Si no se puede resolver la sentencia (por ejemplo, si se prueba el valor de un campo que no aparece en el mensaje de entrada), el mensaje se propaga al terminal desconocido. Si se desea 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. En sistemas distribuidos, utilice el mandato mqsisetdbparms para inicializar y mantener estos valores.
En z/OS, utilice el ID de tarea iniciado por el intermediario para acceder a la base de datos.
Es aconsejable utilizar este nodo en lugar del nodo Compute para proporcionar esta función; aunque puede configurar el nodo Compute para controlar la selección y el direccionamiento de los mensajes, el rendimiento es superior si utiliza el nodo Filter.
Es posible que desee que un trabajo de proceso por lotes se ejecute cada día a una hora específica o puede que desee que la información se procese y publique a intervalos fijos (por ejemplo, los tipos de cambio de moneda se calculan y se envían a los bancos) o es posible que desee realizar una acción de recuperación especificada si determinadas acciones no se completan en un tiempo definido. Para todos estos casos se proporcionan dos nodos de tiempo de espera (TimeoutControl y TimeoutNotification).
Se puede asociar más de un nodo TimeoutControl con cada nodo TimeoutNotification.
Puede clasificar peticiones y respuestas relacionadas utilizando los nodos AggregateControl, AggregateReply y AggregateRequest. Utilice estos nodos para generar varias peticiones en respuesta a un mensaje de entrada, y 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.
Puede utilizar nodos relacionados con el manejo e informe de errores:
Con la excepción de los nodos Compute, Extract y Mapping, el mensaje de entrada que recibe un nodo y el mensaje de salida que envía son idénticos.