Actualizador de datos basado en la hora de JPA

Un actualizador de base de datos basado en la hora de JPA (Java Persistence API) actualiza las correlaciones de ObjectGrid con los últimos cambios de la base de datos.

Cuando los cambios se realizan directamente en una base de datos que es atendida por WebSphere eXtreme Scale, estos cambios no se reflejan de forma simultánea en la cuadrícula de eXtreme Scale. Para implementar correctamente eXtreme Scale como un espacio de proceso de base de datos en memoria, tenga en cuenta que la cuadrícula puede perder la sincronización con la base de datos. El actualizador de base de datos basado en la hora utiliza la capacidad SCN (System Change Number) en Oracle 10g la indicación de fecha y hora de cambio de fila en DB2 9.5 para supervisar los cambios en la base de datos para la invalidación y la actualización. El actualizador también permite a las aplicaciones tener un campo definido por el usuario con el mismo propósito.

Figura 1. Renovación periódica
Renovación periódica

El actualizador de la base de datos basado en la hora consulta periódicamente la base de datos utilizando interfaces JPA para obtener las entidades JPA que representan los registros recién insertados y actualizados en la base de datos. Para actualizar de forma periódica los registros, cada registro de la base de datos debe tener una indicación de fecha y hora para identificar la hora o secuencia en la que se actualizó o insertó el registro por última vez. No es necesarios que la indicación de fecha y hora esté en un formato de indicación de fecha y hora. El valor de indicación de fecha y hora puede ser tener un formato de entero o largo, si genera un valor único creciente.

Esta prestación la proporcionan varias bases de datos comerciales.

Por ejemplo, en DB2 9.5, puede definir una columna utilizando el formato ROW CHANGE TIMESTAMP del modo siguiente:

ROWCHGTS TIMESTAMP NOT NULL
      GENERATED ALWAYS
      FOR EACH ROW ON UPDATE AS
      ROW CHANGE TIMESTAMP

En Oracle, puede utilizar la pseudo-columna ora_rowscn, que representa el número de cambio de sistema del registro.

El actualizador de base de datos basado en la hora actualiza las correlaciones ObjectGrid de tres maneras diferentes:
  1. INVALIDATE_ONLY. Invalida las entradas de la correlación ObjectGrid si han cambiado los registros correspondientes de la base de datos.
  2. UPDATE_ONLY. Actualiza las entradas de la correlación ObjectGrid si han cambiado los registros correspondientes de la base de datos. Sin embargo, todos los registros recién insertados en la base de datos se ignoran.
  3. INSERT_UPDATE. Actualiza las entradas existentes en la correlación ObjectGrid con los valores más recientes de la base de datos. Además, todos los registros recién insertados en la base de datos se insertan en la correlación de ObjectGrid.

Si desea más información sobre cómo configurar el actualizador de datos basado en tiempo de JPA, consulte Configuración de un actualizador de datos basado en la hora de JPA.