Una tabla de sucesos almacena información sobre los cambios en las tablas de la aplicación.
La tabla de sucesos es una tabla de base de datos creada por el usuario, normalmente dentro del mismo esquema que la tabla de aplicación para la cual almacena sucesos. La tabla de sucesos describe el tipo de cambio realizado en una tabla de la aplicación y también contiene un identificador para la fila cambiada.
Para llenar una tabla de sucesos, debe crear uno o más desencadenantes. Un desencadenante es una construcción de la base de datos que puede ejecutar un script SQL cuando se produce una acción predefinida. Por ejemplo, un desencadenante puede insertar una fila en la tabla de sucesos cuando una actualización en la tabla de aplicación se produce.
Para obtener ejemplos de desencadenantes y tablas de sucesos, consulte el ejemplo de Nodo DatabaseInput. Puede ver información sobre los ejemplos sólo cuando utilice el Information Center que está integrado en WebSphere Message Broker Toolkit o el Information Center en línea. Puede ejecutar ejemplos sólo cuando utilice el Information Center que está integrado en WebSphere Message Broker Toolkit.
En la tabla siguiente se muestran algunas columnas típicas en una tabla de sucesos y las razones por las que se incluyen.
Nombre de columna | La función de columna | Valor de ejemplo |
---|---|---|
EVENT_ID | Necesario. La clave primaria, que identifica el suceso que se está procesando. | 1 |
OBJECT_KEY | Necesario. El elemento de identificación de la fila cambiada en la tabla de aplicación, normalmente el elemento de la fila en la columna de clave primaria. | cust1 |
OBJECT_VERB | Opcional. El cambio realizado, normalmente CREATE, UPDATE, o DELETE. Este suceso se utiliza para distinguir un suceso DELETE, donde la tabla de aplicación no contiene ninguna fila a recuperar cuando el mensaje para el flujo se crea. | CREATE |
OBJECT_NAME | Opcional. El nombre de la tabla de aplicación que ha cambiado. Esta columna es necesaria si el nodo DatabaseInput se utiliza para soportar actualizaciones en más de una tabla de la aplicación. | customer |
EVENT_PRIORITY | Opcional. La prioridad del suceso. Por ejemplo, puede asegurarse de que las transacciones de alto valor se calculan por primera vez. | 1 |
EVENT_TIME | Opcional. La hora en que la operación se ha realizado. Normalmente se utiliza para la supervisión del registro o del rendimiento del flujo. | 2010-10-19T17:10:00 |
EVENT_STATUS | Opcional. Se utiliza para determinar si el suceso ya se ha procesado. Es necesario si los sucesos no se van a suprimir o si se archivan después del proceso. | 0 |
EVENT_COMMENT | Opcional. Campo de formulario libre, por ejemplo, se puede utilizar para almacenar el resultado del proceso de mensajes si el suceso no se ha suprimido después del proceso. | Procesado con excepciones |
Los nombres de columnas sólo son ejemplos. Puede utilizar otros nombres. Si tiene una tabla de aplicaciones de alto rendimiento, una sola fila puede cambiarse varias veces entre recuperaciones de sucesos de la tabla de sucesos. En este caso, el flujo sólo recoge los detalles de la última modificación. Si se necesita un registro de cambios intermedios, incluya información más detallada en la tabla de sucesos. Asegúrese también de que la tabla de sucesos tiene suficiente información sobre sucesos generados por las operaciones DELETE. Aquí, ya que la fila de la tabla de aplicaciones ya no existe, toda la información necesaria para procesar satisfactoriamente el suceso debe estar presente en la tabla de sucesos.
Por ejemplo, si se crea un cliente nuevo con clave primaria cust1 en la tabla de aplicación, se añade una fila en la tabla de sucesos:
EVENT_ID | OBJECT_KEY | OBJECT_VERB |
---|---|---|
1 | cust1 | Crear |
El nodo DatabaseInput responde a los cambios y procesa la nueva fila en un flujo de mensajes.
Cuando el flujo de mensajes ha procesado un suceso, el flujo puede manejar el suceso de la siguiente manera: