Acerca del ejemplo de Migración de adaptador WBI JDBC

Puede utilizar el nodo DatabaseInput para migrar los flujos de mensajes del uso de adaptadores WBI JDBC y acometer las actualizaciones de base de datos. Esto le permite adaptarse a toda la complejidad de WebSphere Message Broker. Un flujo de mensajes que utiliza un adaptador WBI JDBC normalmente es invocado por un nodo MQInput, configurado para aceptar datos de una cola rellenada por un conector JDBC con un objeto de negocio interpretado por un conjunto de mensajes:

Estructura de un despliegue de adaptador WBI JDBC

Cuando se realiza un cambio en la base de datos (INSERT, UPDATE o DELETE), se activa un desencadenante y se inserta una fila que describe el cambio en la tabla de sucesos. Este ejemplo inserta filas en una tabla de cliente.

La siguiente figura muestra la secuencia de sucesos en un escenario con un despliegue de adaptador WBI JDBC. Cuando se introduce un cambio en la tabla de datos de la aplicación, se activa un desencadenante y la tabla de sucesos se rellena con suficiente información para determinar qué filas han cambiado.

Tabla de aplicación

PKEY FIRSTNAME LASTNAME CCODE
cust1 Joe Bloggs sales

Tabla de sucesos

EVENT_ID CONNECTOR_ID OBJECT_KEY OBJECT_NAME OBJECT_VERB EVENT_PRIORITY EVENT_TIME EVENT_STATUS EVENT_COMMENT
1 JDBCCustomerConnector cust1 customer Create 1 2010-08-02 13:54:16843 0 NULL

Se crea un cliente nuevo con la clave primaria cust1 y JDBCCustomerConnector está diseñado para manejar el suceso. El manejador de datos para el conector lee esta fila del suceso y crea un objeto comercial de la fila correspondiente en la tabla de aplicación. Este objeto de negocio se coloca en una cola de WebSphere MQ, preparada para su recuperación por el nodo MQInput.

Los detalles del flujo de mensajes y el proceso que realiza aparecen en las siguientes secciones.

Flujo de mensajes Adapter

El flujo de mensajes Adapter realiza el proceso siguiente:

  1. Lee un mensaje de WebSphere MQ que contiene una carga útil XML generada por un adaptador WBI JDBC. La carga útil contiene el objeto de negocio que hay que procesar.
  2. Decide cómo procesar el mensaje, en función de un segmento de la cabecera RFH2.
  3. Direcciona el mensaje a la parte correcta del flujo.
  4. Envía un mensaje de WebSphere MQ a una cola de salida para continuar su proceso.
  5. Procesa posibles errores registrando el mensaje y las excepciones en una cola de anomalías.

El flujo de mensajes Adapter consta de los siguientes nodos:

Una captura del flujo de mensajes Adapter.

El nodo MQInput lee el objeto de negocio entrante en el dominio MRM. Este objeto se correlaciona con un mensaje de salida y se coloca en otra cola. Un mensaje de prueba se pueden utilizar para simular un Adaptador JDBC colocando un mensaje.

Los formatos del mensaje de entrada están en el proyecto Mensajes de entrada AdapterMigration. Estos formatos se han generado a partir de archivos XSD creados por el diseñador de objetos de negocio de adaptador WBI.

A continuación, el flujo se modifica deteniendo el adaptador, eliminando el nodo MQInput y añadiendo un nodo DatabaseInput; mediante ingeniería ESQL, cuidadosamente, el mensaje de salida es idéntico al nodo MQInput anterior dirigido por el adaptador. Este cambio hace que la interacción global más sencilla:

Estructura de un despliegue de nodo DatabaseInput

Las tablas de aplicación, desencadenantes y tabla de sucesos existentes permanecen sin cambios.

Flujo de mensajes MigratedAdapter

El flujo de mensajes MigratedAdapter es idéntico al flujo anterior, pero el nodo MQInput se sustituye por un nodo DatabaseInput equivalente:

Una captura de pantalla del flujo de mensajes MigratedAdapter.

Mensajes y scripts de prueba

