Plug-in ObjectGridLifecycleListener

Un plug-in ObjectGridLifecycleListener recibe notificación de sucesos de cambio de estado del ciclo de vida de WebSphere eXtreme Scale de la cuadrícula de datos.

El plug-in ObjectGridLifecycleListener recibe un suceso que contiene un objeto ObjectGridLifecycleListener.State para cada cambio de estado del ObjectGrid. Cualquier plug-in ObjectGrid que implemente también la interfaz ObjectGridLifecycleListener se añadirá automáticamente como escucha para la instancia de ObjectGrid donde se ha registro el plug-in.

Visión general

Un plug-in ObjectGridLifecycleListener resulta útil cuando un plug-in ObjectGrid existente debe realizar actividades relativas a actividades en un plug-in relacionado. Como ejemplo, el plug-in TransactionCallback podría recuperar la configuración de un plug-in ObjectGridEventListener o ShardListener cooperativo.

Mediante la implementación de la interfaz ObjectGridLifecycleListener, y la detección del suceso ObjectGridLifecycleListener.State.INITIALIZED, el plug-in TransactionCallback puede detectar el estado de otros plug-ins en la instancia de ObjectGrid. El plug-in TransactionCallback puede recuperar con seguridad información del plug-in ObjectGridEventListener o ShardListener cooperativo, lo que significa que en el otro plug-in se ha llamado a su método initialize().

Puede añadir un plug-in ObjectGridLifecycleListener en cualquier momento, antes o después de la inicialización del ObjectGrid.

Escribir un plug-in ObjectGridLifecycleListener

Un plug-in ObjectGridLifecycleListener debe implementar la interfaz ObjectGridLifecycleListener para recibir notificaciones sobre sucesos significativos de eXtreme Scale. Cualquier plug-in ObjectGrid puede implementar la interfaz ObjectGridLifecycleListener y añadirse automáticamente como escucha cuando se añade también al ObjectGrid.

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

ObjectGridLifecycleListener recupera el estado de ciclo de vida del suceso en el método objectgridStateChanged; por ejemplo:
public void objectGridStateChanged(ObjectGrid grid, 
                                   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 cuadrícula.
      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 sucesos de ciclo de vida enviados al ObjectGridLifecycleListener y los estados del ObjectGrid y otros objetos de plug-in.

Valor de ObjectGridLifecycleListener.State Descripción
INITIALIZING Se está iniciando la fase de inicialización del ObjectGrid. El ObjectGrid y los plug-ins del ObjectGrid están a punto de inicializarse.
INITIALIZED La fase de inicialización del ObjectGrid se ha completado. Todos los plug-ins del ObjectGrid 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). Todos los plug-ins BackingMap de las instancias de BackingMap propietarias de esta instancia de ObjectGrid se han inicializado.
STARTING La instancia de ObjectGrid se está activando para su uso como instancia local, instancia de cliente o como instancia en un fragmento primario o de réplica en el servidor. 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 ObjectGrid se establece en el estado PRELOAD mediante la API StateManager u otra configuración.
ONLINE La instancia de ObjectGrid está lista para funcionar como instancia local, instancia de cliente o como una instancia de un fragmento primario o de réplica en el servidor. Este estado estable es típico del ObjectGrid. El estado ONLINE podría volver a producirse cuando se produzcan actividades de colocación de fragmentos (promoción o relegación).
QUIESCE El trabajo se está deteniendo en el ObjectGrid como resultado de la API StateManager o de otro suceso. No se permite ningún trabajo nuevo. Finalice cualquier trabajo existente lo antes posible.
OFFLINE Todo el trabajo se ha detenido en el ObjectGrid como resultado de la API StateManager o de otro suceso. No se permite ningún trabajo nuevo.
DESTROYING La instancia de ObjectGrid está iniciando la fase de destrucción. Los plug-ins del ObjectGrid para la instancia están a punto de ser destruidos. Durante la fase de destrucción, todas las instancias de BackingMap que son propiedad de esta instancia de ObjectGrid también se destruyen.
DESTROYED La instancia de ObjectGrid, sus instancias de BackingMap y todos los plug-ins de ObjectGrid se han destruido.

Configure un plug-in ObjectGridLifecycleListener con XML

Supongamos que el nombre de clase del escucha de sucesos de eXtreme Scale es la clase com.company.org.MyObjectGridLifecycleListener. Esta clase implementa la interfaz ObjectGridLifecycleListener.

Puede configurar un plug-in ObjectGridLifecycleListener utilizando XML. El siguiente XML crea una configuración utilizando el ObjectGridLifecycleListener. 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">
            <bean id="ObjectGridLifecycleListener" 
                  className="com.company.org.MyObjectGridLifecycleListener" />
            <backingMap name="Book"/>
        </objectGrid>
    </objectGrids>
</objectGridConfig>

Tenga en cuenta que las declaraciones bean se indican antes que las declaraciones backingMap. Proporcione este archivo al plug-in ObjectGridManager para facilitar la creación de esta configuración.

Al igual que el ObjectGridLifecycleListener registrado en el ejemplo anterior, otros plug-ins de ObjectGrid, CollisionArbiter o TransactionCallback por ejemplo, que se especifican mediante XML que también implementan la interfaz ObjectGridLifecycleListener, se añadirán automáticamente como escuchas de ciclo de vida.