Creación de instancia de ObjectGrid con la interfaz ObjectGridManager

Cada uno de estos métodos crea una instancia local de un ObjectGrid.

Instancia local en memoria

El siguiente fragmento de código ilustra cómo obtener y configurar una instancia local de ObjectGrid con eXtreme Scale.

// Obtener una referencia ObjectGrid local
        // puede crear un ObjectGrid nuevo o obtener uno configurado
        // definido en el archivo ObjectGrid xml
        ObjectGridManager objectGridManager = 
					ObjectGridManagerFactory.getObjectGridManager();
        ObjectGrid ivObjectGrid = 
					objectGridManager.createObjectGrid("objectgridName");

        // Añadir TransactionCallback a ObjectGrid
        HeapTransactionCallback tcb = new HeapTransactionCallback();
        ivObjectGrid.setTransactionCallback(tcb);

        // Definir un objeto BackingMap
        // si BackingMap está configurado en el archivo ObjectGrid xml,
        // sólo deberá obtenerlo.
        BackingMap ivBackingMap = ivObjectGrid.defineMap("myMap");

        // Añadir un Loader a BackingMap
        Loader ivLoader = new HeapCacheLoader();
        ivBackingMap.setLoader(ivLoader);

        // inicializar ObjectGrid
        ivObjectGrid.initialize();

        // Obtener una sesión que debe utilizar la hebra actual.
        // La sesión no puede compartirse entre diversas hebras.
        Session ivSession = ivObjectGrid.getSession();

        // Obtener ObjectMap de ObjectGrid Session
        ObjectMap objectMap = ivSession.getMap("myMap");

Configuración compartida predeterminada

El código siguiente es un caso sencillo de creación de un ObjectGrid que se compartirá entre numerosos usuarios.

import com.ibm.websphere.objectgrid.ObjectGrid;
import com.ibm.websphere.objectgrid.ObjectGridException;
import com.ibm.websphere.objectgrid.ObjectGridManagerFactory;
import com.ibm.websphere.objectgrid.ObjectGridManager;
final ObjectGridManager oGridManager= 
		ObjectGridManagerFactory.getObjectGridManager();
ObjectGrid employees = 
	oGridManager.createObjectGrid("Employees",true);
employees.initialize();
employees.
/*el ejemplo continúa...*/

El fragmento de código Java anterior crea y almacena en la memoria caché el Employees ObjectGrid. Employees ObjectGrid se inicializa con la configuración predeterminada y está listo para usar. El segundo parámetro del método createObjectGrid está establecido en true, que indica a ObjectGridManager que almacene en memoria caché la instancia de ObjectGrid que crea. Si este parámetro estuviera establecido en false, la instancia no se almacenaría en memoria caché. Cada instancia de ObjectGrid tiene un nombre, y la instancia puede compartirse entre diversos clientes o usuarios basándose en ese nombre.

Si la instancia de ObjectGrid se utiliza en compartimiento de igual a igual, el almacenamiento en memoria caché debe establecerse en true. Si desea más información sobre el compartimiento de igual a igual, consulte el tema Distribución de cambios entre máquinas virtuales Java de igual.

Configuración XML

WebSphere eXtreme Scale es altamente configurable. El ejemplo anterior demuestra cómo crear un objeto ObjectGrid sencillo, sin ninguna configuración. Este ejemplo muestra cómo crear una instancia ObjectdGrid previamente configurada basada en un archivo de configuración XML. Puede configurar una instancia de ObjectGrid mediante programación o mediante un archivo de configuración XML. También puede configurar ObjectGrid mediante una combinación de estos dos procedimientos. La interfaz ObjectGridManager permite la creación de una instancia de ObjectGrid basada en la configuración XML. La interfaz ObjectGridManager tiene varios métodos que toman una dirección URL como argumento. Cada archivo XML que se pasa a ObjectGridManager debe estar validado en al esquema. La validación de XML puede inhabilitarse sólo cuando el archivo se ha validado previamente y no se han realizado cambios en el archivo desde su última validación. Si se inhabilita la validación, se evita una pequeña sobrecarga, pero podría utilizarse un archivo XML no válido. IBM® Java Developer Kit (JDK) Versión 5 tiene soporte para la validación de XML. Si se utiliza un JDK que no ofrezca este soporte, podría necesitarse Apache Xerces para validar el XML.

