Un plug-in ObjectGridEventListener fournit des événements du cycle de vie WebSphere eXtreme Scale pour l'ObjectGrid, les fragments et les transactions. Un plug-in ObjectGridEventListener fournit des notifications lorsqu'un ObjectGrid est initialisé ou détruit et lorsqu'une transaction est démarrée ou terminée. Les plug-in ObjectGridEventListener sont des classes personnalisées que vous créez lorsque vous implémentez l'interface ObjectGridEventListener. L'implémentation peut éventuellement inclure des sous-interfaces ObjectGridEventGroup et suivre les conventions communes aux plug-in eXtreme Scale.
Lorsque le service de catalogue place des fragments primaires de partition ou des fragments réplique dans une machine virtuelle Java, une instance ObjectGrid est créée dans cette machine virtuelle Java pour héberger ce fragment. Certaines applications qui doivent démarrer des unités d'exécution sur la machine virtuelle Java qui héberge le fragment primaire doivent être notifiées de ces événements. L'interface ObjectGridEventGroup.ShardEvents déclare les méthodes shardActivate et shardDeactivate. Ces méthodes ne sont appelées que si un fragment est activé comme fragment primaire ou qu'un fragment est désactivé d'un serveur primaire. Ces deux événements permettent à l'application de démarrer des unités d'exécution supplémentaires si le fragment est un fragment primaire et d'arrêter les unités d'exécution si le fragment redevient une réplique ou est mis hors service.
Une application peut déterminer quelle partition a été activée en recherchant une mappe de sauvegarde spécifique dans la référence ObjectGrid fournie à la méthode shardActivate à l'aide de la méthode ObjectGrid#getMap. L'application peut alors déterminer le numéro de partition à l'aide de la méthode BackingMap#getPartitionId(). Les partitions sont numérotées de 0 au nombre de partitions dans le descripteur de déploiement moins un.
Si un plug-in ObjectGridEventListener implémente les interfaces ObjectGridEventListener et ShardLifecycle, les événements de cycle de vie du fragment sont les seuls à être distribués au programme d'écoute. Une fois que vous avez implémenté l'une des nouvelles interfaces ObjectGridEventGroup internes, eXtreme Scale ne distribue que les événements spécifiques des nouvelles interfaces. Avec cette implémentation, le code offre une compatibilité amont. Si vous utilisez les nouvelles interfaces internes, il peut désormais ne recevoir que les événements nécessaires.
Pour utiliser un plug-in ObjectGridEventListener personnalisé, créez d'abord une classe qui implémente l'interface ObjectGridEventListener et les éventuelles sous-interfaces ObjectGridEventGroup facultatives. Ajoutez le programme d'écoute personnalisé à un ObjectGrid pour recevoir la notification d'événements importants. Deux approches permettent d'ajouter un plug-in ObjectGridEventListener dans la configuration d'eXtreme Scale : la configuration à l'aide d'un programme et la configuration XML.
ObjectGridManager objectGridManager = ObjectGridManagerFactory.getObjectGridManager();
ObjectGrid myGrid = objectGridManager.createObjectGrid("myGrid", false);
MyObjectGridEventListener myListener = new MyObjectGridEventListener();
myGrid.addEventListener(myListener);
<?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="ObjectGridEventListener"
className="com.company.org.MyObjectGridEventListener" />
<backingMap name="Book"/>
</objectGrid>
</objectGrids>
</objectGridConfig>
ObjectGridManager objectGridManager = ObjectGridManagerFactory.getObjectGridManager();
ObjectGrid myGrid = objectGridManager.createObjectGrid("myGrid",
new URL("file:etc/test/myGrid.xml"), true, false);