Plug-in BackingMapLifecycleListener

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é.

Présentation

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.

Ecrire un plug-in BackingMapLifecycleListener

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.

Evénement de cycle de vie et relations des plug-in

BackingMapLifecycleListener extrait l'état de cycle de vie à partir de l'événement dans la méthode backingMapStateChanged ; par exemple :
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;
  }
}
Le tableau suivant décrit les relations entre les événements de cycle de vie envoyés au plug-in BackingMapLifecycleListener et les états d'ObjectGrid et d'autres objets de plug-in.
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.

Configuration d'un plug-in BackingMapLifecycleListener avec XML

Supposons que le programme d'écoute est la classe com.company.org.MyBackingMapLifecycleListener et que cette classe implémente l'interface BackingMapLifecycleListener.

Vous pouvez configurer un plug-in BackingMapLifecycleListener en utilisant XML. Le texte suivant doit se trouver dans le fichier XML de grille d'objet :
<?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.