Um plug-in ObjectGridLifecycleListener recebe a notificação de ciclo de vida do WebSphere eXtreme Scale, os eventos de mudança de estado para a grade de dados.
Um plug-in ObjectGridLifecycleListener é útil quando um plug-in ObjectGrid existente precisa executar atividades ligadas às atividades de um plug-in relacionado. Como exemplo, um plug-in TransactionCallback pode precisar recuperar a configuração a partir de um plug-in ObjectGridEventListener ou ShardListener cooperantes.
Ao implementar a interface ObjectGridLifecycleListener e detectar o evento ObjectGridLifecycleListener.State.INITIALIZED, o plug-in TransactionCallback pode detectar o estado de outros plug-ins na instância do ObjectGrid. O plug-in TransactionCallback pode recuperar com segurança informações a partir do plug-in ObjectGridEventListener ou do plug-in ShardListener cooperante, desde que o ObjectGrid esteja em um estado INICIALIZADO, significando que o método initialize() do outro plug-in foi chamado.
É possível incluir um plug-in ObjectGridLifecycleListener a qualquer momento, antes ou depois de inicializar o ObjectGrid.
Um plug-in ObjectGridLifecycleListener deve implementar a interface ObjectGridLifecycleListener para receber notificações sobre eventos significativos do eXtreme Scale. Qualquer plug-in ObjectGrid pode implementar a interface ObjectGridLifecycleListener e ser incluído automaticamente como um listener quando ele também for incluído no ObjectGrid.
Para obter mais informações sobre essas interfaces, consulte a Documentação da API.
public void objectGridStateChanged(ObjectGrid grid,
LifecycleEvent event)
throws LifecycleFailedException {
switch(event.getState()) {
case INITIALIZED: // All other plug-ins are initialized.
// Retrieve reference to plug-in X for use from grid.
break;
case DESTROYING: // Destroy phase is starting
// Eliminate reference to plug-in X it may be destroyed before this plug-in
break;
}
A tabela a seguir descreve a relação entre os eventos de ciclo de vida enviados para um ObjectGridLifecycleListener e os estados do ObjectGrid e de outros objetos do plug.
Valor de ObjectGridLifecycleListener.State | Descrição |
---|---|
INITIALIZING | A fase de inicialização do ObjectGrid está começando. O ObjectGrid e os plug-ins do ObjectGrid estão prestes a serem inicializados. |
INITIALIZED | A fase de inicialização do ObjectGrid foi concluída. Todos os plug-ins do ObjectGrid foram inicializados. O estado INITIALIZED pode recorrer quando as atividades de posicionamento de shard (promoção ou rebaixamento) ocorrem. Todos os plug-ins de BackingMap nas instâncias do BackingMap de propriedade desta instância do ObjectGrid foram inicializados. |
STARTING | A instância do ObjectGrid está sendo ativada para uso como uma instância local, como uma instância do cliente ou como uma instância em um shard primário ou de réplica no servidor. O estado STARTING pode recorrer quando as atividades de posicionamento de shard (promoção ou rebaixamento) ocorrem. |
PRELOAD | A instância do ObjectGrid está configurada para o estado PRELOAD pela API StateManager ou para outra configuração. |
ONLINE | A instância do ObjectGrid está pronta para funcionar como uma instância local, como uma instância do cliente ou como uma instância em um shard primário ou de réplica no servidor. Esse estado estável é típico do ObjectGrid. O estado ONLINE pode recorrer quando as atividades de posicionamento de shard (promoção ou rebaixamento) ocorrem. |
QUIESCE | O trabalho está parando no ObjectGrid como resultado da API StateManager ou de outro evento. Nenhum trabalho novo é permitido. Termine qualquer trabalho existente o mais breve possível. |
OFFLINE | Todo o trabalho é interrompido no ObjectGrid como resultado da API StateManager ou de outro evento. Nenhum trabalho novo é permitido. |
DESTROYING | A instância do ObjectGrid está iniciando a fase de destruição. Os plug-ins do ObjectGrid para a instância estão prestes a serem destruídos. Durante a fase de destruição, todas as instâncias do BackingMap possuídas por esta instância do ObjectGrid também serão destruídas. |
DESTROYED | A instância do ObjectGrid, suas instâncias do BackingMap e todos os plug-ins do ObjectGrid forem destruídos. |
Suponha que o nome da classe do listener de eventos do eXtreme Scale seja a classe com.company.org.MyObjectGridLifecycleListener. Essa classe implementa a interface 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>
Observe que as declarações de bean aparecem antes das declarações do backingMap. Forneça este arquivo para o plug-in ObjectGridManager para facilitar a criação desta configuração.
Tal como o ObjectGridLifecycleListener registrado no exemplo anterior, outros plug-ins do ObjectGrid, CollisionArbiter ou TransactionCallback por exemplo, que são especificados usando XML que também implementa a interface ObjectGridLifecycleListener, serão incluídos automaticamente como listeners de ciclo de vida.