Lebenszyklus eines ObjectGrids mit der Schnittstelle ObjectGridManager steuern

Sie können die Schnittstelle "ObjectGridManager" verwenden, um den Lebenszyklus einer ObjectGrid-Instanz über eine Startup-Bean oder ein Servlet zu steuern.

Lebenszyklus über eine Startup-Bean steuern

Eine Startup-Bean wird verwendet, um den Lebenszyklus einer ObjectGrid-Instanz zu steuern. Eine Startup-Bean wird geladen, wenn eine Anwendung gestartet wird. Mit einer Startup-Bean kann Code ausgeführt werden, sobald eine Anwendung erwartungsgemäß gestartet oder gestoppt wird. Zum Erstellen einer Startup-Bean verwenden Sie die Home-Schnittstelle "com.ibm.websphere.startupservice.AppStartUpHome" und die Remote-Schnittstelle "com.ibm.websphere.startupservice.AppStartUp". Implementieren Sie die Methoden "start" und "stop" in der Bean. Die Methode "start" wird aufgerufen, wenn die Anwendung gestartet wird. Die Methode "stop" wird aufgerufen, wenn die Anwendung beendet wird. Die Methode "start" wird verwendet, um ObjectGrid-Instanzen zu erstellen. Die Methode "stop" wird verwendet, um ObjectGrid-Instanzen zu entfernen. Im Folgenden sehen Sie ein Code-Snippet, das dieses Management des ObjectGrid-Lebenszyklus in einer Startup-Bean demonstriert:
public class MyStartupBean implements javax.ejb.SessionBean {
    private ObjectGridManager objectGridManager;

    /* Die Methoden in der Schnittstelle "SessionBean" wurden
     * in diesem Beispiel weggelassen, damit das Beispiel nicht
     * zu lang wird. */

    public boolean start(){
        // Startup-Bean starten.
        // Diese Methode wird aufgerufen, wenn die Anwendung gestartet wird.
        objectGridManager = ObjectGridManagerFactory.getObjectGridManager();
        try {
            // 2 ObjectGrids erstellen und die Instanzen zwischenspeichern.
            ObjectGrid bookstoreGrid = objectGridManager.createObjectGrid("bookstore", true);
            bookstoreGrid.defineMap("book");
            ObjectGrid videostoreGrid = objectGridManager.createObjectGrid("videostore", true);
            // In der JVM könne diese ObjectGrids jetzt über die Methode
            // getObjectGrid(String) vom ObjectGridManager abgerufen werden.
        } catch (ObjectGridException e) {
            e.printStackTrace();
            return false;
        }

        return true;
    }

    public void stop(){
        // Startup-Bean stoppen.
        // Diese Methode wird aufgerufen, wenn die Anwendung gestoppt wird.
        try {
            // Zwischengespeicherte ObjectGrids entfernen und löschen.
            objectGridManager.removeObjectGrid("bookstore", true);
            objectGridManager.removeObjectGrid("videostore", true);
        } catch (ObjectGridException e) {
            e.printStackTrace();
        }
    }
}
Nach dem Aufruf der Methode "start" werden die neu erstellten ObjectGrid-Instanzen von der Schnittstelle "ObjectGridManager" abgerufen. Wenn beispielsweise ein Servlet in der Anwendung enthalten ist, greift das Servlet über das folgende Code-Snippet auf eXtreme Scale zu:
ObjectGridManager objectGridManager = 
	ObjectGridManagerFactory.getObjectGridManager();
ObjectGrid bookstoreGrid = objectGridManager.getObjectGrid("bookstore");
ObjectGrid videostoreGrid = objectGridManager.getObjectGrid("videostore");

Lebenszyklus über ein Servlet steuern

Wenn Sie den Lebenszyklus eines ObjectGrid über ein Servlet verwalten möchten, können Sie die Methode "init" verwenden, um eine ObjectGrid-Instanz zu erstellen, und die Methode "destroy", um die ObjectGrid-Instanz zu entfernen. Wenn die ObjectGrid-Instanz zwischengespeichert ist, wird sie im Servlet-Code abgerufen und bearbeitet. Im Folgenden sehen Sie einen Beispielcode, der das Erstellen, Bearbeiten und Löschen eines ObjectGrids demonstriert:
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 {
            // ObjectGrid mit dem Namen "bookstore" erstellen und zwischenspeichern.
            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");
        // Operationen für das zwischengespeicherte ObjectGrid durchführen.
        // ...
	// Sitzung schließen (optional in Version 7.1.1 und höher), um die Leistung zu verbessern
	session.close();
	 }
    public void destroy() {
        super.destroy();
        try {
            // Zwischengespeichertes ObjectGrid "bookstore" entfernen und löschen.
            objectGridManager.removeObjectGrid("bookstore", true);
        } catch (ObjectGridException e) {
            e.printStackTrace();
        }
    }
}