Exemplo: Configurando o Serviço de Cache Dinâmico

Este exemplo reúne todas as etapas para configurar o serviço de cache dinâmico com o arquivo cachespec.xml, mostrando o uso das regras de geração de ID de cache, IDs de dependência e regras de invalidação.

Suponha que um servlet seja utilizado para gerenciar um site simples de notícias. Esse servlet utiliza o parâmetro de consulta "action" para determinar se o pedido está sendo utilizado para visualizar as notícias (parâmetro de consulta "view") ou atualizar notícias (parâmetro de consulta "updade") (utilizado pelo administrador). Outro parâmetro de consulta "category" seleciona a categoria de notícias. Suponha que esse site suporte um layout personalizado opcional, o qual é armazenado na sessão do usuário utilizando o nome de atributo "layout". Eis alguns exemplos de pedidos de URL para esse servlet:

http://yourhost/yourwebapp/newscontroller?action=view&category=sports (Retorna uma página de notícias para a categoria sports)

http://yourhost/yourwebapp/newscontroller?action=view&category=money (Retorna uma página de notícias para a categoria money)

http://yourhost/yourwebapp/newscontroller?action=update&category=fashion (Permite que o administrador atualize as notícias na categoria fashion)

Estas são as etapas para configurar o serviço de cache dinâmico para esse exemplo com o arquivo cachespec.xml:

  1. Defina os elementos <cache-entry> necessários para identificar o servlet. Nesse caso, o URI do servlet é "newscontroller", para que esse seja o elemento <name> da entrada de cache. Como esse exemplo armazena em cache um servlet ou arquivos JSP (JavaServer Pages), a classe da entrada de cache é "servlet".
    <cache-entry> 
    <name> /newscontroller </name>
    <class>servlet  </class>  
     </cache-entry>
  2. Defina as regras de geração de ID de cache. Esse servlet é armazenado em cache apenas quando action=view, de modo que um componente do ID de cache será o parâmetro "action" quando o valor for igual a "view". A categoria de notícias também é uma parte essencial do ID de cache. O atributo opcional session para o layout do usuário é incluído no ID de cache. A entrada de cache agora é:
    <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 regras de ID de dependência. Para esse servlet, é incluído um ID de dependência para a categoria. Posteriormente, quando a categoria for invalidada devido a um evento de atualização, todas as visualizações dessa categoria de notícias serão invalidadas. A seguir está um exemplo da entrada de cache após incluir o ID de dependência:
    <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. Defina regras de invalidação. Como um ID da dependência de categoria já está definido, defina uma regra de invalidação para invalidar a categoria quando action=update. Para incorporar a lógica condicional, incluiremos componentes "ignore-value" na regra de invalidação. Esses componentes não são incluídos na saída do ID de invalidação, mas apenas determinam se o ID de invalidação será ou não criado e executado. O cache-entry final agora é semelhante a este:
    <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>

Ícone que indica o tipo de tópico Tópico de Referência



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rdyn_configxmp
Nome do arquivo: rdyn_configxmp.html