Control del ciclo de vida de un ObjectGrid con la interfaz ObjectGridManager

Puede utilizar la interfaz ObjectGridManager para controlar el ciclo de vida de una instancia de ObjectGrid utilizando un bean de arranque o un servlet.

Gestión del ciclo de vida con un bean de arranque

Se utiliza un bean de arranque para controlar el ciclo de vida de una instancia de ObjectGrid. Un bean de arranque se carga cuando se inicia una aplicación. Con un bean de arranque, el código puede ejecutarse cuando una aplicación se inicia o se detiene del modo previsto. Para crear un bean de arranque, utilice la interfaz com.ibm.websphere.startupservice.AppStartUpHome inicial y utilice la interfaz com.ibm.websphere.startupservice.AppStartUp remota. Implemente los métodos start y stop en el bean. El método start se invoca cuando la aplicación se inicia. El método stop se invoca cuando la aplicación concluye. El método start se utiliza para crear instancias de ObjectGrid. El método stop se utiliza para eliminar las instancias de ObjectGrid. A continuación aparece un fragmento de código que demuestra esta gestión del ciclo de vida de ObjectGrid en un bean de arranque:
public class MyStartupBean implements javax.ejb.SessionBean {
    private ObjectGridManager objectGridManager;

    /* Los métodos de la interfaz SessionBean se han
     * omitido en este ejemplo por razones de brevedad*/

    public boolean start(){
        // Inicio del bean de arranque
        // Se llama a este método cuando se inicia la aplicación
        objectGridManager = ObjectGridManagerFactory.getObjectGridManager();
        try {
            // crear 2 ObjectGrids y colocar en memoria caché estas instancias
            ObjectGrid bookstoreGrid = objectGridManager.createObjectGrid("bookstore", true);
            bookstoreGrid.defineMap("book");
            ObjectGrid videostoreGrid = objectGridManager.createObjectGrid("videostore", true);
            // dentro de la JVM,
            // estas ObjectGrids pueden recuperarse ahora del
            //ObjectGridManager mediante el método getObjectGrid(String)
        } catch (ObjectGridException e) {
            e.printStackTrace();
            return false;
        }

        return true;
    }

    public void stop(){
        // Detención del bean de arranque
        // Se llama a este método cuando se detiene la aplicación
        try {
            // eliminar los ObjectGrids almacenadas en memoria caché y destruirlos
            objectGridManager.removeObjectGrid("bookstore", true);
            objectGridManager.removeObjectGrid("videostore", true);
        } catch (ObjectGridException e) {
            e.printStackTrace();
        }
    }
}
Después de que se llame al método start, se recuperan las instancias de ObjectGrid recién creadas de la interfaz ObjectGridManager. Por ejemplo, si se incluye un servlet en la aplicación, el servlet accede a eXtreme Scale utilizando el siguiente fragmento de código:
ObjectGridManager objectGridManager = 
	ObjectGridManagerFactory.getObjectGridManager();
ObjectGrid bookstoreGrid = objectGridManager.getObjectGrid("bookstore");
ObjectGrid videostoreGrid = objectGridManager.getObjectGrid("videostore");

Gestión del ciclo de vida con un servlet

Para gestionar el ciclo de vida de un ObjectGrid en un servlet, puede utilizar el método init para crear una instancia de ObjectGrid y el método destroy para eliminar la instancia de ObjectGrid. Si la instancia de ObjectGrid se almacena en memoria caché, se recupera y manipula en el código del servlet. El código de ejemplo que demuestra la creación, manipulación y destrucción de ObjectGrid dentro de un servlet es el siguiente:
public class MyObjectGridServlet extends HttpServlet implements Servlet {
    private ObjectGridManager objectGridManager;

    public MyObjectGridServlet() {
        super();
    }

    public void init(ServletConfig arg0) throws ServletException {
        super.init();
        objectGridManager = ObjectGridManagerFactory.getObjectGridManager();
        try {
            // crear y almacenar en memoria caché un ObjectGrid llamado bookstore
            ObjectGrid bookstoreGrid = 
						objectGridManager.createObjectGrid("bookstore", true);
            bookstoreGrid.defineMap("book");
        } catch (ObjectGridException e) {
            e.printStackTrace();
        }
    }

    protected void doGet(HttpServletRequest req, HttpServletResponse res)
        throws ServletException, IOException {
        ObjectGrid bookstoreGrid = objectGridManager.getObjectGrid("bookstore");
        Session session = bookstoreGrid.getSession();
        ObjectMap bookMap = session.getMap("book");
        // realizar operaciones en el ObjectGrid almacenado en memoria caché
        // ...
// Cierre la sesión (opcional en la versión 7.1.1 y posterior) para un mejor rendimiento
	session.close();
	 }
    public void destroy() {
        super.destroy();
        try {
            // eliminar y destruir el ObjectGrid bookstore almacenado en memoria caché
            objectGridManager.removeObjectGrid("bookstore", true);
        } catch (ObjectGridException e) {
            e.printStackTrace();
        }
    }
}