Configuración de la memoria caché de objeto WSJPA para mejorar el rendimiento

La extensión WSJPA (WebSphere Java™ Persistence API) WSJPA) para OpenJPA proporciona una memoria caché de objetos de sólo lectura que puede mejorar el rendimiento en determinados casos de uso. Esta configuración solo está soportada cuando se utiliza WSJPA en el nivel de especificación JPA 2.0.

Acerca de esta tarea

La implementación de un objeto ObjectCache de WSJPA puede mejorar el rendimiento de una aplicación que tiene un conjunto de datos que se utiliza en un método estático de sólo lectura, como acceder a campos persistentes básicos y relaciones unidireccionales persistentes para un tipo de sólo lectura. ObjectCache de WSJPA es una memoria caché no distribuida de entidades de sólo lectura que funciona en el nivel de objeto EntityManagerFactory. Estas instancias guardadas en memoria caché las comparten todos los EntityManager de la JVM (Java Virtual Machine), pero ninguno de ellos las gestiona. Cuando esta característica está habilitada, el objeto ObjectCache se examina antes de que la aplicación acceda al objeto de OpenJPA DataCache y a la base de datos y los objetos persistentes se cargan desde la base de datos y se almacenan en la memoria caché de objeto OpenJPA. Además, la implementación de ObjectCache se puede utilizar con las características OpenJPA DataCache y QueryCache para un mayor rendimiento.

Tenga en cuenta las condiciones y limitaciones siguientes:
  • Incluya tipos que son estrictamente de sólo lectura desde el punto de vista de la aplicación.
    • En las operaciones siguientes, si se pasa un tipo de sólo lectura se genera un mensaje de error UnsupportedOperationException:
      • Pasar una entidad de sólo lectura a EntityManager.merge(…).
      • Pasar una entidad de sólo lectura a EntityManager.persist(…).
      • Pasar una entidad de sólo lectura a EntityManager.remove(…).
    • Cuando se llama a un método setter en un tipo de sólo lectura devuelto por el tiempo de ejecución de WebSphere JPA dará como resultado un mensaje de error UnsupportedOperationException.
  • Los tipos que se incluyen en ObjectCache no deben ser seleccionables para ser almacenados en la memoria caché de OpenJPA DataCache. No interseccione los tipos que se pueden colocar en la memoria caché mediante memoria caché OpenJPA L2 (openjpa.DataCache); ObjectCache no debe confundirse con la memoria caché de segundo nivel que se ha definido mediante la especificación JPA 2.0. Si los tipos se cruzan, se producirá una excepción cuando se cree el objeto EntityManager.
  • Incluya sólo campos básicos, o se podrá producir una excepción cuando se cree el objeto EntityManager.
  • Pasar una entidad de sólo lectura a EntityManager.contains(…) siempre devuelve un valor false, incluso si se acaba de devolver de una consulta de búsqueda/consulta.
Puede habilitar la memoria caché de objetos para un entorno JVM individual, especificar los tipos que se incluye en esta caché, establecer su tamaño máximo del elemento y especificar los valores de tiempo de espera.
Supported configurations Supported configurations: El nombre de propiedad preferida es wsjpa.ObjectCache, pero openjpa.ObjectCache es también una configuración válida.sptcfg

Procedimiento

Qué hacer a continuación

Para habilitar la carga automática de toda la memoria caché de objeto (ObjectCache) cuando se crea el primer EntityManager, siga los pasos descritos en el tema Carga previa automática de ObjectCache de WSJPA. Además, puede leer acerca del almacenamiento en caché en la Guía del usuario de OpenJPA para obtener información sobre todas las extensiones de almacenamiento en caché.

Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tejb_jpaobjectcache
File name: tejb_jpaobjectcache.html