Interface DynamicIndexCallback

L'interface DynamicIndexCallback est destinée aux applications qui veulent recevoir des notifications pour les événements d'indexation ready, error ou destroy. DynamicIndexCallback est un paramètre facultatif pour la méthode createDynamicIndex de la mappe de sauvegarde. Avec une instance enregistrée DynamicIndexCallback, les applications peuvent exécuter la logique applicative à la réception de la notification d'un événement d'indexation.

Evénements d'indexation

Par exemple, l'événement ready signifie que l'index est prêt à être utilisé. Lorsqu'une notification est reçue pour cet événement, une application peut tenter d'extraire et d'utiliser l'instance d'interface de l'index d'application.

Exemple : utilisation de l'interface DynamicIndexCallback

BackingMap personBackingMap = ivObjectGrid.getMap("person");
    DynamicIndexCallback callback = new DynamicIndexCallbackImpl();
    personBackingMap.createDynamicIndex("CODE", true, "employeeCode", callback);


    class DynamicIndexCallbackImpl implements DynamicIndexCallback {
        public DynamicIndexCallbackImpl() {
        }

        public void ready(String indexName) {
            System.out.println("DynamicIndexCallbackImpl.ready() -> indexName = " + indexName);

            // Simulez le comportement d'une application lors de la notification ready.
            // Normalement, l'application doit patienter jusqu'à l'obtention de l'état ready, puis doit mettre en oeuvre
            // la logique d'utilisation de l'index.
            if("CODE".equals(indexName)) {
                ObjectGridManager ogManager = ObjectGridManagerFactory.getObjectGridManager();
                ObjectGrid og = ogManager.createObjectGrid( "grid" );
                Session session = og.getSession();
                ObjectMap map = session.getMap("person");
                MapIndex codeIndex = (MapIndex) map.getIndex("CODE");
                Iterator iter = codeIndex.findAll(codeValue);
		// Fermer la session (facultatif dans les versions 7.1.1 et ultérieures) pour améliorer les performances
		session.close();
					}
        }

        public void error(String indexName, Throwable t) {
            System.out.println("DynamicIndexCallbackImpl.error() -> indexName = " + indexName);
            t.printStackTrace();
        }

        public void destroy(String indexName) {
            System.out.println("DynamicIndexCallbackImpl.destroy() -> indexName = " + indexName);
        }
    }