Zeitbasierte JPA-Datenaktualisierungskomponente

Eine zeitbasierte JPA-Datenbankaktualisierungskomponente (Java Persistence API) aktualisiert die ObjectGrid-Maps mit den letzten Änderungen, die in der Datenbank vorgenommen wurden.

Wenn Änderungen direkt in einer Datenbank mit WebSphere eXtreme Scale als Front-End vorgenommen werden, werden diese Änderungen nicht gleichzeitig im eXtreme-Scale-Grid widergespiegelt. Für eine ordnungsgemäße Implementierung von eXtreme Scale als speicherinterner Datenbankverarbeitungsbereich müssen Sie berücksichtigen, dass es vorkommen kann, dass Ihr Grid nicht synchron mit der Datenbank ist. Die zeitbasierte Datenbankaktualisierungskomponente verwendet die SCN-Funktion (System Change Number) in Oracle 10g und das Format ROW CHANGE TIMESTAMP (Zeitmarke für Zeilenänderung) in DB2 9.5, um Änderungen in der Datenbank im Hinblick ungültige und aktualisierte Einträge zu überwachen. Die Aktualisierungskomponente ermöglicht Anwendungen auch die Verwendung eines benutzerdefinierten Felds für denselben Zweck.

Abbildung 1. Regelmäßige Aktualisierung
Regelmäßige Aktualisierung

Die zeitbasierte Datenbankaktualisierungskomponente fragt die Datenbank regelmäßig über JPA-Schnittstellen ab, um die JPA-Entitäten zu ermitteln, die die neu eingefügten oder aktualisierten Datensätze in der Datenbank darstellen. Um die Datensätze regelmäßig aktualisieren zu können, muss jeder Datensatz in der Datenbank eine Zeitmarke haben, die angibt, wann bzw. in welcher Folge der Datensatz zuletzt aktualisiert bzw. eingefügt wurde. Es ist nicht erforderlich, dass die Zeitmarke ein Zeitmarkenformat hat. Der Zeitmarkenwert kann eine ganze Zahl sein oder ein ausführliches Format haben, solange ein eindeutiger zunehmender Wert generiert wird.

Diese Funktionalität wird von mehreren kostenpflichtigen Datenbanken bereitgestellt.

In DB2 9.5 können Sie beispielsweise eine Spalte mit dem ROW CHANGE TIMESTAMP wie folgt definieren:

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

In Oracle können Sie die Pseudospalte ora_rowscn verwenden, die die SCN (System Change Number, Systemänderungsnummer) des Datensatzes darstellt.

Die zeitbasierte Datenbankaktualisierungskomponente aktualisiert die ObjectGrid-Maps auf drei verschiedene Arten:
  1. INVALIDATE_ONLY. Die Einträge in der ObjectGrid-Map werden nur ungültig gemacht, wenn die entsprechenden Datensätze in der Datenbank geändert wurden.
  2. UPDATE_ONLY. Die Einträge in der ObjectGrid-Map werden aktualisiert, wenn die entsprechenden Datensätze in der Datenbank geändert wurden. Alle neu in die Datenbank eingefügten Datensätze werden jedoch ignoriert.
  3. INSERT_UPDATE. Die vorhandenen Einträge in der ObjectGrid-Map werden mit den aktuellen Werten aus der Datenbank aktualisiert. Außerdem werden alle neu in die Datenbank eingefügten Datensätze in die ObjectGrid-Map eingefügt.

Weitere Einzelheiten zum Konfigurieren der zeitbasierten JPA-Datenaktualisierungskomponente finden Sie in Zeitbasierte JPA-Aktualisierungskomponente konfigurieren.