Un plug-in ObjectGridLifecycleListener reçoit une notification de cycle de vie WebSphere eXtreme Scale, les événements de changement d'état pour la grille de données.
Un plug-in ObjectGridLifecycleListener est utile lorsqu'un plug-in ObjectGrid existant doit effectuer des activités par rapport aux activités dans un plug-in associé. Un plug-in TransactionCallback peut devoir récupérer la configuration depuis un plug-in ObjectGridEventListener ou ShardListener qui coopère.
En implémentant l'interface ObjectGridLifecycleListener et en détectant l'événement ObjectGridLifecycleListener.State.INITIALIZED, le plug-in TransactionCallback peut détecter l'état des autres plug-in dans l'instance ObjectGrid. Le plug-in TransactionCallback peut extraire des informations en toute sécurité à partir du plug-in ObjectGridEventListener ou ShardListener coopérant, car ObjectGrid a l'état INITIALIZED, ce qui signifie que la méthode initialize() de l'autre plug-in a été appelée.
Vous pouvez ajouter un plug-in ObjectGridLifecycleListener à tout moment, avant ou après l'initialisation d'ObjectGrid.
Un plug-in ObjectGridLifecycleListener 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 ObjectGridLifecycleListener et être automatiquement ajouté en tant que programme d'écoute lorsqu'il est également ajouté à l'ObjectGrid.
Pour plus d'informations sur ces interfaces, voir la documentation d'API.
public void objectGridStateChanged(ObjectGrid grid,
LifecycleEvent event)
throws LifecycleFailedException {
switch(event.getState()) {
case INITIALIZED: // Tous les autres plug-in sont initialisés.
// 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 à un ObjectGridLifecycleListener et les états de l'ObjectGrid et d'autres objets de plug-in.
ObjectGridLifecycleListener.State value | Description |
---|---|
INITIALIZING | La phase d'initialisation d'ObjectGrid démarre. L'ObjectGrid et les plug-in ObjectGrid sont sur le point d'être initialisés. |
INITIALIZED | La phase d'initialisation d'ObjectGrid est terminée. Tous les plug-in ObjectGrid sont initialisés. L'état INITIALIZED peut réapparaître lorsque les activités de placement de fragment (promotion ou rétrogradation) se produisent. Tous les plug-in BackingMap dans les instances de BackingMap appartenant à cette instance ObjectGrid ont été initialisés. |
STARTING | L'instance ObjectGrid est activée pour l'utiliser comme une instance locale, instance client ou instance dans un fragment primaire ou de réplique sur le serveur. L'état STARTING peut réapparaître lorsque les activités de placement de fragment (promotion ou rétrogradation) se produisent. |
PRELOAD | L'instance ObjectGrid est paramétrée sur l'état PRELOAD par l'API ou une autre configuration StateManager. |
ONLINE | L'instance ObjectGrid est prête à fonctionner comme instance locale, instance client ou instance dans un fragment primaire ou de réplique sur le serveur. Cet état stable est l'état standard d'ObjectGrid. 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 ObjectGridWork du fait de l'API StateManager ou d'un autre événement. Aucun nouveau travail n'est autorisé. Arrêtez tout travail existant dès que possible. |
OFFLINE | Le travail est arrêté sur ObjectGridWork du fait de l'API StateManager ou d'un autre événement. Aucun nouveau travail n'est autorisé. |
DESTROYING | L'instance ObjectGrid démarre la phase de destruction. Les plug-in ObjectGrid de l'instance sont sur le point d'être détruits. Au cours de la phase de suppression, toutes les instances de BackingMap appartenant à cette instance ObjectGrid sont également supprimées. |
DESTROYED | L'instance ObjectGrid, ses instances de BackingMap et tous les plug-in ObjectGrid ont été détruits. |
Supposons que le nom de la classe de l'écouteur d'événement eXtreme Scale soit la classe com.company.org.MyObjectGridLifecycleListener. Cette classe implémente l'interface 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>
Notez que les déclarations de bean précèdent les déclarations de mappe de sauvegarde. Fournissez ce fichier au plug-in ObjectGridManager pour faciliter la création de cette configuration.
Comme le plug-in ObjectGridLifecycleListener enregistré dans l'exemple précédent, d'autres plug-in ObjectGrid, tels que CollisionArbiter ou TransactionCallback, que vous pouvez définir en utilisant XML, qui implémentent l'interface ObjectGridLifecycleListener, seront ajoutés automatiquement comme écouteurs de cycle de vie.