Sie können Plug-in-Lebenszyklen mit speziellen Methoden aus jedem Plug-in verwalten, die an bestimmten Funktionspunkten aufgerufen werden können. Die Methoden initialize und destroy definieren den Lebenszyklus von Plug-ins, die über die zugehörigen Eignerobjekte gesteuert werden. Ein Eignerobjekt ist das Objekt, das das jeweilige Plug-in tatsächlich verwendet. Ein Eigner kann ein Grid-Client, ein Server oder eine BackingMap sein.
Außerdem können alle Plug-ins die optionalen Mix-in-Schnittstellen implementieren, die für ihr Eignerobjekt geeignet sind. Jedes ObjectGrid-Plug-in kann die optionale Mix-in-Schnittstelle "ObjectGridPlugin" implementieren. Jedes BackingMap-Plug-in kann die optionale Mix-in-Schnittstelle "BackingMapPlugin" implementieren. Die optionalen Mix-in-Schnittstellen erfordern die Implementierung weiterer Methoden zusätzlich zu den Methoden initialize() und destroy() für die Basis-Plug-ins. Weitere Informationen zu diesen Schnittstellen finden Sie in der API-Dokumentation.
Bei der Initialisierung von Eignerobjekten setzen diese Objekte Attribute im Plug-in und rufen dann die Methode "initialize" ihrer Eigner-Plug-ins auf. Während des Löschens der Eignerobjekte wird deshalb auch die Methode "destroy" der Plug-ins aufgerufen. Einzelheiten zu den speziellen Eigenschaften der Methoden initialize und destroy und weiteren Methoden, die mit jedem Plug-in ausgeführt werden können, finden Sie in den entsprechenden Abschnitten zum jeweiligen Plug-in.
Stellen Sie sich beispielsweise eine verteilte Umgebung vor. Die clientseitigen ObjectGrids und die serverseitigen ObjectGrids können jeweils eigene Plug-ins haben. Der Lebenszyklus eines clientseitigen ObjectGrids und somit der zugehörigen Plug-in-Instanzen ist von allen serverseitigen ObjectGrids und Plug-in-Instanzen unabhängig.
Angenommen, Sie haben in einer solchen verteilten Topologie ein ObjectGrid mit dem Namen myGrid in der Datei objectGrid.xml definiert und mit einem angepassten ObjectGridEventListener mit dem Namen "myObjectGridEventListener" konfiguriert. Die Datei objectGridDeployment.xml definiert die Implementierungsrichtlinie für das ObjectGrid myGrid. Die Dateien objectGrid.xml und objectGridDeployment.xml werden beide zum Starten der Container-Server verwendet. Während des Starts des Container-Servers wird die serverseitige ObjectGrid-Instanz myGrid initialisiert. In der Zwischenzeit wird die Methode initialize der myObjectGridEventListener-Instanz aufgerufen, deren Eigner die myObjectGrid-Instanz ist. Nach dem Start des Container-Servers kann Ihre Anwendung eine Verbindung zur serverseitigen Instanz des ObjectGrids myGrid herstellen und eine clientseitige Instanz abrufen.
Beim Abrufen der clientseitigen Instanz des ObjectGrids myGrid durchläuft die clientseitige myGrid-Instanz ihren eigenen Initialisierungszyklus und ruft die Methode initialize ihrer eigenen clientseitigen myObjectGridEventListener-Instanz auf. Diese clientseitige myObjectGridEventListener-Instanz ist von der serverseitigen myObjectGridEventListener-Instanz unabhängig. Ihr Lebenszyklus wird vom Instanzeigener gesteuert, der die clientseitige Instanz des ObjectGrids myGrid ist.
Wenn Ihre Anwendung die Verbindung trennt oder die clientseitige Instanz des ObjectGrids myGrid löscht, wird automatisch die Methode destroy der eigenen clientseitigen myObjectGridEventListener-Instanz aufgerufen. Dieser Prozess hat jedoch keine Auswirkung auf die serverseitige myObjectGridEventListener-Instanz. Die Methode destroy der serverseitigen myObjectGridEventListener-Instanz wird während des destroy-Lebenszyklus der serverseitigen ObjectGrid-Instanz myGrid nur dann aufgerufen, wenn ein Container-Server gestoppt wird. Das heißt, wenn ein Container-Server gestoppt wird, werden die enthaltenen ObjectGrid-Instanzen gelöscht, und die destroy-Methode aller zugehörigen Plug-ins aufgerufen.
Das vorherige Beispiel bezieht sich speziell für den Fall einer Client- und einer Serverinstanz eines ObjectGrids. Der Eigner eines Plug-ins kann aber auch eine BackingMap sein, und Sie müssen bei der Festlegung der Konfigurationen für Plug-ins, die Sie auf der Basis dieser Lebenszyklushinweise schreiben, sorgfältig vorgehen. Verwenden Sie die folgenden Artikel, um Plug-ins zu schreiben, die erweiterte Lebenszyklusverwaltungsereignisse bereitstellen, die Sie verwenden können, um Ressourcen in Ihrer Umgebung zu konfigurieren oder zu entfernen: