Plug-in BackingMapLifecycleListener

Um plug-in BackingMapLifecycleListener recebe a notificação de eventos de mudança de estado do ciclo de vida do WebSphere eXtreme Scale para o mapa de apoio.

O plug-in BackingMapLifecycleListener recebe um evento contendo um objeto BackingMapLifecycleListener.State para cada mudança de estado do mapa de apoio. Qualquer plug-in BackingMap que também implementa a interface BackingMapLifecycleListener será automaticamente ser incluído como um listener na instância do BackingMap na qual o plug-in está registrado.

Visão Geral

Um plug-in BackingMapLifecycleListener é útil quando um plug-in BackingMap existente precisa executar atividades referentes às atividades em um plug-in relacionado. Como exemplo, um plug-in do carregador precisar recuperar a configuração a partir de um plug-in MapIndexPlugin ou DataSerializer cooperantes.

Ao implementar a interface BackingMapLifecycleListener e detectar o evento BackingMapLifecycleListener.State.INITIALIZED, o carregador pode saber sobre o estado de outros plug-ins na instância do BackingMap. O carregador pode recuperar informações com segurança a partir do plug-in MapIndexPlugin ou DataSerializer cooperante, desde que o BackingMap esteja no estado INITIALIZED, significando que o método initialize() do outro plug-in foi chamado.

Um BackingMapLifecycleListener pode ser incluídos ou removidos a qualquer momento, seja antes ou depois do ObjectGrid e seus BackingMaps são inicializados.

Gravar o Plug-in BackingMapLifecycleListener

Um plug-in BackingMapLifecycleListener deve implementar a interface BackingMapLifecycleListener para receber notificações sobre eventos significativos do eXtreme Scale . Qualquer plug-in BackingMap pode implementar a interface BackingMapLifecycleListener e ser automaticamente incluído como um listener quando ele também for incluído no mapa de apoio.

Para obter mais informações sobre essas interfaces, consulte a Documentação da API.

Evento de Ciclo de Vida e Relacionamentos de Plug-in

O BackingMapLifecycleListener recupera o estado do ciclo de vida a partir do evento no método backingMapStateChanged, por exemplo:
public void backingMapStateChanged(BackingMap map, 
                                   LifecycleEvent event) 
throws LifecycleFailedException {
  switch(event.getState()) {
    case INITIALIZED: // All other plug-ins are initialized.
      // Retrieve reference to plug-in X for use from map.
      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 o relacionamento entre os eventos de ciclo de vida enviados para um plug-in BackingMapLifecycleListener e os estados do BackingMap e de outros objetos do plug-in.
Valor de BackingMapLifecycleListener.State Descrição
INITIALIZING A fase de inicialização do BackingMap está começando. O BackingMap e os plug-ins do BackingMap estão prestes a serem inicializados.
INITIALIZED A fase de inicialização do BackingMap foi concluída. Todos os plug-ins do BackingMap foram inicializados. O estado INITIALIZED pode recorrer quando as atividades de posicionamento de shard (promoção ou rebaixamento) ocorrem.
STARTING A instância do BackingMap 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. Todos os plug-ins do ObjectGrid na instância do ObjectGrid que possuem esta instância do BackingMap foram inicializados. O estado STARTING pode recorrer quando as atividades de posicionamento de shard (promoção ou rebaixamento) ocorrem.
PRELOAD A instância do BackingMap está configurada para o estado PRELOAD pela API StateManager para pré-carregamento ou o carregador configurado está pré-carregando dados no mapa de apoio.
ONLINE A instância do BackingMap 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. Todos os plug-ins do ObjectGrid na instância do ObjectGrid que possuem esta instância do BackingMap foram inicializados. Esse estado estável é típico do BackingMap. O estado ONLINE pode recorrer quando as atividades de posicionamento de shard (promoção ou rebaixamento) ocorrem.
QUIESCE O trabalho está parando no BackingMap como resultado da API StateManager ou de outro evento. Nenhum trabalho novo é permitido. Seu plug-in termina qualquer trabalho existente o mais breve possível.
OFFLINE Todo o trabalho foi interrompido no BackingMap como resultado da API StateManager ou de outro evento. Nenhum trabalho novo é permitido.
DESTROYING A instância do BackinMap está iniciando a fase de destruição. Os plug-ins do BackingMap para a instância estão prestes a serem destruídos.
DESTROYED A instância do BackingMap e todos os plug-ins de BackingMap foram destruídos.

Configurar um Plug-in BackingMapLifecycleListener com XML

Suponha que o nome da classe do listener de eventos do eXtreme Scale seja a classe com.company.org.MyBackingMapLifecycleListener. Essa classe implementa a interface BackingMapLifecycleListener.

É possível configurar um plug-in BackingMapLifecycleListener usando XML. O texto a seguir deve estar no arquivo XML da grade de objeto:
<?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>

Forneça este arquivo para o plug-in ObjectGridManager para facilitar a criação desta configuração. A instância BackingMap criada possui um listener BackingMapLifecycleListener configurado no ObjectGrid myGrid.

Assim como o BackingMapLifecycleListener, outros plug-ins BackingMap, como Loader ou MapIndexPlugin, que são especificados usando XML e que também implementam a interface BackingMapLifecycleListener, serão incluídos automaticamente como listeners de ciclo de vida.