Ein ObjectGridLifecycleListener-Plug-in empfängt Benachrichtigungen über Statusänderungsereignisse im eXtreme-Scale-Lebenszyklus für das Datengrid.
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.
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.
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. |
Angenommen, der Klassenname des eXtreme-Scale-Ereignislisteners ist die Klasse "com.company.org.MyObjectGridLifecycleListener". Diese Klasse implementiert die Schnittstelle "ObjectGridLifecycleListener".
<?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.