WebSphere Business Integration Message Broker incluye muchos nodos de proceso de mensajes que se pueden utilizar en los flujos de mensajes. También proporciona una interfaz que puede utilizar para definir sus propios nodos, denominados nodos definidos por el usuario.
Su decisión sobre los nodos que va a utilizar depende del proceso que realice en los mensajes. Los nodos incorporados se pueden dividir en varias categorías y se muestran en el área de trabajo agrupados por categorías (aunque esta agrupación no afecta a su funcionamiento). Los nodos definidos por el usuario también se pueden dividir en categorías. Las categorías son las siguientes:
Una instancia del nodo Input representa un terminal de entrada. Por ejemplo, si incluye 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.
El nodo UDPSend es un ejemplo de trabajo de un nodo definido por el usuario que proporciona esta función.
Una instancia del nodo Output representa un terminal 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 del mismo modo que conecta cualquier otro nodo.
Muchas empresas tienen aplicaciones que se han ido desarrollando a lo largo de varios años en sistemas diferentes, utilizando distintos lenguajes de programación y diferentes métodos de comunicación. Con WebSphere Business Integration Message Broker ya no es necesario que las aplicaciones comprendan estas diferencias, puesto que ofrece la posibilidad de configurar flujos de mensajes que transforman mensajes de un formato a otro.
Por ejemplo, los nombres del personal se mantienen en varios formatos en aplicaciones diferentes. El apellido en primer lugar o en último, con o sin las iniciales del nombre, en mayúsculas o en minúsculas: éstos son sólo algunos cambios. Puesto que puede configurar el flujo de mensajes de modo que conozca los requisitos de cada aplicación, cada mensaje se puede transformar al formato correcto sin modificar los aplicaciones de envío o de recepción.
Puede trabajar con el contenido del mensaje para actualizarlo de varios modos. Sus opciones pueden variar en función de si el mensaje debe manejar mensajes predefinidos (modelados) o mensajes autodefinidos (por ejemplo, XML), o ambos.
Un flujo de mensajes puede reconstruir completamente un mensaje, convertirlo de un formato a otro (si format significa orden de campos, orden de bytes o idioma, entre otros) eliminar contenido del mensaje o entrar datos específicos en el mismo. Por ejemplo, un nodo puede interactuar con una base de datos para recuperar información adicional o para almacenar una copia del mensaje (completo o una parte de éste) en la base de datos para el proceso fuera de línea.
En los ejemplos siguientes se muestra la importancia de la transformación de los mensajes:
También puede crear flujos de mensajes que interactúen entre sí utilizando estos nodos. Aunque el funcionamiento por omisión de un flujo de mensajes no influye en el funcionamiento de otro flujo de mensajes, puede forzarlo si configura los flujos de mensajes para almacenar y recuperar información de un origen externo 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 que deben llevarse a cabo en relación al mensaje o la base de datos. El código ESQL que desarrolla para utilizarlo en el nodo Compute no se debe usar en ningún otro tipo de nodo.
Puede controlar el modo de acceso de este nodo a la base de datos especificando la información de usuario y contraseña para el origen de datos que se especifica en la propiedad del nodo. En sistemas distribuidos, utilice el mandato mqsisetdbparms para inicializar y mantener estos valores.
En z/OS, utilice el ID de tarea iniciada del intermediario para acceder a la base de datos.
Si los requisitos de manipulación de mensajes son complejos, deben completarse dentro de un único nodo Compute. Algunos pocos nodos Compute más complejos se ejecutan mejor que muchos nodos más sencillos, puesto que el intermediario analiza el mensaje cuando entra en cada nodo Compute.
Puede controlar el modo de acceso de este nodo a la base de datos especificando la información de usuario y de contraseña para el origen de datos que se especifica en la propiedad del nodo. En sistemas distribuidos, utilice el mandato mqsisetdbparms para inicializar y mantener estos valores.
En z/OS, utilice el ID de tarea iniciada del intermediario para acceder a la base de datos.
Utilizando el editor de correlaciones, puede desarrollar correlaciones para realizar manipulaciones sencillas en mensajes predefinidos en el nodo Mapping. Las correlaciones que se desarrollan para utilizarlas en un nodo Mapping no se deben usar en ningún otro nodo.
Utilizando el editor de correlaciones, puede desarrollar correlaciones para realizar manipulaciones sencillas en mensajes predefinidos en el nodo Extract. Las correlaciones que se desarrollan para utilizarlas en un nodo Extract no se deben usar en ningún otro nodo.
Este nodo proporciona una interfaz sumamente flexible con una gran variedad de funciones. También tiene propiedades que se pueden utilizar para controlar el modo en el que la interacción participa en las transacciones.
Puede controlar el modo de acceso de este nodo a la base de datos especificando la información de usuario y contraseña para el origen de datos que se especifica en la propiedad del nodo. En sistemas distribuidos, utilice el mandato mqsisetdbparms para inicializar y mantener estos valores.
En z/OS, utilice el ID de tarea iniciada del intermediario para acceder a la base de datos.
Sólo puede actualizar una base de datos desde este nodo; no puede actualizar el contenido de ningún mensaje. Si desea actualizar el contenido de los mensajes, utilice el nodo Compute o el nodo Mapping.
Puede controlar el modo de acceso de estos nodos a la base de datos especificando la información de usuario y contraseña para el origen de datos que se especifica en la propiedad del nodo. En sistemas distribuidos, utilice el mandato mqsisetdbparms para inicializar y mantener estos valores.
En z/OS, utilice el ID de tarea iniciada del intermediario para acceder a la base de datos.
Sólo puede actualizar bases de datos desde este nodos: no puede actualizar el contenido de ningún mensaje. Si desea actualizar el contenido de los mensajes, utilice el nodo Compute o el nodo Mapping.
Puede controlar el modo de acceso de este nodo a una base de datos especificando la información de usuario y contraseña para el origen de datos que se especifica en la propiedad del nodo. En sistemas distribuidos, utilice el mandato mqsisetdbparms para inicializar y mantener estos valores.
En z/OS, utilice el ID de tarea iniciada del intermediario para acceder a la base de datos.
Sólo puede actualizar una base de datos desde este nodo; no puede actualizar el contenido de ningún mensaje. Si desea actualizar el contenido de los mensajes, utilice el nodo Compute o el nodo Mapping.
Puede controlar el modo de acceso de este nodo a la base de datos especificando la información de usuario y contraseña para el origen de datos que se especifica en la propiedad del nodo. En sistemas distribuidos, utilice el mandato mqsisetdbparms para inicializar y mantener estos valores.
En z/OS, utilice el ID de tarea iniciada del intermediario para acceder a la base de datos.
En la tabla siguiente se resume qué se puede actualizar en estos nodos.
Nodo | ¿Actualizar la base de datos? | ¿Actualizar el mensaje? | ¿Actualizar el entorno local? | ¿Se necesita 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 del proceso y el flujo de control dentro del flujo de mensajes utilizando varios procedimientos para la toma de decisiones relacionados con el modo en que el flujo debe procesar los mensajes. El direccionamiento es independiente de la transformación de mensajes, aunque el direccionamiento que sigue un mensaje puede determinar exactamente la transformación que se lleva a cabo en el mismo.
Por ejemplo, una aplicación de transferencia de dinero siempre envía mensajes a otra aplicación. Es posible que decida que cada mensaje con un valor de transferencia de más de 10.000 dólares se debe enviar a una segunda aplicación, a fin de permitir el registro de todas las transacciones de cantidades elevadas.
En otro ejemplo, un club de vehículos nacionales ofrece un servicio especial para miembros específicos cuyos pedidos se sitúen por encima del valor de umbral. 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 determinados criterios, el pedido obtiene un trato especial.
También puede establecer una opción de direccionamiento más dinámica al crear información de direccionamiento adicional en el mensaje cuando se procesa. Se establecen conjuntos de normas opcionales para recibir mensajes en función de los valores (destinos) establecidos en el mensaje. Puede establecer normas como, por ejemplo, que uno o más conjuntos de normas opcionales procesen un mensaje en un orden que determine el contenido añadido al mensaje.
Utilice los nodos siguientes para tomar decisiones acerca del direccionamiento que sigue un mensaje a través del flujo de mensajes:
Los terminales del nodo son verdadero (true), falso (false), desconocido (unknown) y anomalía (failure); el mensaje se propaga al terminal verdadero si la prueba se ejecuta correctamente y al terminal falso si da error. Si la sentencia no se puede resolver (por ejemplo, si prueba el valor de un campo que no aparece 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 de la sentencia ESQL puede variar en función 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 el modo de acceso de este nodo a la base de datos especificando la información de base de datos y contraseña para cada origen de datos definido en el registro del sistema del intermediario. En sistemas distribuidos, utilice el mandato mqsisetdbparms para inicializar y mantener estos valores.
En z/OS, utilice el ID de tarea iniciada del intermediario para acceder a la base de datos.
Utilice, preferentemente, este nodo al nodo Compute para disponer de esta función; aunque puede configurar el nodo Compute para controlar la selección y el direccionamiento de mensajes, el funcionamiento del nodo Filter es mejor.
Puede colacionar peticiones y respuestas relacionadas utilizando los nodos AggregateControl, AggregateReply y AggregateRequest. Utilice estos nodos para generar varias peticiones como respuesta a un mensaje de entrada, para controlar y coordinar los respuestas que se reciban como respuesta a estas peticiones y para combinar la información que proporcionan las respuestas para continuar el proceso.
Puede utilizar nodos que influyan en el manejo e informe de errores:
Excepto para los nodos Compute, Extract y Mapping, los mensajes de entrada que recibe un nodo y el mensaje de salida que envía el nodo son idénticos.
Conceptos relacionados
Flujos de mensajes
Soporte para aplicaciones de usuario final
Árbol LocalEnvironment
Tareas relacionadas
Configuración de DB2
Diseño de un flujo de mensajes
Acceso a bases de datos desde flujos de mensajes
Creación de un flujo de mensajes
Definición del contenido del flujo de mensajes
Utilización de nodos para la toma de decisiones
Difusión de aplicaciones de flujos de mensajes
Referencia relacionada
Mandato mqsisetdbparms
Nodos incorporados
Soporte de aplicaciones de usuario final
Avisos |
Marcas registradas |
Descargas |
Biblioteca |
Soporte |
Información de retorno (feedback)
![]() ![]() |
ac00330_ |