Puede configurar tanto implementaciones DataCache como implementaciones QueryCache para OpenJPA.
Antes de empezar
- Debe determinar la topología de plug-in de memoria caché JPA que desea utilizar. Consulte Plug-in de memoria caché de nivel 2 (L2) JPA para obtener más información sobre las distintas configuraciones y las propiedades que se deben establecer para cada topología.
- Debe tener una aplicación que utiliza las API JPA. Si desea utilizar API WebSphere eXtreme
Scale para acceder a datos con JPA, utilice el cargador JPA. Para obtener más información, consulte Configuración de cargadores JPA.
Procedimiento
- Establezca las propiedades en el archivo persistence.xml para configurar el plug-in de memoria caché OpenJPA: Puede establecer estas propiedades en la implementación de memoria caché DataCache o Query.
Las configuraciones DataCache y QueryCache son independientes entre sí. Puede habilitar cualquiera de estas configuraciones. Sin embargo, si ambas configuraciones están habilitadas, la configuración de QueryCache utiliza la misma configuración que la configuración de DataCache y se descartan sus propiedades de configuración.
<property name="openjpa.DataCache"
value="<object_grid_datacache_class(<property>=<value>,...)"/>
o bien
<property name="openjpa.QueryCache"
value="<object_grid_querycache_class(<property>=<value>,...)"/>
Nota: Sólo puede habilitar la configuración de QueryCache para
topologías incorporadas e internas de dominio incorporadas.
Puede especificar la propiedad ObjectGridName, la propiedad ObjectGridType y otras propiedades relacionadas con la política de despliegue de la lista de propiedades de la clase de memoria caché de ObjectGrid para personalizar la personalizar de la memoria caché. A continuación se muestra un ejemplo:
<property name="openjpa.DataCache"
value="com.ibm.websphere.objectgrid.openjpa.ObjectGridDataCache(
ObjectGridName=BasicTestObjectGrid,ObjectGridType=EMBEDDED,
maxNumberOfReplicas=4)"/>
<property name="openjpa.QueryCache"
value="com.ibm.websphere.objectgrid.openjpa.ObjectGridQueryCache()"/>
<property name="openjpa.RemoteCommitProvider" value="sjvm"/>
Consulte
Propiedades de configuración de la memoria caché JPA para ver una lista de las propiedades que puede establecer.
- En el archivo persistence.xml, también debe establecer la propiedad openjpa.RemoteCommitProvider en sjvm.
<property name="openjpa.RemoteCommitProvider" value="sjvm"/>
- Opcional: Para personalizar adicionalmente la cuadrícula de datos utilizada por la memoria caché, puede proporcionar valores adicionales con archivos XML.
Para la mayoría de los escenarios, definir las propiedades de memoria caché debería ser suficiente. Para personalizar adicionalmente el ObjectGrid utilizado por la memoria caché, puede proporcionar archivos XML de configuración de ObjectGrid OpenJPA en el directorio META-INF de forma similar al archivo persistence.xml. Durante la inicialización, la memoria caché intenta localizar estos archivos XML y procesarlos si se encuentran.
Existen tres tipos de archivos XML de configuración de ObjectGrid OpenJPA:
- openjpa-objectGrid.xml (configuración de ObjectGrid)
Vía de acceso del archivo: META-INF/openjpa-objectGrid.xml
Este archivo se utiliza para personalizar la configuración de ObjectGrid para
los tipos EMBEDDED y EMBEDDED_PARTITION. Con el tipo REMOTE, se ignora este archivo. De manera predeterminada, cada clase de entidad se correlaciona
con su propia configuración de BackingMap cuyo nombre será un nombre de clase
de entidad dentro de la configuración de ObjectGrid. Por ejemplo, la clase de entidad
com.mycompany.Employee se correlaciona con el objeto BackingMap
com.mycompany.Employee. La configuración predeterminada de BackingMap es readOnly="false", copyKey="false", lockStrategy="NONE"
y copyMode="NO_COPY". Puede personalizar algunos BackingMaps con la configuración que elija. Puede utilizar la palabra clave reservada ALL_ENTITY_MAPS para representar todas las correlaciones, excepto otras correlaciones personalizadas listadas en el archivo openjpa-objectGrid.xml. Los BackingMaps que no aparecen listados en este archivo openjpa-objectGrid.xml utilizan la configuración predeterminado. Si los BackingMaps personalizados no especifican las propiedades o el atributo
BackingMaps y estos atributos se especifican en la configuración predeterminada, se aplican los valores
de atributo de la configuración predeterminada. Por ejemplo, si se anota una clase de entidad con timeToLive=30, la configuración predeterminada de BackingMap para dicha entidad tiene un valor timeToLive=30.
Si el archivo personalizado openjpa-objectGrid.xml también incluye dicho BackingMap, pero no especifica ningún valor timeToLive, el BackingMap personalizado tiene un valor timeToLive=30 de forma predeterminada. El archivo openjpa-objectGrid.xml tiene como objetivo alterar temporalmente o ampliar la configuración predeterminada.
- openjpa-objectGridDeployment.xml (política de despliegue)
Vía de acceso del archivo: META-INF/openjpa-objectGridDeployment.xml
Este archivo se utiliza para personalizar la política de despliegue. Cuando personalice la política de despliegue, si se proporciona el archivo openjpa-objectGridDeployment.xml, se descarta la política de despliegue predeterminada. Todos los valores de atributo de política de despliegue proceden del archivo openjpa-objectGridDeployment.xml proporcionado.
- openjpa-objectGrid-client-override.xml (configuración de sustitución de
ObjectGrid de cliente)
Vía de acceso del archivo: META-INF/openjpa-objectGrid-client-override.xml
Este archivo se utiliza para personalizar un ObjectGrid del lado del cliente. De manera
predeterminada, la memoria caché ObjectGrid aplica una configuración de
alteración temporal de ObjectGrid de cliente predeterminada que inhabilita la
memoria caché cercana. Si una aplicación requiere una memoria caché cercana, puede proporcionar este archivo y especificar numberOfBuckets="xxx".
La alteración temporal del cliente predeterminado inhabilita la memoria caché cercana estableciendo numberOfBuckets="0".
La memoria caché cercana se puede activar al restablecer numberOfBuckets en un valor mayor que 0 con el archivo openjpa-objectGrid-client-override.xml.
La forma en la que trabaja el archivo openjpa-objectGrid-client-override.xml es similar al archivo openjpa-objectGrid.xml.
Altera temporalmente o amplía la configuración de alteración temporal de
ObjectGrid de cliente predeterminada.
En función de la topología configurada de
eXtreme Scale, puede proporcionar cualquier de es tos tres archivos XML para personalizar dicha topología.
Para ambos tipos, EMBEDDED y EMBEDDED_PARTITION, puede proporcionar cualquiera de estos tres archivos XML para personalizar el
ObjectGrid, la política de despliegue y la configuración de alteración temporal de ObjectGrid de cliente.
Para un ObjectGrid REMOTE, la memoria caché de ObjectGrid no crea un ObjectGrid dinámico. En lugar de esto, la memoria caché sólo obtiene un ObjectGrid del cliente en el servicio de catálogo. Sólo puede proporcionar el archivo openjpa-objectGrid-client-override.xml para personalizar la configuración de alteración temporal de ObjectGrid de cliente.
- Opcional: (Solo configuraciones remotas) Configure un sistema eXtreme Scale externo si desea configurar una memoria caché con un tipo de ObjectGrid REMOTE.
Debe configurar un sistema eXtreme Scale externo si desea configurar una memoria caché con un tipo de ObjectGrid REMOTE. Necesita ambos archivos XML de configuración de ObjectGrid y, también, de ObjectGridDeployment que se basan en el archivo persistence.xml para configurar un sistema externo. Para ver ejemplos de estos archivos de configuración, consulte Ejemplo: Archivos XML de ObjectGrid OpenJPA.
Resultados
Configuración EMBEDDED, EMBEDDED_PARTITION,
o interna de dominio:
Cuando se inicia una aplicación, el plug-in detecta o inicia automáticamente un servicio de catálogo, inicia un servidor de contenedor y conecta los servidores de contenedor al servicio de catálogo. El plug-in se comunica con el contenedor ObjectGrid y sus iguales que se ejecutan en otros procesos de servidor de aplicaciones mediante la conexión de cliente.
Configuración REMOTE:
La política de despliegue se especifica aparte de la aplicación JPA.
Un sistema de ObjectGrid externo tiene tanto procesos de servicio de catálogo como de servidor de contenedor. Debe iniciar un servicio de catálogo antes de iniciar servidores de contenedor. Consulte Inicio de los servidores autónomos y Inicio de servidores de contenedor para obtener más información.
Qué hacer a continuación
- Desarrolle una aplicación OpenJPA que utilice la configuración. Para obtener más información, consulte Ejemplo: Utilización del plug-in Hibernate para precargar datos en la memoria caché de ObjectGrid.
- En un entorno de producción, cree dominios de servicio de catálogo para los procesos creados automáticamente para la configuración EMBEDDED o EMBEDDED_PARTITION.
- Entorno autónomo:
Si no se ejecutan los servidores dentro de un proceso WebSphere Application Server, los hosts y los puertos del dominio de servicio de catálogo se especifican utilizando el archivo de propiedades denominado objectGridServer.properties. Este archivo se debe almacenar en la classpath de la aplicación y tiene definida la propiedad catalogServiceEndPoints. El dominio de servicio de catálogo se inicia independientemente de los procesos de la aplicación y se debe iniciar antes de que se inicien los procesos de la aplicación.
el formato del archivo objectGridServer.properties es el siguiente:
PuntosFinalesServicioCatálogos=<nombrehost>:<puerto1>,<nombrehost2>:<puerto2>
- Entorno de WebSphere Application Server:
Si se ejecuta
dentro de un proceso WebSphere Application Server, el plug-in
de memoria caché JPA se conecta automáticamente el servicio de catálogo o al dominio de servicio de catálogo definido para la célula de WebSphere Application Server.
- Cuando se utiliza un valor de ObjectGridType EMBEDDED o EMBEDDED_PARTITION en un entorno Java SE, utilice el método System.exit(0) al final del programa para detener el servidor eXtreme Scale incorporado. De lo contrario, el programa puede dejar de responder.