Configuración de objetos en memoria caché con el archivo cachespec.xml

Utilice esta tarea para definir objetos almacenables en memoria caché dentro del archivo cachespec.xml, que se encuentra dentro del módulo web WEB-INF o del directorio META-INF del enterprise bean.

Antes de empezar

Habilite la antememoria dinámica. Consulte el artículo que trata sobre la utilización del servicio de memoria caché dinámica para obtener más información.

Acerca de esta tarea

Puede guardar un archivo cachespec.xml global en el directorio properties del servidor de aplicaciones, pero el método recomendado es situar el archivo de configuración de memoria caché con el módulo de despliegue. El elemento raíz del archivo cachespec.xml es <cache>, que contiene elementos <cache-entry>.

Avoid trouble Avoid trouble: Cuando hay un archivo cachespec.xml global en el directorio de propiedades del servidor de aplicaciones y un archivo cachespec.xml en una aplicación, se fusionan las entradas de los dos archivos cachespec.xml. Si hay entradas conflictivas en los dos archivos, las entradas del archivo cachespec.xml que se encuentra en la aplicación prevalecen sobre las entradas del archivo cachespec.xml global para esa aplicación.gotcha

El elemento <cache-entry> se puede anidar en el elemento <cache> o en el elemento <cache-instance>. Los elementos <cache-entry> anidados en el elemento <cache> se almacenan en la memoria caché de la instancia de memoria caché por omisión. Cualquier elemento <cache-entry> que esté en el elemento <cache-instance> se almacena en la memoria caché especificada en el atributo name en el elemento <cache-instance>.

Dentro de un elemento <cache-entry> hay parámetros que le permiten completar las tareas siguientes para habilitar la memoria caché dinámica con el archivo cachespec.xml:

Procedimiento

  1. Desarrolle el archivo cachespec.xml.
    1. Cree un archivo de configuración de colocación en memoria caché.

      En el directorio <raíz_servidor_aplicaciones>/properties, localice el archivo cachespec.sample.xml.

    2. Copie el archivo cachespec.sample.xml con el nombre cachespec.xml en el directorio WEB-INF del módulo web o el directorio META-INF del enterprise bean.
  2. Defina los elementos de entrada de la memoria caché necesarios para identificar los objetos que se pueden almacenar en memoria caché. Consulte el tema sobre el archivo cachespec.xml para obtener una lista de elementos.
  3. Desarrolle las reglas de ID de memoria caché.

    Para almacenar en memoria caché objetos, WebSphereApplication Server debe saber cómo generar identificadores únicos para distintas invocaciones de ese objeto. El elemento <cache-id> efectúa esta tarea. Cada entrada de memoria caché puede tener varias reglas de ID de memoria caché que se ejecutan en orden hasta que una regla devuelve un ID de memoria caché que no está vacío o hasta que no quedan más reglas por ejecutar. Si ninguna regla de generación de ID de memoria caché genera un ID de memoria caché válido, el objeto no se almacena en memoria caché. Desarrolle los identificadores de memoria caché de uno de estos dos modos:

    • Utilice el elemento <component> definido en la política de memoria caché de una entrada de memoria caché (recomendado). Consulte el tema que trata sobre el archivo cachespec_xml para obtener más información sobre el elemento <component>.
    • Escriba código Java™ personalizado para crear el identificador a partir de variables de entrada y el estado del sistema. Para configurar la entrada de memoria caché para utilizar el generador de identificadores, especifique IdGenerator en el archivo XML utilizando el distintivo <idgenerator>, por ejemplo:
    <cache-entry>
         <class>servlet  </class>
         <name>/servlet/CommandProcessor</name>
    		<cache-id>
         	<idgenerator>com.mycompany.SampleIdGeneratorImpl</idgenerator>
         	<timeout>60</timeout>
    		</cache-id>
    </cache-entry> 
  4. Especifique las reglas de ID de dependencia. Utilice elementos de identificación de dependencia para especificar identificadores de grupos de memoria caché adicionales que asocian varias entradas de memoria caché al mismo identificador de grupo.

    El identificador de dependencia se genera concatenando la serie base de identificador de dependencia con los valores devueltos por sus elementos componentes. Si un componente necesario devuelve un valor nulo, entonces no se genera el identificador de dependencia completo y no se utiliza. Puede validar los ID de dependencia explícitamente a través de la API de memoria caché dinámica, o utilizar otro elemento <invalidation> de entrada de memoria caché. Pueden existir varias reglas de identificación de dependencia por entrada de memoria caché. Todas las reglas de identificación de dependencia se ejecutan por separado. Consulte el tema sobre el archivo cachespec.xml para obtener una lista de elementos <component>.

  5. Invalide otras entradas de memoria caché como un efecto lateral del inicio de este objeto, si es pertinente. Puede definir reglas de invalidación exactamente del mismo modo que los identificadores de dependencia. No obstante, los identificadores que se generan mediante reglas de invalidación si utilizan para invalidar entradas de memoria caché que tienen esos mismos identificadores de dependencia.

    El identificador de invalidación se genera concatenando la serie de identificadores de invalidación base con los valores devueltos por su elemento componente. Si un componente necesario devuelve un valor nulo, no se generará el identificador de invalidación completo y no se producirá la invalidación. Pueden existir varias reglas de invalidación por entrada de memoria caché. Todas las reglas de invalidación se ejecutan por separado.

  6. Compruebe que la política de memoria caché esté funcionando correctamente. Puede modificar las políticas dentro del archivo cachespec.xml mientras se ejecuta la aplicación. La memoria caché dinámica vuelve a cargar automáticamente el archivo actualizado. Si va a almacenar en memoria caché contenido estático y va a añadir la política de memoria caché a una aplicación por primera vez, debe reiniciar la aplicación. No tiene que reiniciar el servidor de aplicaciones para activar la nueva política de memoria caché. Si desea obtener más información, consulte el tema Verificación de la página almacenable en memoria caché.

Qué hacer a continuación

Generalmente, se declaran varios elementos <cache-entry> dentro de un archivo cachespec.xml.

Cuando se detectan nuevas versiones de cachespec.xml, se sustituyen las antiguas políticas. Los objetos almacenados en memoria caché mediante el archivo de política anterior no se invalidan automáticamente de memoria caché, se reutilizan con la nueva política o se eliminan de memoria caché mediante su algoritmo de sustitución.

Para cada unos de los tres ID (memoria caché, dependencia, invalidación) generados por entradas de memoria caché, una <cache-entry> puede contener varios elementos. La memoria caché dinámica ejecuta las reglas <cache-id> en orden, y la primera que genera correctamente un ID se utiliza para almacenar en memoria caché dicha salida. Si el objeto se va a almacenar en la memoria caché, cada uno de los elementos <dependency-id> se ejecuta para crear un conjunto de ID de dependencia para dicha entrada de memoria caché. Finalmente, cada uno de los elementos <invalidation> que genera una lista de identificadores que invalida la memoria caché dinámica, tanto si se encuentra o no este objeto en memoria 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=tdyn_dynamiccacheconfig
File name: tdyn_dynamiccacheconfig.html