El siguiente fragmento de código Java demuestra cómo pasar un archivo de configuración de XML para crear un ObjectGrid.

import java.net.MalformedURLException;
import java.net.URL;
import com.ibm.websphere.objectgrid.ObjectGrid;
import com.ibm.websphere.objectgrid.ObjectGridException;
import com.ibm.websphere.objectgrid.ObjectGridManager;
import com.ibm.websphere.objectgrid.ObjectGridManagerFactory;
boolean validateXML = true; // activar validación de XML
boolean cacheInstance = true; // Almacenar en memoria caché la instancia
String objectGridName="Employees"; // Nombre de ObjectGrid URL
allObjectGrids = new URL("file:test/myObjectGrid.xml");
final ObjectGridManager oGridManager= 
	ObjectGridManagerFactory.getObjectGridManager();
 ObjectGrid employees = 
	oGridManager.createObjectGrid(objectGridName, allObjectGrids, 
		bvalidateXML, cacheInstance);
El archivo XML puede contener información de configuración para varios objetos ObjectGrid. El fragmento de código anterior devuelve específicamente ObjectGrid Employees, y presupone que la configuración de Employees se ha definido en el archivo.

Métodos createObjectGrid

.
/**
 * Un método de fábrica sencillo para devolver una instancia de un
 * ObjectGrid. Se asigna un nombre exclusivo.
 * La instancia de ObjectGrid no se almacena en memoria caché.
 * Los usuarios pueden usar {@link ObjectGrid#setName(String)} para cambiar el
 * nombre de ObjectGrid.
 *
 * @return ObjectGrid una instancia de ObjectGrid con un nombre exclusivo asignado
 * @throws ObjectGridException cualquier error encontrado durante la
 * creación de ObjectGrid
 */
public ObjectGrid createObjectGrid() throws ObjectGridException;

/**
 * Un método de fábrica sencillo para devolver una instancia de ObjectGrid con el
 * nombre especificado. Las instancias de ObjectGrid se pueden almacenar en memoria caché. 
 * Si un ObjectGrid con este nombre ya se ha almacenado en memoria caché, se producirá
 * una excepción ObjectGridException.
 *
 * @param objectGridName El nombre de ObjectGrid que se debe crear.
 * @param cacheInstance true, si la instancia ObjectGrid se debe almacenar en caché
 * @return una instancia de ObjectGrid
 * @este nombre ya se ha almacenado en memoria caché o
 * se ha producido un error durante la creación de ObjectGrid.
 */
public ObjectGrid createObjectGrid(String objectGridName, boolean cacheInstance) 
		throws ObjectGridException;

/**
 * Crear una instancia de ObjectGrid con el nombre de ObjectGrid especificado. La
 * instancia de ObjectGrid creada se almacenará en memoria caché.
 * @param objectGridName El nombre de la instancia de ObjectGrid que se debe crear.
 * @return una instancia de ObjectGrid
 * @throws ObjectGridException si una ObjectGrid con este nombre ya se
 * ha almacenado en memoria caché, o si ha encontrado un error durante la
 * creación de ObjectGrid
 */
public ObjectGrid createObjectGrid(String objectGridName) 
		throws ObjectGridException;

