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:
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.
PKEY | FIRSTNAME | LASTNAME | CCODE |
---|---|---|---|
cust1 | Joe | Bloggs | sales |
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.
El flujo de mensajes Adapter realiza el proceso siguiente:
El flujo de mensajes Adapter consta de los siguientes nodos:
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:
Las tablas de aplicación, desencadenantes y tabla de sucesos existentes permanecen sin cambios.
El flujo de mensajes MigratedAdapter es idéntico al flujo anterior, pero el nodo MQInput se sustituye por un nodo DatabaseInput equivalente:
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.
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.
É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.
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.
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.
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');
INSERT INTO ADAPTER_ADDRESS VALUES ('add1', 'MP211', 'IBM Hursley Park', 'SO21 2JN', 'Winchester', 'GB')
INSERT INTO ADAPTER_CUSTOMER VALUES ('cust1', 'Beloved', 'Customer', 'add1', 'GB')
INSERT INTO ADAPTER_INVOICE VALUES ('inv1', 'hats', 10, 'cust1')
UPDATE ADAPTER_CUSTOMER SET FIRSTNAME = 'Barney', LASTNAME = 'Rubble' WHERE PKEY='cust1';
DELETE FROM ADAPTER_ADDRESS WHERE PKEY='add01';
DELETE FROM ADAPTER_CUSTOMER WHERE PKEY='cust01';
DELETE FROM ADAPTER_INVOICE WHERE PKEY='inv1';