Utilización del servicio de memoria caché dinámica

Utilice el servicio de memoria caché dinámica para mejorar el rendimiento de la aplicación mediante el almacenamiento en memoria caché de la salida de servlets, servicios web y mandatos de WebSphere Application Server en la memoria.

Antes de empezar

Desarrolle una política de memoria caché para la aplicación. La política de memoria caché define las reglas para determinar qué respuestas se deben almacenar en memoria caché además de la cantidad de tiempo que las respuestas deben mantenerse en la memoria caché. Consulte el tema Configuración de objetos en memoria caché con el archivo cachespec.xml si desea obtener más información.

Acerca de esta tarea

El servicio de memoria caché dinámica está habilitado de forma predeterminada. Puede configurar la instancia de memoria caché predeterminada, según se indica a continuación:

Procedimiento

  1. Pulse Servidores > Tipos de servidor > Servidores de aplicaciones de WebSphere > nombre_servidor > Servicios de contenedor > Servicio de memoria caché dinámica.
  2. Configure la instancia de memoria caché predeterminada o siga los enlaces para habilitar la colocación en memoria caché de los servlets o portlets. Consulte el artículo Valores de servicio de memoria caché dinámica para obtener más información al respecto.

Ejemplo

En este se ejemplo se unen todos los pasos para configurar el servicio de memoria caché dinámica con el archivo cachespec.xml y se ilustra el uso de las normas de generación de ID de memoria caché, los ID de dependencia y las normas de invalidación.

Suponga que un servlet gestiona un sencillo sitio de correo. Este servlet utiliza el parámetro de consulta "action" para determinar si la solicitud visualiza (parámetro de consulta "view") las noticias o actualiza (parámetro de consulta "update") las noticias, la cual es una función que utiliza el administrador. Otro parámetro de consulta, "category", selecciona la categoría de noticias. Supongamos que este sitio da soporte a un diseño opcional personalizado que se guarda en la sesión del usuario utilizando el nombre de atributo "layout". Las siguientes son solicitudes de URL de ejemplo para este servlet:
  • http://su_host/SuWebApp/newscontroller?action=view&category=deportes (devuelve una página de noticias para la categoría de deportes)
  • http://su_host/SuWebApp/newscontroller?action=view&category=economía (devuelve una página de noticias para la categoría de economía)
  • http://su_host/SuWebApp/newscontroller?action=update&category=moda (permite que el administrador actualice las noticias de la categoría de moda)

En los pasos siguientes se ilustra cómo configurar el servicio de memoria caché dinámica para este ejemplo con el archivo cachespec.xml:

  1. Defina los elementos <cache-entry> necesarios para identificar el servlet. En este caso, el URI del servlet es "newscontroller", por lo tanto, es la entrada <name> de cache-entry. Dado que este ejemplo coloca en memoria caché un servlet o un archivo JSP(JavaServer Pages), la clase de entrada de memoria caché es "servlet".
    <cache-entry> 
    <name> /newscontroller </name>
    <class>servlet  </class>  
     </cache-entry> 
  2. Defina las normas de generación de ID de memoria caché. Este servlet se coloca en memoria caché sólo cuando action=view, por lo tanto el componente del ID de memoria caché es el parámetro "action" cuando el valor es igual a "view". La categoría news también forma parte esencial del ID de memoria caché. En el ID de memoria caché se incluye el atributo de sesión opcional para el diseño del usuario (layout). La entrada de memoria caché (cache-entry) ahora es:
    <cache-entry> 
    	<name> /newscontroller </name>
    	<class>servlet  </class>  
     	<cache-id>
    		<component id="action" type="parameter">
    			<value>view</value>
    			<required>true</required>
    		</component>
    				<component id="category" type="parameter">
    			<required>true</required>
    		</component>
    				<component id="layout" type="session">
    			<required>false</required>
    		</component>
    	</cache-id>
    </cache-entry> 
  3. Defina las normas de ID de dependencia. Para este servlet, se añadirá un ID de dependencia para la categoría. Posteriormente, cuando se invalide la categoría debido a un suceso de actualización, se invalidarán todas las vistas de esa categoría news (de noticias). A continuación figura un ejemplo de la entrada de memoria caché después de añadir el ID de dependencia:
    <cache-entry> 
    	<name>newscontroller </name>
    	<class>servlet  </class>  
     	<cache-id>
    		<component id="action" type="parameter">
    			<value>view</value>
    			<required>true</required>
    		</component>
    				<component id="category" type="parameter">
    			<required>true</required>
    		</component>
    				<component id="layout" type="session">
    			<required>false</required>
    		</component>
    	</cache-id>
    	<dependency-id>category
    				<component id="category" type="parameter">
    			<required>true</required>
    		</component>
    	</dependency-id>
    </cache-entry> 
  4. Define las normas de invalidación. Dado que ya se ha definido un ID de dependencia de categorías, defina una norma de invalidación que invalide la categoría cuando action=update. Para incorporar la lógica condicional, añadiremos los componentes "ignore-value" a la norma de invalidación. Estos componentes no se añadirán a la salida del ID de invalidación sino que únicamente determinarán si se crea y ejecuta el ID de invalidación. Ahora la entrada de memoria caché (cache-entry) final será similar a la siguiente:
    <cache-entry> 
    	<name>newscontroller </name>
    	<class>servlet  </class>  
     	<cache-id>
    		<component id="action" type="parameter">
    			<value>view</value>
    			<required>true</required>
    		</component>
    				<component id="category" type="parameter">
    			<required>true</required>
    		</component>
    				<component id="layout" type="session">
    			<required>false</required>
    		</component>
    	</cache-id>
    	<dependency-id>category
    				<component id="category" type="parameter">
    			<required>true</required>
    		</component>
    	</dependency-id>
    	<invalidation>category
    				<component id="action" type="parameter" ignore-value="true">
    			<value>update</value>
    			<required>true</required>
    		</component>
    				<component id="category" type="parameter">
    			<required>true</required>
         </component>
    	</invalidation>
    </cache-entry> 

Qué hacer a continuación

Es posible que desee habilitar la descarga de disco de la memoria dinámica. Esta opción mueve las entrada de memoria caché que han caducado desde la memoria al disco para un posible acceso posteriormente. Si desea obtener más información sobre la habilitación de la descarga del disco, consulte el tema Configuración de la descarga del disco de memoria caché dinámica.

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_enablecache
File name: tdyn_enablecache.html