ObjectGridLifecycleListener-Plug-in

Ein ObjectGridLifecycleListener-Plug-in empfängt Benachrichtigungen über Statusänderungsereignisse im eXtreme-Scale-Lebenszyklus für das Datengrid.

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

Übersicht

Ein ObjectGridLifecycleListener-Plug-in ist hilfreich, wenn ein vorhandenes ObjectGrid-Plug-in Aktivitäten ausführen muss, die sich auf Aktivitäten in einem zugehörigen Plug-in beziehen. Ein TransactionCallback-Plug-in muss beispielsweise die Konfiguration aus einem kooperierenden ObjectGridEventListener- oder ShardListener-Plug-in abrufen.

Durch die Implementierung der Schnittstelle "ObjectGridLifecycleListener" und die Erkennung des Ereignisses "ObjectGridLifecycleListener.State.INITIALIZED" kann das TransactionCallback-Plug-in den Status anderer Plug-ins in der ObjectGrid-Instanz erkennen. Das TransactionCallback-Plug-in kann Informationen aus dem kooperierenden ObjectGridEventListener-Plug-in oder ShardListener-Plug-in sicher abrufen, weil das ObjectGrid den Status INITIALIZED hat, d. h., dass im anderen Plug-in die Methode initialize() aufgerufen wurde.

Sie können ein ObjectGridLifecycleListener-Plug-in jederzeit, d. h. vor und nach der Initialisierung des ObjectGrids, hinzufügen.

ObjectGridLifecycleListener-Plug-in schreiben

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

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

Lebenszyklusereignis und Plug-in-Beziehungen

Der ObjectGridLifecycleListener ruft den Lebenszyklusstatus aus dem Ereignis mit der Methode objectgridStateChanged an. Beispiel:
public void objectGridStateChanged(ObjectGrid grid, 
                                   LifecycleEvent event) 
throws LifecycleFailedException {
  switch(event.getState()) {
    case INITIALIZED: // Alle anderen Plug-ins werden initialisiert.
      // Referenz auf Plug-in X aus dem Grid 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 ObjectGridLifecycleListener gesendet werden, und den Status des ObjectGrids und anderen Plug-in-Objekten beschrieben.

Wert von ObjectGridLifecycleListener.State Beschreibung
INITIALIZING Die Initialisierungsphase für das ObjectGrid wird eingeleitet. Das ObjectGrid und die ObjectGrid-Plug-ins werden initialisiert.
INITIALIZED Die Initialisierungsphase des ObjectGrids ist abgeschlossen. Alle ObjectGrid-Plug-ins sind initialisiert. Der Status INITIALIZED kann wiederkehren, wenn Shard-Verteilungsaktivitäten (Hochstufung oder Herabstufung) stattfinden. Alle BackingMap-Plug-ins in den BackingMap-Instanzen, deren Eigner diese ObjectGrid-Instanz ist, wurden initialisiert.
STARTING Die ObjectGrid-Instanz wird als lokale Instanz, Clientinstanz oder Instanz in einem primären oder Replikat-Shard im Server aktiviert. Der Status STARTING kann wiederkehren, wenn Shard-Verteilungsaktivitäten (Hochstufung oder Herabstufung) stattfinden.
PRELOAD Die ObjectGrid-Instanz wird von der API "StateManager" oder durch andere Konfigurationsaktivitäten auf den Status PRELOAD gesetzt.
ONLINE Die ObjectGrid-Instanz ist für den Einsatz als lokale Instanz, Clientinstanz oder Instanz in einem primären oder Replikat-Shard im Server bereit. Dieser stabile Zustand ist typisch für das ObjectGrid. Der Status ONLINE kann wiederkehren, wenn Shard-Verteilungsaktivitäten (Hochstufung oder Herabstufung) stattfinden.
QUIESCE Die Arbeiten im ObjectGrid werden über die API "StateManager" oder durch ein anderes Ereignis eingestellt. Es sind keine neuen Arbeiten zulässig. Alle vorhandenen Arbeiten werden so schnell wie möglich beendet.
OFFLINE Die Arbeiten im ObjectGrid wurden über die API "StateManager" oder durch ein anderes Ereignis eingestellt. Es sind keine neuen Arbeiten zulässig.
DESTROYING Die ObjectGrid-Instanz leitet die Löschphase ein. ObjectGrid-Plug-ins für die Instanz werden gelöscht. In der Löschphase werden auch alle BackingMap-Instanzen, deren Eigner diese ObjectGrid-Instanz ist, gelöscht.
DESTROYED Die ObjectGrid-Instanz, die zugehörigen BackingMap-Instanzen und alle ObjectGrid-Plug-ins wurden gelöscht.

ObjectGridLifecycleListener-Plug-in mit XML konfigurieren

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

Sie können ein ObjectGridLifecycleListener-Plug-in mit XML konfigurieren. Die folgende XML erstellt eine Konfiguration mit dem ObjectGridLifecycleListener. 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">
            <bean id="ObjectGridLifecycleListener" 
                  className="com.company.org.MyObjectGridLifecycleListener" />
            <backingMap name="Book"/>
        </objectGrid>
    </objectGrids>
</objectGridConfig>

Beachten Sie, dass die Bean-Deklarationen vor den BackingMap-Deklarationen stehen müssen. Stellen Sie diese Datei dem ObjectGridManager-Plug-in bereit, um die Erstellung dieser Konfiguration zu vereinfachen.

Wie der registrierte ObjectGridLifecycleListener im vorherigen Beispiel werden andere ObjectGrid-Plug-ins, wie z. B. CollisionArbiter oder TransactionCallback, die Sie mit XML angeben und die die Schnittstelle "ObjectGridLifecycleListener" implementieren, automatisch als Lebenszykluslistener hinzugefügt.