/**
 * Crear una instancia de ObjectGrid basada en el nombre ObjectGrid especificado y el
 * archivo XML. La instancia de ObjectGrid definida en el archivo XML con el nombre de
 * ObjectGrid especificado se creará y se devolverá. Si dicho ObjectGrid
 * no se encuentra en el archivo XML, se emitirá una excepción.
 *
 * Esta instancia de ObjectGrid se puede almacenar en memoria caché.
 *
 * Si la dirección URL es nula, se pasará por alto. Es este caso, este método
 * se comporta de la misma manera que {@link #createObjectGrid(String, boolean)}.
 *
 * @param objectGridName El nombre de la instancia de ObjectGrid que se debe devolver.
No
 * debe ser null.
 * @param xmlFile una dirección URL para un archivo XML de formato correcto
basado en el esquema ObjectGrid.
 * @param enableXmlValidation si true, se valida el XML
 * @param cacheInstance Un valor booleano que indica si las
 * instancias de ObjectGrid
 * definidas en el XML se almacenarán o no en memoria caché. Si es true
 * (verdadero), la instancia almacenará en memoria caché.
 *
 * @throws ObjectGridException si existe un ObjectGrid con el mismo nombre
 * se ha almacenado en memoria caché previamente, no se puede encontrar ningún
 * nombre de ObjectGrid en el archivo XML, ni ningún otro error durante la
 * creación de ObjectGrid.
 * @return una instancia de ObjectGrid
 * @see ObjectGrid
 */
public ObjectGrid createObjectGrid(String objectGridName, final URL xmlFile,
final boolean enableXmlValidation, boolean cacheInstance) 
	throws ObjectGridException;

/**
 * Procesar un archivo XML y crear una lista de objetos ObjectGrid basados
 * en el archivo.
 * Estas instancias de ObjectGrid pueden almacenarse en memoria caché.
 * Se emitirá una excepción ObjectGridException al intentar almacenar en
 * memoria caché un ObjectGrid recién creado
 * que tenga el mismo nombre que un ObjectGrid que ya se haya almacenado en
 * memoria caché.
 *
 * @param xmlFile El archivo que define un ObjectGrid o varios
 * ObjectGrids
 * @param enableXmlValidation Si se establece en true, se validará el archivo XML
 * en el esquema
 * @param cacheInstances Se establece en true para almacenar en caché todas las
instancias de ObjectGrid
 * creadas basadas en el archivo
 * @return una instancia de ObjectGrid
 * @throws ObjectGridException si se intenta crear y almacenar en caché
 * un ObjectGrid con el mismo nombre que
 * un ObjectGrid que ya se haya almacenado en memoria caché, o si se produce
 * cualquier otro error durante la
 * creación de ObjectGrid
 */
public List createObjectGrids(final URL xmlFile, final boolean enableXmlValidation,
boolean cacheInstances) throws ObjectGridException;

/** Crear todos los ObjectGrid que se encuentran en el archivo XML. El archivo
 * XML se validará en el esquema. Cada instancia de ObjectGrid que se crea se
 * almacenará en memoria caché. Se emitirá un ObjectGridException al intentar almacenar
 * en memoria caché un ObjectGrid que se acaba de crear que tiene el mismo nombre que un
 * ObjectGrid que ya se ha almacenado en memoria caché.
 * @param xmlFile El archivo XML a procesar. Se crearán
 * ObjectGrids basados en el contenido del archivo.
 * @return Una lista de instancias de ObjectGrid que se han creado.
 * @throws ObjectGridException si un ObjectGrid, con el mismo nombre que
 * los encontrados en el XML, ya se ha almacenado en memoria caché, o si se
 * produce otro error durante la creación de ObjectGrid.
 */
public List createObjectGrids(final URL xmlFile) throws ObjectGridException;

/**
 * Procesar el archivo XML y crear una única instancia de ObjectGrid con
 * el nombre de ObjectGrid especificado sólo si se encuentra un ObjectGrid con
 * ese nombre en el archivo. Si no se ha definido ningún ObjectGrid con ese
 * nombre en el archivo XML, se producirá una excepción ObjectGridException.
 * La instancia de ObjectGrid creada se almacenará en memoria caché.
 * @param objectGridName Nombre del ObjectGrid a crear. Este ObjectGrid debe
definirse en el archivo XML.
 * @param xmlFile El archivo XML a procesar
 * @return Un ObjectGrid recién creado
 * @throws ObjectGridException si un ObjectGrid con el mismo nombre se ha
 * almacenado en memoria caché previamente, no se puede encontrar ningún nombre
 * de ObjectGrid en el archivo XML, ni ningún otro error durante la creación de
 * ObjectGrid.
 */
public ObjectGrid createObjectGrid(String objectGridName, URL xmlFile) 
		throws ObjectGridException;