Um plug-in ObjectGridEventListener fornece eventos de ciclo de vida do WebSphere eXtreme Scale para o ObjectGrid, shards e transações. Um plug-in ObjectGridEventListener fornece notificações quando um ObjectGrid é inicializado ou destruído, e quando uma transação é iniciada ou encerrada. Plug-ins ObjectGridEventListener são classes customizadas que você grava implementando a interface ObjectGridEventListener. Opcionalmente, a implementação inclui subinterfaces do ObjectGridEventGroup e segue as convenções comuns do plug-in do eXtreme Scale.
Quando o serviço de catálogo colocar shards primários ou de réplica na partição em uma Java virtual machine (JVM), uma nova instância do ObjectGrid será criada nessa JVM para hospedar esse shard. Alguns aplicativos que precisam iniciar os encadeamentos no JVM, hospedam a notificação de necessidade primária desses eventos. A interface ObjectGridEventGroup.ShardEvents declara os métodos shardActivate e shardDeactivate. Esses métodos são chamados apenas quando uma parte é ativada como primária e quando a parte é desativada a partir da primária. Esses dois eventos permitem que o aplicativo inicie encadeamentos adicionais quando o shard for primário e pare os encadeamentos quando o shard voltar a ser uma réplica ou for retirado de serviço.
Um aplicativo pode determinar qual partição foi ativada ao procurar por um BackingMap específico na referência ObjectGrid fornecida para o método shardActivate usando o método ObjectGrid#getMap. O aplicativo pode visualizar, em seguida, o número de partição usando o método BackingMap#getPartitionId(). As partições são numeradas de 0 ao número de partições no descritor de implementação menos um.
Se um plug-in ObjectGridEventListener implementa as interfaces ObjectGridEventListener e ShardLifecycle, então, os eventos de ciclo de vida do shard serão os únicos eventos a serem entregues para o listener. Após implementar qualquer uma das novas interfaces ObjectGridEventGroup internas, o eXtreme Scale entrega apenas esses eventos específicos através de novas interfaces. Com essa implementação, o código pode ser compatível com as versões anteriores. Se você estiver utilizando as novas interfaces internas, poderá agora receber apenas os eventos específicos necessários.
Para utilizar um plug-in ObjectGridEventListener customizado, primeiro crie uma classe que implementa a interface ObjectGridEventListener e quaisquer subinterfaces do ObjectGridEventGroup opcionais. Inclua o listener customizado em um ObjectGrid para receber notificação de eventos importantes. Você tem duas abordagens para incluir um plug-in ObjectGridEventListener na configuração do eXtreme Scale: configuração programática e configuração XML.
ObjectGridManager objectGridManager = ObjectGridManagerFactory.getObjectGridManager();
ObjectGrid myGrid = objectGridManager.createObjectGrid("myGrid", false);
MyObjectGridEventListener myListener = new MyObjectGridEventListener();
myGrid.addEventListener(myListener);
<?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="ObjectGridEventListener"
className="com.company.org.MyObjectGridEventListener" />
<backingMap name="Book"/>
</objectGrid>
</objectGrids>
</objectGridConfig>
ObjectGridManager objectGridManager = ObjectGridManagerFactory.getObjectGridManager();
ObjectGrid myGrid = objectGridManager.createObjectGrid("myGrid", new URL("file:etc/test/myGrid.xml"), true, false);