Un plug-in BackingMapLifecycleListener est averti des événements de modification de l'état de cycle de vie WebSphere eXtreme Scale.
Le plug-in BackingMapLifecycleListener reçoit un événement contenant un objet ObjectGridLifecycleListener.State pour chaque changement d'état de la mappe de sauvegarde. Un plug-in BackingMap qui implémente également l'interface BackingMapLifecycleListener est ajouté automatiquement comme programme d'écoute pour l'instance BackingMap où le plug-in est enregistré.
Un plug-in BackingMapLifecycleListener est utile lorsqu'un plug-in BackingMap existant doit effectuer des activités par rapport aux activités d'un plug-in associé. Par exemple, un plug-in Loader peut devoir récupérer la configuration depuis un plug-in MapIndexPlugin ou DataSerializer qui coopère.
En implémentant l'interface BackingMapLifecycleListener et en détectant l'événement BackingMapLifecycleListener.State.INITIALIZED, le plug-in TransactionCallback peut détecter l'état des autres plug-in dans l'instance BackingMap. Le chargeur peut extraire des informations en toute sécurité à partir du plug-in MapIndexPlugin ou DataSerializer coopérant, car BackingMap a l'état INITIALIZED, ce qui signifie que la méthode initialize() de l'autre plug-in a été appelée.
Un BackingMapLifecycleListener peut être ajouté ou supprimé à tout moment avant ou après l'ObjectGrid et ses BackingMaps sont initialisés.
Un plug-in BackingMapLifecycleListener doit implémenter l'interface ObjectGridLifecycleListener pour recevoir des notifications sur les événements importants eXtreme Scale. Tout plug-in ObjectGrid peut implémenter l'interface BackingMapLifecycleListener et être automatiquement ajouté en tant que programme d'écoute lorsqu'il est également ajouté à la mappe de sauvegarde.
Pour plus d'informations sur ces interfaces, voir la documentation d'API.
public void backingMapStateChanged(BackingMap map,
LifecycleEvent event)
throws LifecycleFailedException {
switch(event.getState()) {
case INITIALIZED: //Tous les autres plug-in sont initialisé.
// Récupérer la référence au plug-in X pour une utilisation à partir de la grille.
break;
case DESTROYING: // Phase de destruction démarrée
// Supprimer la référence au plug-in X. Elle peut être détruite avant ce plug-in
break;
}
}
BackingMapLifecycleListener.State value | Description |
---|---|
INITIALIZING | La phase d'initialisation d'ObjectGrid démarre. Les plug-in The BackingMap et BackingMap sont sur le point d'être initialisés. |
INITIALIZED | La phase d'initialisation de BackingMap est terminée. Tous les plug-in BackingMap sont initialisés. L'état INITIALIZED peut réapparaître lorsque les activités de placement de fragment (promotion ou rétrogradation) se produisent. |
STARTING | L'instance BackingMap est activée pour l'utiliser comme une instance locale, instance client ou comme instance dans un fragment primaire ou de réplique sur le serveur. Tous les plug-in ObjectGrid dans l'instance ObjectGrid propriétaire de cette instance BackingMap ont été initialisés L'état STARTING peut réapparaître lorsque les activités de placement de fragment (promotion ou rétrogradation) se produisent. |
PRELOAD | L'instance BackingMap est paramétrée sur l'état PRELOAD par l'API StateManager pour le préchargement ou le chargeur configuré précharge les données dans la mappe de sauvegarde. |
ONLINE | L'instance BackingMap est prête à fonctionner comme instance locale, instance client ou comme instance dans un fragment primaire ou de réplique sur le serveur. Tous les plug-in ObjectGrid dans l'instance ObjectGrid propriétaire de cette instance BackingMap ont été initialisés. Cet état stable est l'état standard de BackingMap. L'état ONLINE peut réapparaître lorsque les activités de placement de fragment (promotion ou rétrogradation) se produisent. |
QUIESCE | Le travail est arrêté sur BackingMap du fait de l'API StateManager ou d'un autre événement. Aucun nouveau travail n'est autorisé. Les plug-in arrêtent le travail en cours dès que possible. |
OFFLINE | Tout le travail est arrêté sur BackingMap du fait de l'API StateManager ou d'un autre événement. Aucun nouveau travail n'est autorisé. |
DESTROYING | L'instance BackingMap démarre la phase de destruction. Les plug-in BackingMap de l'instance sont sur le point d'être détruits. |
DESTROYED | L'instance BackingMap et tous les plug-in BackingMap ont été détruits. |
Supposons que le programme d'écoute est la classe com.company.org.MyBackingMapLifecycleListener et que cette classe implémente l'interface BackingMapLifecycleListener.
<?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>
Fournissez ce fichier au plug-in ObjectGridManager pour faciliter la création de cette configuration. L'instance BackingMap qui est créée possède un programme d'écoute BackingMapLifecycleListener défini sur myGrid ObjectGrid.
A l'instar de BackingMapLifecycleListener, les autres plug-in BackingMap, tels que Loader ou MapIndexPlugin, que vous définissez en utilisant XML qui implémente aussi l'interface BackingMapLifecycleListener, seront ajoutés automatiquement comme programmes d'écoute de cycle de vie.