Interfaz ObjectGrid

Los siguientes métodos le permiten interactuar con una instancia de ObjectGrid.

Crear e inicializar

Consulte el tema sobre la interfaz ObjectGridManager para obtener información sobre los pasos necesarios para crear una instancia de ObjectGrid. Existen dos métodos distintos para crear una instancia de ObjectGrid: mediante programación o mediante configuración de los archivos XML. Consulte Interfaz ObjectGridManager si desea más información.

Get o set y métodos de fábrica

Antes de inicializar la instancia de ObjectGrid, debe llamarse a los métodos set. Si llama a un método set después de que se llame al método initialize, se genera una excepción java.lang.IllegalStateException. Cada uno de los métodos getSession de la interfaz ObjectGrid llaman implícitamente al método initialize. Por lo tanto, debe llamar a los métodos set antes de llamar a los métodos getSession. La única excepción a esta regla se produce al establecer, añadir y eliminar los objetos ObjectGridEventListener. Estos objetos pueden procesarse después de terminado el proceso de inicialización.

La interfaz ObjectGrid contiene los siguientes métodos principales.
Tabla 1. Interfaz ObjectGrid. Métodos principales de ObjectGrid.
Método Descripción

BackingMap defineMap(String name);

defineMap: es un método de fábrica para definir un BackingMap de nombre exclusivo. Para obtener más información sobre las correlaciones de respaldo, consulte la interfaz BackingMap.

BackingMap getMap(String name);

getMap: devuelve un objeto BackingMap previamente definido al llamar a defineMap. Al usar este método, puede configurar BackingMap, si no se ha configurado ya a través de la configuración del XML.

BackingMap createMap(String name);

createMap: crea un objeto BackingMap, pero no lo almacena en caché para que lo use este ObjectGrid. Utilice este método con el método setMaps(List) de la interfaz ObjectGrid, que almacena en la memoria caché BackingMaps para ser utilizados con este ObjectGrid. Utilice estos métodos al configurar un objeto ObjectGrid con la infraestructura Spring.

void setMaps(List mapList);

setMaps: borra los objetos BackingMap que se hayan definido previamente en este ObjectGrid y los sustituye por la lista de BackingMaps proporcionados.

public Session getSession() throws ObjectGridException, TransactionCallbackException;

getSession: devuelve un objeto Session, que proporciona funcionalidad de inicio, confirmación y retrotracción para una unidad de trabajo. Para obtener más información sobre los objetos Session, consulte la interfaz Session.

Session getSession(CredentialGenerator cg);

getSession(CredentialGenerator cg): obtiene una sesión con un objeto CredentialGenerator. Sólo puede llamar a este método un cliente ObjectGrid en un entorno cliente/servidor.

Session getSession(Subject subject);

getSession(Subject subject): permite el uso de un objeto Subject específico en lugar del configurado en ObjectGrid para obtener un objeto Session.

void initialize() throws ObjectGridException;

initialize: se inicializa ObjectGrid y está disponible para su uso general. Este método se llama de forma implícita cuando se llama al método getSession, si ObjectGrid no está en una fase inicializada.

void destroy();

destroy: la infraestructura se desensambla y no se puede utilizar después de llamar a este método.

void setTxTimeout(int timeout);

setTxTimeout: utilice este método para establecer la cantidad de tiempo, en segundos, que tardará en completarse una transacción iniciada por una sesión que creó esta instancia de ObjectGrid. Si una transacción no se completa en el tiempo especificado, el objeto Session que inició la transacción se marca como "tiempo de espera excedido". Marcar un objeto Session como con el tiempo de espera excedido provoca que el siguiente método ObjectMap invocado por el Session de tiempo de espera genere una excepción com.ibm.websphere.objectgrid.TransactionTimeoutException. El objeto se marca sólo como retrotracción, lo cual provoca que la transacción se retrotraiga aunque la aplicación llame al método commit en lugar de al método rollback después de que la excepción TransactionTimeoutException haya sido captada por la aplicación. Un valor de tiempo de espera de 0 indica que a la transacción se le permite un tiempo ilimitado para completarse. Si se utiliza el valor de 0, no se producirá tiempo de espera excedido por parte de la transacción. Si no se llama a este método, cualquier objeto Session devuelto por el método getSession de esta interfaz tiene un valor predeterminado de tiempo de espera de la transacción establecido en 0. Una aplicación puede alterar temporalmente el valor de tiempo de espera de la transacción por objeto Session mediante el uso del método setTransactionTimeout de la interfaz com.ibm.websphere.objectgrid.Session.

También puede configurar el tiempo de espera de transacción con el archivo objectGrid.xml en el caso distribuido.

int getTxTimeout();

getTxTimeout: devuelve el valor del tiempo de espera de la transacción en segundos. Este método devuelve el mismo valor pasado como parámetro de tiempo de espera en el método setTxTimeout. Si no se llama al método setTxTimeout, el método devuelve 0 para indicar que a la transacción se le permite un tiempo ilimitado para completarse.

public int getObjectGridType();

Devuelve el tipo de ObjectGrid. El valor devuelto equivale a una de las constantes declaradas en este interfaz: LOCAL, SERVER o CLIENT.

public void registerEntities(Class[] entities);

Registra una o más entidades basadas en los metadatos de la clase. El registro de entidades debe realizarse antes de la inicialización de ObjectGrid para enlazar un objeto Entity con BackingMap y cualquier índice definido. Este método puede llamarse varias veces.

public void registerEntities(URL entityXML);

Registra una o más entidades de un archivo XML de entidad. El registro de entidades debe realizarse antes de la inicialización de ObjectGrid para enlazar un objeto Entity con BackingMap y cualquier índice definido. Este método puede llamarse varias veces.

