Schnittstelle DynamicIndexCallback

Die Schnittstelle DynamicIndexCallback ist für Anwendungen bestimmt, die Benachrichtigungen über die Indexierungsereignisse "ready" (Bereit), "error" (Fehler) oder "destroy" (Löschen) empfangen möchten. DynamicIndexCallback ist ein optionaler Parameter für die Methode createDynamicIndex der BackingMap. Mit einer registrierten DynamicIndexCallback-Instanz können Anwendungen beim Empfang von Benachrichtigungen über ein Indexierungsereignis Geschäftslogik ausführen.

Ereignisse indexieren

Das Ereignis "ready" bedeutet beispielsweise, dass der Index zur Verwendung bereit ist. Wenn eine Benachrichtigung über dieses Ereignis empfangen wird, kann eine Anwendung versuchen, die Instanz der Anwendungsindexschnittstelle abzurufen und zu verwenden.

Beispiel: Schnittstelle DynamicIndexCallback verwenden

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);

            // Simulieren, was eine Anwendung tut, wenn sie über die Bereitschaft des Index benachrichtigt wird.
            // Normalerweise wartet die Anwendung, bis der Bereitschaftsstatus erreicht ist, und fährt
            // dann mit der Logik zur Verwendung des Index fort.
            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);
		// Close the session (optional in Version 7.1.1 and later) for improved performance
		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);
        }
    }