Un plug-in BackingMapLifecycleListener recibe notificación de sucesos de cambio de estado de ciclo de vida de WebSphere eXtreme Scale para la correlación de respaldo.
El plug-in BackingMapLifecycleListener recibe un suceso que contiene un objeto BackingMapLifecycleListener.State para cada cambio de estado de la correlación de respaldo. Cualquier plug-in BackingMap que implemente también la interfaz BackingMapLifecycleListener se añadirá automáticamente como escucha para la instancia de BackingMap donde se ha registrado el plug-in.
Un plug-in BackingMapLifecycleListener es útil cuando un plug-in BackingMap existente necesita realizar actividades relacionadas con las actividades de un plug-in relacionado. Como ejemplo, un plug-in Loader podría necesitar recuperar configuración de un plug-in MapIndexPlugin o DataSerializer colaborativo.
Mediante la implementación de la interfaz BackingMapLifecycleListener y la detección del suceso BackingMapLifecycleListener.State.INITIALIZED, el cargador puede conocer el estado de otros plug-ins de la instancia de BackingMap. El cargador puede recuperar de forma segura información del plug-in MapIndexPlugin o DataSerializer colaborativo, ya que BackingMap está en un estado INITIALIZED, lo que significa que en los otros plug-ins se ha llamado a su método initialize().
Se puede añadir o eliminar un BackingMapLifecycleListener en cualquier momento, antes o después de que se inicialice el ObjectGrid y sus BackingMaps.
Un plug-in BackingMapLifecycleListener debe implementar la interfaz BackingMapLifecycleListener para recuperar notificaciones sobre sucesos significativos de eXtreme Scale. Cualquier plug-in BackingMap puede implementar la interfaz BackingMapLifecycleListener y añadirse automáticamente como escucha cuando se añade también a la correlación de respaldo.
Para obtener más información sobre estas interfaces, consulte la documentación de la API.
public void backingMapStateChanged(BackingMap map,
LifecycleEvent event)
throws LifecycleFailedException {
switch(event.getState()) {
case INITIALIZED: // Todos los demás plug-ins se inicializan.
// Recuperar referencia a plug-in X para uso desde correlación.
break;
case DESTROYING: // Se inicia fase de destrucción
// Eliminar referencia a plug-in X, se puede destruir antes de este plug-in
break;
}
}
Valor de BackingMapLifecycleListener.State | Descripción |
---|---|
INITIALIZING | La fase de inicialización de BackingMap se está iniciando. Los plug-ins BackingMap y BackingMap están a punto de inicializarse. |
INITIALIZED | La fase de inicialización de BackingMap se ha completado. Todos los plug-ins BackingMap se han inicializado. Es posible que se vuelva a producir el estado INITIALIZED cuando tengan lugar actividades de colocación de fragmentos (de promoción o relegación). |
STARTING | La instancia de BackingMap se está activando para su uso como instancia local, instancia de cliente o instancia en un fragmento de réplica o primario del servidor. Todos los plug-ins de ObjectGrid de la instancia de ObjectGrid propietarios de esta instancia de BackingMap se han inicializado. Es posible que se vuelva a producir el estado STARTING cuando tengan lugar actividades de colocación de fragmentos (de promoción o relegación). |
PRELOAD | La instancia de BackingMap la establece en el estado PRELOAD la API StateManager para la precarga, o el cargador configurado está precargando datos en la correlación de respaldo. |
ONLINE | La instancia de BackingMap está lista para funcionar como instancia local, instancia de cliente o instancia de un fragmento de réplica o primario del servidor. Todos los plug-ins de ObjectGrid de la instancia de ObjectGrid propietarios de esta instancia de BackingMap se han inicializado. Este estado estable es típico de la BackingMap. El estado ONLINE podría volver a producirse cuando se produzcan actividades de colocación de fragmentos (promoción o relegación). |
QUIESCE | Se está deteniendo el trabajo en la BackingMap como resultado de la API StateManager o de otro suceso. No se permite ningún trabajo nuevo. El plug-in finaliza cualquier trabajo existente lo antes posible. |
OFFLINE | Todo el trabajo se ha detenido en la BackingMap como resultado de la API StateManager o de otro suceso. No se permite ningún trabajo nuevo. |
DESTROYING | La instancia de BackingMap está iniciando la fase de destrucción. Los plug-ins BackingMap para la instancia están a punto de ser destruidos. |
DESTROYED | La instancia de BackingMap y todos los plug-ins BackingMap se han destruido. |
Supongamos que el nombre de clase del escucha de sucesos de eXtreme Scale es la clase com.company.org.MyBackingMapLifecycleListener. La clase implementa la interfaz BackingMapLifecycleListener.
<?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>
Proporcione este archivo al plug-in ObjectGridManager para facilitar la creación de esta configuración. La instancia de BackingMap creada tiene un escucha BackingMapLifecycleListener establecido en el ObjectGrid myGrid.
Al igual que BackingMapLifecycleListener, otros plug-ins BackingMap, como por ejemplo Loader o MapIndexPlugin, que especifica mediante XML y que también implementan la interfaz BackingMapLifecycleListener, se añadirán automáticamente como escuchas del ciclo de vida.