void setQueryConfig(QueryConfig queryConfig);

Establece el objeto QueryConfig para este ObjectGrid. Un objeto QueryConfig proporciona configuraciones de consulta para ejecutar consultas de objetos en las correlaciones de este ObjectGrid.

 

   

//Seguridad

void setSecurityEnabled()

setSecurityEnabled: habilita la seguridad. La seguridad está inhabilitada de manera predeterminada.

void setPermissionCheckPeriod(long period);

setPermissionCheckPeriod: este método acepta un solo parámetro que indica la frecuencia con la que debe comprobarse el permiso utilizado para permitir el acceso de un cliente. Si el parámetro es 0, todos los métodos solicitan el mecanismo de autorización, ya sea autorización JAAS o autorización personalizada, para comprobar si el sujeto actual tiene permiso. Puede que esta estrategia provoque problemas de rendimiento en función de la implementación de la autorización. No obstante, este tipo de autorización está disponible si se prefiere. De forma alternativa, si el parámetro es menor que 0, indica el número de milisegundos para almacenar en memoria caché un conjunto de permisos antes de volver al mecanismo de autorización para que los actualice. Con este parámetro mejora el rendimiento, pero si se modifican los permisos del programa de fondo durante este tiempo, ObjectGrid puede permitir o prohibir el acceso aunque se haya modificado el proveedor de seguridad de programa de fondo.

void setAuthorizationMechanism(int authMechanism);

setAuthorizationMechanism: establece el mecanismo de autorización. El valor predeterminado es SecurityConstants.JAAS_AUTHORIZATION.

   

setSubjectSource(SubjectSource ss);

setSubjectSource: establece el plug-in SubjectSource. Este plug-in puede utilizarse para obtener un objeto Subject que represente el cliente ObjectGrid. Este objeto Subject se utiliza para la autorización de ObjectGrid. El tiempo de ejecución de ObjectGrid llama al método SubjectSource.getSubject cuando se utiliza el método ObjectGrid.getSession para obtener una sesión y se ha habilitado la seguridad. Este plug-in resulta útil para un cliente ya autenticado: puede recuperar un objeto Subject autenticado y pasar después a la instancia de ObjectGrid. No se necesita otra autenticación.

setSubjectValidation(SubjectValidation sv);

setSubjectValidation: establece el plug-in SubjectValidation para esta instancia de ObjectGrid. Este plug-in puede utilizarse para validar que un sujeto javax.security.auth.Subject pasado a ObjectGrid es un sujeto válido que no se ha manipulado de forma indebida. Una implementación de este plug-in necesita el soporte del creador del objeto Subject porque sólo el creador sabe si el objeto Subject ha sido manipulado indebidamente. Puede darse el caso, no obstante, de que el creador no sepa si el objeto Subject se ha manipulado de forma indebida. De ser así, este plug-in no debería utilizarse.

void setObjectGridAuthorization(ObjectGrid Authorization ogAuthorization);

Establece ObjectGridAuthorization para esta instancia de ObjectGrid. Si se pasan valores nulos a este método, se elimina un objeto ObjectGridAuthorization ya establecido de una invocación anterior de este método, e indica que este <code>ObjectGrid</code> no está asociado a ningún objeto ObjectGridAuthorization. Este método sólo debe utilizarse cuando se ha habilitado la seguridad ObjectGrid. Si la seguridad ObjectGrid está inhabilitada, no se utilizará el objeto ObjectGridAuthorization proporcionado. Puede utilizarse un plug-in ObjectGridAuthorization para autorizar el acceso a ObjectGrid y las correlaciones.

Interfaz ObjectGrid: plug-ins

La interfaz ObjectGrid tiene varios puntos de plug-in opcionales para interacciones más ampliables.

void addEventListener(ObjectGridEventListener cb);
void setEventListeners(List cbList);
void removeEventListener(ObjectGridEventListener cb);
void setTransactionCallback(TransactionCallback callback);
int reserveSlot(String);
// Plug-ins relacionados con la seguridad
void setSubjectValidation(SubjectValidation subjectValidation);
void setSubjectSource(SubjectSource source);
  • ObjectGridEventListener: se utiliza una interfaz ObjectGridEventListener para recibir notificaciones cuando se producen sucesos significativos en ObjectGrid. Estos sucesos pueden ser inicialización de ObjectGrid, inicio de una transacción, fin de una transacción y destrucción de ObjectGrid. Para escuchar estos sucesos, cree una clase que implemente la interfaz ObjectGridEventListener y la añada a ObjectGrid. Estas escuchas se asocian con cada objeto Session. Consulte el tema que trata sobre escuchas y la interfaz Session para obtener más información.
  • TransactionCallback: una interfaz de escucha TransactionCallback permite que se envíen sucesos transaccionales como señales de inicio, confirmación y retrotracción a esta interfaz. Por norma, se suele utilizar una interfaz de escucha TransactionCallback con un cargador. Para obtener más información, consulte el tema que trata sobre el plug-in TransactionCallback y los cargadores. Estos sucesos pueden utilizarse para coordinar transacciones con un recurso externo o dentro de varios cargadores.
  • reserveSlot: permite que los plug-ins de este ObjectGrid reserven ranuras para su uso en instancias de objetos que tienen ranuras como TxID.
  • SubjectValidation: si se habilita la seguridad, este plug-in puede utilizarse para validar una clase javax.security.auth.Subject que se pasa a ObjectGrid.
  • SubjectSource: si se habilita la seguridad, este plug-in puede utilizarse para obtener un objeto Subject que represente el cliente ObjectGrid. A continuación, este objeto Subject se utiliza para la autorización de ObjectGrid.

Si desea más información sobre los plug-ins, consulte Visión general de los plug-ins.