Beispiel: Dynamischen Cacheservice konfigurieren

Dieses Beispiel führt alle Schritte auf, die zur Konfiguration des dynamischen Cacheservice mit der Datei cachespec.xml erforderlich sind und zeigt die Regeln zur Generierung von Cache-IDs, die Abhängigkeits-IDs und die Invalidierungsregeln.

Angenommen, ein Servlet verwaltet eine einfache News-Site. Dieses Servlet verwendet den Abfrageparameter "action", um festzustellen, ob die Anforderung verwendet wird, um News anzuzeigen (Abfrageparameter "view") oder zu aktualisieren (Abfrageparameter "update" - wird vom Administrator verwendet). Ein weiterer Abfrageparameter, "category", wählt die News-Kategorie aus. Nehmen Sie ferner an, dass diese Site ein optionales angepasstes Layout unterstützt, das mit dem Attributnamen "layout" in der Benutzersitzung gespeichert wird. Es folgen Beispiele für URL-Anforderungen, die an dieses Servlet gerichtet sind:

http://yourhost/yourwebapp/newscontroller?action=view&category=sports (Gibt eine News-Seite für die Kategorie "sports" zurück.)

http://yourhost/yourwebapp/newscontroller?action=view&category=money (Gibt eine News-Seite für die Kategorie "money" zurück.)

http://yourhost/yourwebapp/newscontroller?action=update&category=fashion (Ermöglicht dem Administrator, News in der Kategorie "fashion" zu aktualisieren.)

Im Folgenden wird beschrieben, wie Sie den dynamischen Cacheservice für dieses Beispiel mit der Datei cachespec.xml konfigurieren:

  1. Definieren Sie die <cache-entry>-Elemente, die erforderlich sind, um das Servlet zu identifizieren. In diesem Fall hat das Servlet den URI "newscontroller". Somit ist dies das Element <name> des Elements cache-entry. Da dieses Beispiel ein Servlet bzw. eine JSP-Datei zwischenspeichert, lautet die Klasse des Cacheeintrags "servlet".
    <cache-entry> 
    <name> /newscontroller </name>
    <class>servlet  </class>  
     </cache-entry>
  2. Regeln zur Generierung von Cache-IDs definieren. Das Servlet wird nur zwischengespeichert, wenn action=view festgelegt ist. Eine Komponente der Cache-ID ist also der Parameter "action", wenn der Wert gleich "view" ist. Die Kategorie "News" ist ebenfalls ein wesentlicher Teil der Cache-ID. Das optionale Sitzungsattribut für das Layout des Benutzers ist in der Cache-ID enthalten. Der Cacheeintrag lautet jetzt wie folgt:
    <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. Regeln für Abhängigkeits-IDs definieren. Bei diesem Servlet wird eine Abhängigkeits-ID für die Kategorie hinzugefügt. Später, wenn die Kategorie aufgrund eines Aktualisierungsereignisses invalidiert wird, werden alle Sichten dieser News-Kategorie invalidiert. Das folgende Beispiel zeigt den Cacheeintrag nach dem Hinzufügen der Abhängigkeits-ID (dependency-id):
    <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. Regeln für die Invalidierung definieren. Da die Abhängigkeits-ID für eine Kategorie bereits definiert wurde, wird jetzt eine Invalidierungsregel zur Invalidierung der Kategorie definiert, wenn die Einstellung "action=update" festgelegt ist. Zur Einbindung der bedingten Logik werden "ignore-value"-Komponenten zur Invalidierungsregel hinzugefügt. Diese Komponenten werden nicht der Ausgabe der Invalidierungs-ID hinzugefügt, sondern legen nur fest, ob die Invalidierungs-ID erstellt und ausgeführt wird. Das Element "cache-entry" sieht schließlich wie folgt aus:
    <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>

Symbol, das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rdyn_configxmp
Dateiname:rdyn_configxmp.html