Exemple : appel d'un chargeur de client

Vous pouvez utiliser la méthode de préchargement dans l'interface Loader pour appeler un chargeur de client.

Utilisez la méthode de préchargement dans l'interface Loader pour appeler un chargeur de client :
void preloadMap(Session session, BackingMap backingMap) throws LoaderException;

Cette méthode indique au chargeur de précharger les données dans la mappe. Une implémentation de chargeur peut utiliser un chargeur client pour précharger les données dans toutes ses partitions. Par exemple, le chargeur JPA utilise le chargeur client pour précharger les données dans la mappe. Pour plus d'informations, voir Présentation de l'utilitaire de préchargement client JPA.

Exemple : appel d'un chargeur de client avec la méthode preloadMap

Vous trouverez ci-après un exemple de préchargement de la mappe à l'aide du chargeur du client dans la méthode preloadMap. L'exemple vérifie d'abord si le numéro de partition actuel est identique à celui de la partition de préchargement. S'il ne l'est pas, aucune action n'est effectuée. Si les numéros des partitions correspondent, le chargeur du client est appelé pour charger les données dans les mappes. Vous devez appeler le chargeur de client dans une et une seule partition.
void preloadMap (Session session, BackingMap backingMap) throws LoaderException {

....
	ObjectGrid objectGrid = session.getObjectGrid();
	int partitionId = backingMap.getPartitionId();
	int numPartitions = backingMap.getPartitionManager().getNumOfPartitions();

	// N'appelle les données du chargeur client que dans une partition
	if (partitionId == preloadPartition) {
  	  ClientLoader c = ClientLoaderFactory.getClientLoader();
    // Apelle le chargeur client pour charger les données
    try {
        c.load(objectGrid, "CUSTOMER", "customerPU", 
					null, entityClass, null, null, true, null);
    } catch (ObjectGridException e) {
        LoaderException le = new LoaderException("Exception caught in ObjectMap " + 
					ogName + "." + mapName);
        le.initCause(e);
        throw le;
    }
	}
}
A faire : Affectez à l'attribut "preloadMode" la valeur true pour que la méthode de préchargement s'exécute de manière asynchrone. Autrement, la méthode de préchargement bloque l'activation de l'instance ObjectGrid.