Présentation de l'utilitaire de préchargement client JPA

L'utilitaire de préchargement client JPA (Java Persistence API) charge des données dans les mappes de sauvegarde eXtreme Scale en utilisant une connexion client à ObjectGrid.

Cette fonction peut simplifier le chargement des mappes lorsque les requêtes à la base de données ne peuvent pas être partitionnées. Un programme de chargement, tel qu'un chargeur JPA peut également être utilisé et constitue la solution idéale lorsque les données peuvent être chargées en parallèle.

L'utilitaire de préchargement client JPA peut utiliser les implémentations OpenJPA ou Hibernate JPA pour charger ObjectGrid depuis une base de données. Etant donné que WebSphere eXtreme Scale n'interagit pas directement avec la base de données ou l'API JDBC (Java Database Connectivity), toutes les bases de données prises en charge par OpenJPA ou Hibernate peuvent être utilisées pour charger ObjectGrid.

Figure 1. Chargeur client qui utilise l'implémentation JPA pour charger ObjectGrid
chargeur client

Une application utilisateur fournit généralement au chargeur client un nom d'unité de persistance, un nom de classe entité et une requête JPA. Le chargeur client extrait le gestionnaire d'entités JPA en fonction du nom d'unité de persistance, utilise le gestionnaire d'entités pour interroger les données à partir de la base de données avec la classe entité et la requête JPA fournies et enfin, charge les données dans les mappes ObjectGrid réparties. Lorsque la requête implique des relations à plusieurs niveaux, vous pouvez optimiser les performances à l'aide d'une chaîne de requête personnalisée. Une mappe de propriétés de persistance peut éventuellement être spécifiée pour remplacer les propriétés de persistance configurées.

Un chargeur client peut charger des données selon deux modes différents, tel qu'illustré dans le tableau suivant :

Tableau 1. Modes du chargeur client
Mode Description
Préchargement Efface et charge toutes les entrées dans la mappe de sauvegarde. Si la mappe est une mappe d'entités, toutes les mappes d'entités connexes seront également effacées si l'option CascadeType.REMOVE d'ObjectGrid est activée.
Rechargement La requête JPA est exécutée sur ObjectGrid pour invalider toutes les entités de la mappe qui correspondent à la requête. Si la mappe est une mappe d'entités, toutes les mappes d'entités connexes seront également effacées si l'option CascadeType.INVALIDATE d'ObjectGrid est activée.

Dans tous les cas, une requête JPA est utilisée pour sélectionner et charger les entités voulues de la base de données et pour les stocker dans les mappes ObjectGrid. Si la mappe ObjectGrid n'est pas une mappe d'entités, les entités JPA seront détachées et stockées directement. Si la mappe ObjectGrid est une mappe d'entités, les entités JPA sont stockées en tant que tuples d'entités ObjectGrid. Vous pouvez spécifier une requête JPA ou utiliser la requête par défaut select o from EntityName o.

Pour plus d'informations sur la configuration de l'utilitaire de préchargement PJA client, voir les Développement des chargeurs JPA basés sur le client