Elementos de entrada de memoria caché (cache-entry)

El elemento raíz del archivo cachespec.xml, <cache>, contiene elementos <cache-entry>. El servicio de memoria caché dinámica de WebSphere analiza el archivo cachespec.xml durante el arranque del sistema y extrae un conjunto de parámetros de configuración para cada elemento cache-entry.

En las secciones siguientes se explican otros elementos <cache-entry>, por ejemplo <timeout> y <priority>, que configuran información como la política de caducidad de memoria caché y de expulsión de memoria caché.

Notes:
  1. Para ver una lista completa de propiedades, consulte el tema cachespec.xml.
  2. Se puede utilizar la propiedad do-not-cache. Compruebe los detalles de .

Clase

<class>servlet | command</class>

El elemento <class> es necesario. Controla el modo en que el servidor de aplicaciones interpreta la definición de política de memoria caché restante. El servlet de valor indica que la política de memoria caché define normas de memoria caché para un servlet o una JavaServer Page (JSP) desplegados en el motor de servlet de WebSphere Application Server. El mandato de valor indica que la política de memoria caché define las normas de memoria caché para una clase que implementa la interfaz Java CacheableCommand de WebSphere.

A continuación se muestran ejemplos del elemento <class>:

<class>command</class>
<class>servlet</class>
Note: Mientras los mandatos de HCL Commerce implementan la interfaz de Java CacheableCommand, de igual manera casi todos los mandatos se extienden desde la clase Java de AbstractECTargetableCommand. Dado que esa clase no implementa la interfaz Serializable que se ejecuta en Java, estos mandatos no se pueden almacenar en memoria caché. Sin embargo, se pueden utilizar para generar ID de invalidación de memoria caché, como especifica el elemento <invalidation>. Consulte el apartado de metodologías de invalidación de memoria caché para obtener detalles.

Nombre:

<name>classname</name>

El elemento <name> es necesario. classname especifica el nombre de clase totalmente calificado del mandato o servlet. Hay dos modos de utilizar el elemento <name> para especificar un objeto almacenable en memoria caché:

  • Para mandatos, el nombre de clase debe especificar el nombre de clase completo, incluido el nombre del paquete, en caso de que exista, y el nombre de clase, así como el calificador .class final, del objeto configurado.
  • Para servlets o JSPs , este elemento debe incluir el nombre de clase completo del servlet, o bien el URI completo de la JSP.

Puede especificar varios elementos <name> en <cache-entry> si tiene correlaciones diferentes que hagan referencia al mismo servlet. A continuación, se muestran ejemplos del elemento <name>:

<name>com.ibm.commerce.dynacache.commands.MemberGroupsCacheCmdImpl.class</name>
<name>com.ibm.commerce.struts.ECActionServlet.class</name>
<name>com.ibm.commerce.struts.v2.ECActionServlet.class</name>
<name>/ToolTech/ShoppingArea/CatalogSection/CategorySubsection/StoreCatalogDisplay.jsp</name>

Property

<property name="key">value</property>

donde key es el nombre de la propiedad que se define y value es el valor correspondiente.

La tabla siguiente contiene propiedades utilizadas por HCL Commerce al definir normas de memoria caché para servlets.

Property Valores válidos Valor predeterminado Descripción:
EdgeCacheable

true false

false Si esta propiedad es verdadera (true), el servlet o el archivo JSP proporcionado está disponible externamente desde un Edge Server. Si el servlet o el archivo JSP es almacenable en memoria caché, depende del resto de la especificación de la memoria caché.
consume-subfragments

true false

false Cuando se almacena en memoria caché un servlet, sólo se almacena el contenido de dicho servlet, con espacios reservados para cualquier otro fragmento que incluya o al que se reenvíe. CSF (Consume-subfragments) indica a la memoria caché que no pare de guardar el contenido cuando incluye un servlet hijo. La entrada padre (la que está marcada con CSF) incluirá todo el contenido de todos los fragmentos en la entrada de memoria caché, produciendo una gran entrada de memoria caché que no tiene inclusiones (includes) ni reenvíos (forwards), sino en su lugar, el contenido de todo el árbol de entradas. Esto puede ahorrar una cantidad importante de proceso del servidor de aplicaciones, pero normalmente sólo es útil cuando la solicitud HTTP externa contiene toda la información necesaria para determinar el árbol entero de los fragmentos incluidos.
save-attributes

true false

true Cuando esta propiedad se establece en 'false', los atributos de solicitud no se guardan con la entrada de memoria caché.
store-cookies

true false

true Cuando esta propiedad se establece en 'false', las cookies de solicitud no se guardan con la entrada de memoria caché.
alternate_url Especifica el URL alternativo utilizado para invocar el servlet o archivo JSP. Esta propiedad se ignora a menos que la propiedad EdgeCacheable también se establezca para la entrada de memoria caché.
do-not-consume

true false

false Cuando esta propiedad se establece en 'true', la entrada padre no consumirá el fragmento con la propiedad consume-subfragments.
persist-to-disk

true false

true Cuando esta propiedad está establecida en false, la entrada de memoria caché no se escribe en el disco cuando se produce un desbordamiento o una detención del servidor. Se recomienda el valor predeterminado true para datos de vida larga que muchos compradores pueden volver a utilizar. Sin embargo, en cuanto a lo que se refiere al rendimiento y a la privacidad, generalmente no se recomienda conservar datos relacionados con el usuario en el disco.

A continuación se muestran unos ejemplos del elemento <property>:

<property name="consume-subfragments">true</property>
<property name="save-attributes">false</property>
<property name="store-cookies">false</property>
Note: De forma predeterminada, el servicio de memoria caché dinámica almacena en caché todas las cookies y atributos de solicitud (al almacenar en memoria caché resultados de un servlet o la ejecución de JSP) junto con los resultados almacenados en memoria caché. Sin embargo, las cookies y los atributos de solicitud de HCL Commerce contienen información específica de usuario que no se deberá almacenar en memoria caché. Por consiguiente, se deben especificar los siguientes elementos <property> para un elemento <cache-entry> de servlet:
<property name="save-attributes">false</property>
<property name="store-cookies">false</property>
Y se debe especificar el siguiente elemento <property> para un elemento de JSP <cache-entry>:
<property name="save-attributes">false</property>