Ejemplo: configuración del servicio de memoria caché dinámica

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://yourhost/yourwebapp/newscontroller?action=view&category=sports (Devuelve una página de noticias para la categoría de deportes)

http://yourhost/yourwebapp/newscontroller?action=view&category=money (Devuelve una página de noticias para la categoría de economía)

http://yourhost/yourwebapp/newscontroller?action=update&category=fashion (Permite que el administrador actualice las noticias de la categoría de moda)

A continuación figuran los pasos para 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> 

Icon that indicates the type of topic Reference topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rdyn_configxmp
File name: rdyn_configxmp.html