Beispiel: Client-Loader aufrufen

Sie können die Methode für vorheriges Laden (preload) in der Schnittstelle Loader verwenden, um einen Client-Loader aufzurufen.

Verwenden Sie die Methode für vorheriges Laden (preload) in der Schnittstelle Loader, um einen Client-Loader aufzurufen:
void preloadMap(Session session, BackingMap backingMap) throws LoaderException;

Diese Methode signalisiert dem Loader, die Daten vorher in die Map zu laden. Eine Loader-Implementierung kann einen Client-Loader verwenden, um die Daten vorher in alle seine Partitionen zu laden. Der JPA-Loader verwendet beispielsweise den Client-Loader, um Daten vorher in die Map zu laden. Weitere Informationen enthält der Artikel Übersicht über das clientbasierte JPA-Preload-Dienstprogramm.

Beispiel: Client-Loader mit der Methode preloadMap aufrufen

Im Folgenden sehen Sie ein Beispiel für das vorherige Laden einer Map mit dem Client-Loader in der Methode "preloadMap". Der Beispielcode prüft zuerst, ob die aktuelle Partitionsnummer mit der Preload-Partition identisch ist. Wenn die Partitionsnummer der Preload-Partition nicht entspricht, findet keine Aktion statt. Stimmen die Partitionsnummern überein, wird der Client-Loader aufgerufen, um die Daten in die Maps zu laden. Sie müssen den Client-Loader in einer einzigen Partition aufrufen.
void preloadMap (Session session, BackingMap backingMap) throws LoaderException {

....
	ObjectGrid objectGrid = session.getObjectGrid();
int partitionId = backingMap.getPartitionId();
int numPartitions = backingMap.getPartitionManager().getNumOfPartitions();
// Client-Loader nur in einer einzigen Partition aufrufen
if (partitionId == preloadPartition) {
ClientLoader c = ClientLoaderFactory.getClientLoader();
// Client-Loader zum Laden der Daten aufrufen
    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;
    }
	}
}
Hinweis: Setzen Sie das BackingMap-Attribut "preloadMode" auf true, damit die Methode "preload" asynchron ausgeführt wird. Andernfalls blockiert die Methode "preload" die Aktivierung der ObjectGrid-Instanz.