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.
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.
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.
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. |
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.
<?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.