BackingMapLifecycleListener-Plug-in

Ein BackingMapLifecycleListener-Plug-in empfängt Benachrichtigungen über Statusänderungsereignisse im eXtreme-Scale-Lebenszyklus für die BackingMap.

Das BackingMapLifecycleListener-Plug-in empfängt ein Ereignis, das ein Objekt "BackingMapLifecycleListener.State" für jede Statusänderung der BackingMap enthält. Jedes BackingMap-Plug-in, das auch die Schnittstelle "BackingMapLifecycleListener" implementiert, wird automatisch als Listener für die BackingMap-Instanz hinzugefügt, in der das Plug-in registriert ist.

Übersicht

Ein BackingMapLifecycleListener-Plug-in ist hilfreich, wenn ein vorhandenes BackingMap-Plug-in Aktivitäten ausführen muss, die sich auf Aktivitäten in einem zugehörigen Plug-in beziehen. Ein Loader-Plug-in muss beispielsweise die Konfiguration aus einem kooperierenden MapIndexPlugin- oder DataSerializer-Plug-in abrufen.

Durch die Implementierung der Schnittstelle "BackingMapLifecycleListener" und die Erkennung des Ereignisses "BackingMapLifecycleListener.State.INITIALIZED" kennt der Loader den Status anderer Plug-ins in der BackingMap-Instanz. Der Loader kann Informationen aus dem kooperierenden MapIndexPlugin- oder DataSerializer-Plug-in sicher abrufen, weil die BackingMap den Status INITIALIZED hat, d. h., dass im anderen Plug-in die Methode initialize() aufgerufen wurde.

Ein BackingMapLifecycleListener kann jederzeit hinzugefügt oder entfernt werden, entweder vor oder nach der Initialisierung des ObjectGrids und dessen BackingMaps.

BackingMapLifecycleListener-Plug-in schreiben

Ein BackingMapLifecycleListener-Plug-in muss die Schnittstelle "BackingMapLifecycleListener" implementieren, um Benachrichtigungen über wichtige eXtreme-Scale-Ereignisse zu empfangen. Jedes BackingMap-Plug-in kann die Schnittstelle "BackingMapLifecycleListener" implementieren und automatisch als Listener hinzugefügt werden, wenn es auch der BackingMap hinzugefügt wurde.

Weitere Informationen zu diesen Schnittstellen finden Sie in der API-Dokumentation.

Lebenszyklusereignis und Plug-in-Beziehungen

Der BackingMapLifecycleListener ruft den Lebenszyklusstatus aus dem Ereignis mit der Methode backingMapStateChanged an. Beispiel:
public void backingMapStateChanged(BackingMap map, 
                                   LifecycleEvent event) 
throws LifecycleFailedException {
  switch(event.getState()) {
    case INITIALIZED: // Alle anderen Plug-ins werden initialisiert.
      // Referenz auf Plug-in X aus der Map abrufen.
      break;
    case DESTROYING:  // Beginn der Löschphase
      // Referenz auf Plug-in X kann vor diesem Plug-in gelöscht werden.
      break;
  }
}
In der folgenden Tabelle ist die Beziehung zwischen Lebenszyklusereignissen, die an einen BackingMapLifecycleListener gesendet werden, und den Status der BackingMap und anderen Plug-in-Objekten beschrieben.
Wert von BackingMapLifecycleListener.State Beschreibung
INITIALIZING Die Initialisierungsphase für die BackingMap wird eingeleitet. Die BackingMap und die BackingMap-Plug-ins werden initialisiert.
INITIALIZED Die Initialisierungsphase der BackingMap ist abgeschlossen. Alle BackingMap-Plug-ins sind initialisiert. Der Status INITIALIZED kann wiederkehren, wenn Shard-Verteilungsaktivitäten (Hochstufung oder Herabstufung) stattfinden.
STARTING Die BackingMap-Instanz wird als lokale Instanz, Clientinstanz oder Instanz in einem primären oder Replikat-Shard im Server aktiviert. Alle ObjectGrid-Plug-ins in der ObjectGrid-Instanz, deren Eigner diese BackingMap-Instanz ist, wurden initialisiert. Der Status STARTING kann wiederkehren, wenn Shard-Verteilungsaktivitäten (Hochstufung oder Herabstufung) stattfinden.
PRELOAD Die BackingMap-Instanz wird von der API "StateManager" für das vorherige Laden auf den Status PRELOAD gesetzt, oder der konfigurierte Loader lädt die Daten vorher in die BackingMap.
ONLINE Die BackingMap-Instanz ist für den Einsatz als lokale Instanz, Clientinstanz oder Instanz in einem primären oder Replikat-Shard im Server bereit. Alle ObjectGrid-Plug-ins in der ObjectGrid-Instanz, deren Eigner diese BackingMap-Instanz ist, wurden initialisiert. Dieser stabile Zustand ist typisch für die BackingMap. Der Status ONLINE kann wiederkehren, wenn Shard-Verteilungsaktivitäten (Hochstufung oder Herabstufung) stattfinden.
QUIESCE Die Arbeiten in der BackingMap werden über die API "StateManager" oder durch ein anderes Ereignis eingestellt. Es sind keine neuen Arbeiten zulässig. Ihr Plug-in beendet alle vorhandenen Arbeiten so schnell wie möglich.
OFFLINE Die Arbeiten in der BackingMap wurden über die API "StateManager" oder durch ein anderes Ereignis eingestellt. Es sind keine neuen Arbeiten zulässig.
DESTROYING Die BackingMap-Instanz leitet die Löschphase ein. BackingMap-Plug-ins für die Instanz werden gelöscht.
DESTROYED Die BackingMap-Instanz und alle BackingMap-Plug-ins wurden gelöscht.

BackingMapLifecycleListener-Plug-in mit XML konfigurieren

Angenommen, der Klassenname des eXtreme-Scale-Ereignislisteners ist die Klasse "com.company.org.MyBackingMapLifecycleListener". Diese Klasse implementiert die Schnittstelle "BackingMapLifecycleListener".

Sie können ein BackingMapLifecycleListener-Plug-in mit XML konfigurieren. Der folgende Text muss in der ObjectGrid-XML-Datei enthalten sein:
<?xml version="1.0" encoding="UTF-8" ?>
<objectGridconfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://ibm.com/ws/objectgrid/config ../objectGrid.xsd"
        xmlns="http://ibm.com/ws/objectgrid/config">
    <objectGrids>
        <objectGrid name="myGrid">
            <backingMap name="myMap" pluginCollectionRef="myPlugins" />
        </objectGrid>
    </objectGrids>
    <backingMapPluginCollections>
        <backingMapPluginCollection id="myPlugins">
            <bean id="BackingMapLifecycleListener"
                  className="com.company.org.MyBackingMapLifecycleListener" />
        </backingMapPluginCollection>
    </backingMapPluginCollections>
</objectGridConfig>

Stellen Sie diese Datei dem ObjectGridManager-Plug-in bereit, um die Erstellung dieser Konfiguration zu vereinfachen. In der erstellten BackingMap-Instanz ist ein BackingMapLifecycleListener-Listener im ObjectGrid "myGrid" definiert.

Wie BackingMapLifecycleListener werden auch andere BackingMap-Plug-ins, wie z. B. Loader oder MapIndexPlugin, die Sie mit XML angeben und auch die Schnittstelle "BackingMapLifecycleListener" implementieren, automatisch als Lebenszykluslistener hinzugefügt.