Un plug-in ObjectGridEventListener proporciona sucesos de ciclo de vida de WebSphere eXtreme Scale para ObjectGrid, fragmentos y transacciones. Un plug-in ObjectGridEventListener proporciona notificaciones cuando se inicializa o destruye un ObjectGrid, y cuando se inicia o finaliza una transacción. Los plug-ins ObjectGridEventListener son clases personalizadas que se escriben implementando la interfaz ObjectGridEventListener. De forma opcional, la implementación incluye las subinterfaces ObjectGridEventGroup y sigue las convenciones comunes de plug-in eXtreme Scale.
Cuando el servicio de catálogo coloca los fragmentos del primario de la partición o de réplica en una máquina virtual Java (JVM), se crea una nueva instancia de ObjectGrid en dicha JVM para alojar dicho fragmento. Algunas aplicaciones que necesitan iniciar hebras en la JVM alojan la notificación necesaria primaria de estos sucesos. La interfaz ObjectGridEventGroup.ShardEvents declara los métodos shardActivate y shardDeactivate. Estos métodos se invocan sólo cuando un fragmento está activado como primario y cuando el fragmento se desactiva del primario. Estos dos sucesos permiten a la aplicación iniciar hebras adicionales cuando el fragmento es un primario y detenerlas cuando el fragmento vuelve a ser una réplica o se queda fuera de servicio.
Una aplicación puede determinar qué partición ha sido activada por la búsqueda de un BackingMap específico en la referencia de ObjectGrid que se proporciona al método shardActivate mediante el método ObjectGrid#getMap. La aplicación puede ver el número de partición utilizando el método BackingMap#getPartitionId(). Las particiones están numeradas del 0 hasta el número de particiones en el descriptor de despliegue menos una.
Si un plug-in ObjectGridEventListener implementa las interfaces ObjectGridEventListener y ShardLifecycle, los sucesos de ciclo de vida de fragmentos son los únicos sucesos que se entregan al escucha. Después de implementar cualquiera de las nuevas interfaces internas de ObjectGridEventGroup, eXtreme Scale sólo entrega estos sucesos específicos mediante las nuevas interfaces. Con esta implementación, el código puede ser compatible con versiones anteriores. Si utiliza las nuevas interfaces internas ahora puede recibir sólo los sucesos específicos necesarios.
Para utilizar un plug-in ObjectGridEventListener personalizado, primero cree una clase que implemente la interfaz ObjectGridEventListener y todas las subinterfaces ObjectGridEventGroup opcionales. Añada el escucha personalizado a un ObjectGrid para recibir una notificación de los sucesos significativos. Dispone de dos procedimientos para añadir un plug-in ObjectGridEventListener en la configuración de eXtreme Scale: configuración programática y configuración 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);