Plug-in BackingMapLifecycleListener

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.

Visión general

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.

Escribir un plug-in BackingMapLifecycleListener

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.

Relaciones de plug-in y suceso de ciclo de vida

BackingMapLifecycleListener recupera el estado de ciclo de vida del suceso en el método backingMapStateChanged; por ejemplo:
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;
  }
}
La tabla siguiente describe la relación entre los sucesos de ciclo de vida enviados a un plug-in BackingMapLifecycleListener y los estados de la BackingMap y otros objetos de plug-in.
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.

Configurar un plug-in BackingMapLifecycleListener con XML

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.

Puede configurar un plug-in BackingMapLifecycleListener utilizando XML. El texto siguiente debe estar en el archivo XML de la cuadrícula de objetos:
<?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.