Exemplo: Chamando um Carregador do Cliente

É possível usar o método de pré-carregamento na interface Loader para chamar um carregador do cliente.

Use o método de pré-carregamento na interface Loader para chamar um carregador do cliente:
void preloadMap(Session session, BackingMap backingMap) throws LoaderException;

Este método sinaliza ao utilitário de carga para pré-carregar os dados no mapa. Uma implementação do utilitário de carga pode utilizar um utilitário de carga do cliente para pré-carregar os dados em todas as suas partições. Por exemplo, o utilitário de carga do JPA usa o utilitário de carga do cliente para pré-carregar os dados no mapa. Consulte Visão Geral do Utilitário de Pré-Carregamento JPA Baseado em Cliente para obter informações adicionais.

Exemplo: Chamando um Carregador de Cliente com o Método preloadMap

A seguir há um exemplo de como pré-carregar o mapa usando o utilitário de carga do cliente no método preloadMap. O exemplo primeiro verifica se o número da partição atual é o mesmo que o da partição pré-carregada. Se o número da partição não for igual ao da partição pré-carregada, nenhuma ação ocorrerá. Se os números da partição corresponderem, o utilitário de carga do cliente será chamado para carregar os dados nos mapas. Você deve chamar o carregador do cliente em uma, e somente uma, partição.
void preloadMap (Session session, BackingMap backingMap) throws LoaderException {

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

	// Only call client loader data in one partition
	if (partitionId == preloadPartition) {
  	  ClientLoader c = ClientLoaderFactory.getClientLoader();
    // Call the client loader to load the data
    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;
    }
	}
}
Lembre-se: Configure o atributo de backingMap "preloadMode" para true, para que o método de pré-carregamento seja executado de forma assíncrona. Caso contrário, o método de pré-carregamento impedirá que a instância de ObjectGrid seja ativada.