Configuración del plug-in de memoria caché OpenJPA

Puede configurar tanto implementaciones DataCache como implementaciones QueryCache para OpenJPA.

Antes de empezar

Procedimiento

  1. 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.
  2. En el archivo persistence.xml, también debe establecer la propiedad openjpa.RemoteCommitProvider en sjvm.
    <property name="openjpa.RemoteCommitProvider" value="sjvm"/>
  3. 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.

  4. 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