En este ejemplo hay 12 mensajes y scripts disponibles:
Tenga en cuenta que los scripts sql de inserción deben ejecutarse antes que los scripts de actualización o supresión, y que las filas de dirección y cliente deben añadirse antes que las facturas para evitar claves fallidas.

  1. Un mensaje que emula un manejador de adaptador de datos colocando un mensaje en una cola para una factura actualizada
  2. Un mensaje que emula un manejador de adaptador de datos colocando un mensaje en una cola para un cliente actualizado
  3. Un mensaje que emula un manejador de adaptador de datos colocando un mensaje en una cola para una dirección actualizada
  4. Un mensaje que emula un manejador de adaptador de datos colocando un mensaje en una cola para una factura suprimida
  5. Un script SQL para insertar una fila en la tabla de aplicación de dirección, cliente y factura
  6. Un script SQL para insertar una fila en la tabla de aplicación de dirección
  7. Un script SQL para insertar una fila en la tabla de aplicación de cliente
  8. Un script SQL para insertar una fila en la tabla de aplicación de factura
  9. Un script SQL para actualizar una fila en la tabla de aplicación de cliente
  10. Un script SQL para suprimir una fila en la tabla de aplicación de factura
  11. Un script SQL para suprimir una fila en la tabla de aplicación de cliente
  12. Un script SQL para suprimir una fila en la tabla de aplicación de dirección

Mensaje de factura de adaptador

Este es un mensaje del cliente de prueba de Message Broker que contiene las cabeceras y XML de un mensaje WBI JDBC para una Factura actualizada. Contiene sub-elementos de tablas de aplicación enlazadas Cliente y Dirección. Las cabeceras RFH2 especifican que el mensaje es del tipo ADAPTERINVOICE.

Mensaje de cliente de adaptador

Éste es un mensaje de cliente de prueba de Message Broker que contiene el XML y las cabeceras de un mensaje WBI JDBC para un Cliente actualizado. Contiene subelementos de tablas de aplicación enlazadas Address. Las cabeceras RFH2 especifican que el mensaje es del tipo ADAPTERCUSTOMER.

Mensaje de dirección de adaptador

Este es un mensaje del cliente de prueba de Message Broker que contiene las cabeceras y XML de un mensaje WBI JDBC para una Dirección actualizada. Las cabeceras RFH2 especifican que el mensaje es del tipo ADAPTERADDRESS.

Suprimir factura de adaptador

Este es un mensaje del cliente de prueba de Message Broker que contiene las cabeceras y XML de un mensaje WBI JDBC para una Factura suprimida. Las cabeceras RFH2 especifican que el mensaje es del tipo ADAPTERINVOICE.

Script SQL insertar todo de adaptador

INSERT INTO ADAPTER_ADDRESS
  VALUES ('add0', '301', 'Cobblestone Way', '1', 'Bedrock', 'Rock');

INSERT INTO ADAPTER_CUSTOMER
  VALUES ('cust0', 'Fred', 'Flintstone', 'add0', 'Dev');
  
INSERT INTO ADAPTER_INVOICE 
  VALUES ('inv0', 'Paper', 300, 'cust0');

Script SQL insertar dirección de adaptador

INSERT INTO ADAPTER_ADDRESS
  VALUES ('add1', 'MP211', 'IBM Hursley Park', 'SO21 2JN', 'Winchester', 'GB')

Script SQL insertar cliente de adaptador

INSERT INTO ADAPTER_CUSTOMER
  VALUES ('cust1', 'Beloved', 'Customer', 'add1', 'GB')

Script SQL insertar factura de adaptador

INSERT INTO ADAPTER_INVOICE
  VALUES ('inv1', 'hats', 10, 'cust1')

Script SQL actualizar cliente de adaptador

UPDATE ADAPTER_CUSTOMER SET FIRSTNAME = 'Barney', LASTNAME = 'Rubble' WHERE PKEY='cust1';

Script SQL suprimir dirección de adaptador

DELETE FROM ADAPTER_ADDRESS WHERE PKEY='add01';

Script SQL suprimir cliente de adaptador

DELETE FROM ADAPTER_CUSTOMER WHERE PKEY='cust01';

Script SQL suprimir factura de adaptador

DELETE FROM ADAPTER_INVOICE WHERE PKEY='inv1';

Volver a la página inicial del ejemplo