Definir las políticas de invalidación en cachespec.xml

Procedimiento

  1. Abra cachespec.xml que se utiliza para configurar los objetos almacenables en memoria caché, que se encuentra en el directorio WEB-INF de Archivadores de aplicaciones web (WAR) o el directorio WEB-INF de bean enterprise. Realice una de las acciones siguientes en función del valor de clase que utilice.
    • Invalidación basada en servlet
      Añada las líneas siguientes de código a cachespec.xml.
      <cache-entry>
              <class>servlet</class>
              <name>servlet_name</name>
              <invalidation>invalidation_id
                      <component id="" type="pathinfo">
                      ....
                      </component>
              </invalidation>
      </cache-entry>
      
      En el archivo cachespec.xml del ejemplo anterior, tenga presente lo siguiente:
      <class>
      Un valor de "servlet" indica que la invalidación la desencadena un servlet.
      NAME
      El valor es el nombre del servlet en el que tendrá lugar la invalidación.
      <invalidation>
      Elemento que se utiliza para identificar el suceso que desencadena la invalidación y las entradas de memoria caché con el ID especificado que se deben invalidar.
      id de componente
      ID como aparece en la definición de cache-entry para el componente deseado que se está definiendo para la invalidación.
      pathinfo
      En HCL Commerce, todas las solicitudes de servlet pasan por un solo servlet de controlador que puede ser: com.ibm.commerce.struts.ECActionServlet.class (para la versión 9.0.0.x de HCL Commerce) o struts.v2.ECActionServlet.class de com.ibm.commerce. para la versión 9.0.x) o com.ibm.commerce.tools.common.ToolsRequestServlet.class.

      Para identificar un URI de petición exclusivo, se puede utilizar el tipo de componente "pathinfo" para filtrar el nombre de pathinfo de la petición.

    • Invalidación basada en mandato

      Añada las líneas siguientes de código a cachespec.xml.

      <cache-entry>              
          <class>command</class>
          <name>fully_qualified_class_name_of_the_command</name>
          <invalidation>productId
                 <component id="getCatentryId" type="method">
                     <required>true</required>
                 </component>
           </invalidation>
      </cache-entry>
      
      En el archivo cachespec.xml del ejemplo anterior, tenga presente lo siguiente:
      Clase
      Un valor de mandato indica que la invalidación la desencadena un mandato.
      NAME
      Contiene la vía de acceso totalmente calificada del mandato.
      Tenga presentes las siguientes restricciones:
      • En el componente de método sólo se pueden utilizar los métodos llamados por el mandato que devuelven las variables de instancia de entrada.
      • Todos los métodos que se utilizan para crear los ID de invalidación deben proporcionarse en la interfaz de mandatos y deben implementarse.
      • No se puede utilizar el tipo de componente de atributos de petición.
  2. Añada normas de invalidación basada en la prioridad y el tiempo de espera. Incluya las líneas siguientes de código de cachespec.xml. En el elemento <cache-id>.
    
    <cache-entry>
           .......
          <cache-id>
              <component >.......</component>
                <priority>priority_value</priority>
                   <timeout>time_in_cache</timeout>
                    <inactivity>time_inactive</inactivity>
          </cache-id> 
    </cache-entry> 
    
    En el archivo cachespec.xml del ejemplo anterior, tenga presente lo siguiente:
    Prioridad
    Utilícelo para especificar la prioridad de una entrada de memoria caché en una memoria caché. El algoritmo utilizado menos recientemente (LRU) utiliza la carga de la prioridad de la memoria caché para decidir qué entradas se deben eliminar de la memoria caché si ésta se queda sin espacio de almacenamiento.
    <timeout>
    El subelemento timeout se utiliza para especificar un valor de tiempo de vida (TTL) absoluto para la entrada de memoria caché. El valor es la cantidad de tiempo, en segundos, durante el cual se debe conservar la entrada de memoria caché. Las entradas de memoria caché que están en memoria se conservan indefinidamente, a condición de que las entradas permanezcan en memoria. Las entradas de memoria caché que se almacenan en disco se excluyen si no se accede a ellas durante 24 horas.
    <inactivity>
    El subelemento inactivity se utiliza para especificar un valor de tiempo de vida (TTL) de la entrada de memoria caché basándose en la última vez que se ha accedido a la entrada de memoria caché. Es un subelemento del elemento ID de memoria caché. valor es la cantidad de tiempo en segundos durante la cual se debe conservar la entrada de memoria caché en la memoria caché después del último acceso a la memoria caché.

    Para obtener más información, consulte cachespec.xml.

    El mecanismo es útil cuando no es factible establecer normas de invalidación específicas ni desencadenar eventos que están regulados para eliminar las entradas de memoria caché.