Programme de mise à jour de données JPA en fonction de la date/heure

Un programme de mise à jour de données JPA (Java Persistence API) en fonction de la date/heure met à jour les mappes ObjectGrid avec les dernières modifications apportées à la base de données.

Lorsque des modifications ont été apportées directement dans une base de données mise au premier plan par WebSphere eXtreme Scale, ces modifications ne sont pas reflétées simultanément dans la grille eXtreme Scale. Pour implémenter correctement eXtreme Scale en tant qu'espace de traitement de base de données en mémoire, prenez en compte le fait que votre grille peut être désynchronisée de la base de données. Le programme de mise à jour de base de données en fonction de la date/heure utilise la fonction SCN (System Change Number) disponible dans Oracle 10g et l'horodatage de modification de ligne de DB2 9.5 pour surveiller les modifications apportées à la base de données pour l'invalidation et la mise à jour. Le programme de mise à jour permet également aux applications de disposer d'une zone définie par l'utilisateur à cette même fin.

Figure 1. Actualisation régulière
Actualisation régulière

>Le programme de mise à jour de base de données en fonction de la date/heure interroge régulièrement la base de données à l'aide des interfaces JPA pour obtenir les entités JPA représentant les enregistrements nouvellement insérés et mis à jour dans la base de données. Pour mettre à jour régulièrement les enregistrements, chaque enregistrement de la base de données doit comporter un horodatage pour identifier l'heure ou la séquence de dernière insertion ou mise à jour de l'enregistrement. L'horodatage ne doit pas être nécessairement au format d'horodatage. La valeur d'horodatage peut se présenter au format long ou sous la forme d'un entier si elle génère une valeur unique croissante.

Plusieurs bases de données commerciales fournissent cette fonction.

Par exemple, dans DB2 9.5, vous pouvez définir une colonne avec le format ROW CHANGE TIMESTAMP comme suit :

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

Dans Oracle, vous pouvez utiliser la pseudo-colonne ora_rowscn, qui représente le numéro de modification système de l'enregistrement.

Le programme de mise à jour de base de données en fonction de la date/heure met à jour les mappes ObjectGrid de trois façons différentes :
  1. INVALIDATE_ONLY. Invalide les entrées dans la mappe ObjectGrid si les enregistrements correspondants de la base de données ont été modifiés.
  2. UPDATE_ONLY. Met à jour les entrées dans la mappe ObjectGrid si les enregistrements correspondants de la base de données ont été modifiés. Toutefois, tous les enregistrements nouvellement insérés dans la base de données sont ignorés.
  3. INSERT_UPDATE. Remplace les entrées existantes dans la mappe ObjectGrid par les dernières valeurs de la base de données. En outre, tous les enregistrements nouvellement insérés dans la base de données sont insérées dans la mappe ObjectGrid.

Pour plus d'informations sur la configuration du programme JPA de mise à jour des données basé sur le temps, voir les Configuration d'un programme de mise à jour de données JPA en fonction de la date/heure.