Gestion des cycles de vie du plug-in

Vous pouvez gérer les cycles de vie de plug-in avec des méthodes spécialisées de chaque plug-in, qui peuvent être appelées à des points fonctionnels déterminés. Les deux méthodes initialize et destroy définissent le cycle de vie des plug-in qui sont contrôlés par leurs objets propriétaire. Un objet propriétaire est l'objet qui utilise le plug-in donné. Un propriétaire peut être un client de grille, un serveur ou une mappe de sauvegarde.

Pourquoi et quand exécuter cette tâche

De même, tous les plug-in peuvent implémenter les interfaces intégrées mixtes adaptées à leur objet propriétaire. Un plug-in ObjectGrid peut implémenter l'ObjectGridPlugin d'interface intégrée mixte facultatif. Un plug-in BackingMap peut implémenter le BackingMapPlugin d'interface intégrée mixte facultatif. Les interfaces intégrées mixtes nécessitent d'implémenter plusieurs méthodes additionnelles en plus des méthodes initialize() et destroy() pour les plug-in de base. Pour plus d'informations sur ces interfaces, voir la documentation des API.

Lorsque les objets propriétaires sont initialisés, ils définissent des attributs dans le plug-in, puis appellent la méthode d'initialisation de leurs plug-in détenus. Lors du cycle de destruction des objets propriétaires, la méthode de destruction de plug-in est, par conséquent, également appelée. Pour plus de détails sur les spécificités des méthodes initialize et destroy et sur les autres méthodes adaptées à chaque plug-in, reportez-vous aux rubriques correspondant à chaque plug-in.

A titre d'exemple, prenons un environnement réparti. Les ObjectGrids côté client et les ObjectGrids côté serveur comportent leurs propres plug-in. Le cycle de vie d'ObjectGrid côté client, et par conséquent, de ses instances de plug-in, dépend d'ObjectGrid côté serveur et des instances de plug-in.

Dans une topologie répartie de ce type, supposons que vous ayez la grille ObjectGrid, myGrid, définie dans le fichier objectGrid.xml et configurée avec le programme d'écoute ObjectGridEventListener, myObjectGridEventListener. Le fichier objectGridDeployment.xml définit la stratégie de déploiement de la grille myGrid. Les fichiers objectGrid.xml et objectGridDeployment.xml sont utilisés pour démarrer les serveurs de conteneur. Au cour du démarrage du serveur de conteneur, l'instance ObjectGrid myGrid côté serveur est initialisée. Entre temps, la méthode initialize de l'instance myObjectGridEventListener qui appartient à l'instance myObjectGrid est appelée. Une fois le serveur de conteneur démarré, votre application peut se connecter à l'instance ObjectGrid myGrid et obtenir une instance côté client.

Lors de l'obtention de l'instance ObjectGrid myGrid côté client, l'instance myGrid côté client passe par son propre cycle de vie d'initialisation et appelle la méthode initialize de sa propre instance myObjectGridEventListener côté client. Cette instance myObjectGridEventListener côté client dépend de l'instance myObjectGridEventListener. Son cycle de vie est contrôlé par son propriétaire qui est l'instance ObjectGrid myGrid côté client.

Si votre application se déconnecte ou détruit l'instance ObjectGrid myGrid, la méthode destroy qui appartient à l'instance myObjectGridEventListener côté client est appelée automatiquement. Toutefois, ce processus n'a aucun impact sur l'instance myObjectGridEventListener côté serveur. La méthode destroy de l'instance myObjectGridEventListener côté serveur peut uniquement être appelée au cours du cycle de vie destroy de l'instance Object myGrid lors de l'arrêt d'un serveur de conteneur. Notamment, lors de l'arrêt d'un serveur de conteneur, les instances ObjectGrid contenues sont détruites et la méthode destroy de tous leurs plug-in possédés est appelée.

Bien que l'exemple précédent s'applique spécifiquement au cas d'un client et d'une instance de serveur d'une ObjectGrid, le propriétaire d'un plug-in peut également être une interface BackingMap. En outre, déterminez soigneusement vos configurations pour les plug-in que vous pouvez écrire en fonction de ces informations de cycle de vie. Consultez les rubriques suivantes pour écrire des plug-in qui fournissent des événements de gestion de cycle de vie étendu que vous pouvez utiliser pour configurer ou supprimer des ressources dans votre environnement :