WebSphere Message Broker, Versión 8.0.0.5 Sistemas operativos: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte la información sobre la última versión del producto en IBM Integration Bus, Versión 9.0

Integración de bases de datos basadas en sucesos

Utilice un nodo DatabaseInput para responder a sucesos en una base de datos. Por ejemplo, el intermediario puede mantener sincronizado un sistema externo con una base de datos enviando actualizaciones al sistema de destino siempre que se modifiquen datos en la base de datos.

La base de datos debe registrar el hecho de que los datos han cambiado en un almacén de sucesos, que normalmente es una tabla de base de datos. El almacén de sucesos no es lo mismo que los datos de aplicación. El diagrama siguiente muestra la interacción entre la base de datos, el almacén de sucesos y el intermediario.

Esta imagen se describe en el texto que figura a continuación.
  1. Una aplicación de base de datos cambia una tabla de base de datos.
  2. El sistema de gestión de bases de datos (DBMS) registra el cambio en el almacén de sucesos.
  3. El intermediario sondea el almacén de sucesos después del intervalo especificado en el valor de configuración Intervalo de sondeo.
  4. WebSphere Message Broker recupera los datos nuevos o cambiados y actualiza el almacén de sucesos, para que los datos se procesen una sola vez.
  5. WebSphere Message Broker procesa los datos y los presenta finalmente a la aplicación de destino, por ejemplo SAP, servicios web o CICS Transaction Server for z/OS. Los datos se pueden presentar en un formato lógico y físico diferente, si es necesario.

Implementación

Implementar este escenario implica los siguientes pasos:
  1. Configurar la base de datos para registrar sucesos.
  2. Determinar el formato en que el sistema de destino debe recibir los datos de estos nuevos sucesos.
  3. Configurar el intermediario para detectar estos sucesos utilizando el nodo DatabaseInput. Para configurar el nodo DatabaseInput, consulte Configuración de un nodo DatabaseInput.
  4. Configurar el resto del flujo de mensajes para presentar los datos al sistema de destino en el formato correcto.

El nodo DatabaseInput

El diagrama siguiente muestra cómo funciona el nodo DatabaseInput.

Cuando se inicia el proceso, ReadEvents comprueba el almacén de sucesos para ver si hay sucesos nuevos, que luego son utilizados por BuildMessage para crear el mensaje. Este mensaje se propaga al flujo de mensajes y luego EndEvent actualiza el almacén de sucesos para asegurar que el suceso no se pueda procesar de nuevo.

Cuando se inicia el proceso, ReadEvents comprueba el almacén de sucesos para ver si hay sucesos nuevos, que luego son utilizados por BuildMessage para crear el mensaje. Este mensaje se propaga al flujo de mensajes y luego EndEvent actualiza el almacén de sucesos para asegurar que el suceso no se pueda procesar de nuevo. Cuando todos los sucesos se han procesado, el intermediario llama a ReadEvents para recuperar todos los sucesos que se hayan añadido desde la comprobación anterior. Si el almacén de sucesos está vacío, el intermediario espera hasta que el intervalo de sondeo ha transcurrido, y luego llama de nuevo a ReadEvents. Para evitar la contención, la comprobación del almacén de sucesos es de una sola hebra.

Para cada suceso que lee ReadEvents, BuildMessage crea el mensaje que se propaga al flujo de mensajes. La creación del mensaje utiliza normalmente los datos de suceso para buscar datos en la tabla de aplicación. A continuación, los datos de la tabla de aplicación se utilizan para construir el mensaje. Cuando BuildMessage finaliza, el mensaje se propaga automáticamente al flujo de mensajes. Cuando el mensaje se propaga, el intermediario inicia cualquier nodo en sentido descendente que sea necesario para procesar el mensaje.

Una vez que el mensaje se ha propagado el flujo de mensajes, EndEvent actualiza el almacén de sucesos para asegurar que el suceso que se acaba de procesar no se pueda procesar de nuevo.

La operación detallada de ReadEvents, BuildMessage y EndEvent se controla mediante código ESQL. El nodo DatabaseInput contiene un módulo ESQL con código de ejemplo y comentarios, que debe modificar para adaptarlos a sus requisitos. Para obtener información sobre la modificación del ESQL, consulte Configuración de un nodo DatabaseInput.

Transacciones y escalamiento

Los procesos que realiza el nodo DatabaseInput se dividen en transacciones separadas. Se inicia una nueva transacción cuando se inicia ReadEvents. Cuando ReadEvents finaliza, esta transacción se confirma y nuevos sucesos se marcan para su proceso. Al confirmar esta transacción, se liberan todos los bloqueos impuestos en la base de datos mediante código ESQL que se ejecuta desde ReadEvents. A continuación, para cada suceso recibido por BuildMessage, se inicia una nueva transacción. Esta nueva transacción se confirma después de que EndEvent finalice.

Para escalar un nodo DatabaseInput para muchos sucesos, cambie la propiedad Instancias adicionales en el separador Instancias de su valor predeterminado 0 al número de instancias que necesita. Si va a utilizar instancias adicionales, la base de datos se debe configurar para que varias aplicaciones puedan leer diferentes filas de la tabla de aplicación al mismo tiempo. ReadEvents siempre se ejecuta en modalidad de una sola hebra para evitar contención en la base de datos, incluso si utiliza instancias adicionales. Para mejorar el rendimiento, ReadEvents puede leer varios sucesos cada vez que se ejecuta, y estos sucesos los pueden procesar al mismo tiempo varias instancias de BuildMessage. El almacén de sucesos debe tener una clave primaria, que ReadEvents utiliza para identificar los sucesos que se están procesando en ese momento. No es necesario que escriba el ESQL en ReadEvents para filtrar los sucesos que están siendo procesados actualmente por el flujo de mensajes.

Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Comentarios

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última actualización:
        
        Última actualización: 2015-02-28 17:01:01


Tema de conceptoTema de concepto | Versión 8.0.0.5 | bc34040_