Dynamischen Cacheservice verwenden
Verwenden Sie den dynamischen Cacheservice, um die Anwendungsleistung durch Zwischenspeichern der Ausgabe von Servlets, Web-Services und Befehlen von WebSphere Application Server zu verbessern.
Vorbereitende Schritte
Informationen zu diesem Vorgang
Vorgehensweise
- Klicken Sie auf Server > Servertypen > WebSphere-Anwendungsserver > Servername > Containerservices > Dynamischer Cache-Service.
- Konfigurieren Sie die Standardcacheinstanz, oder folgen Sie den Links zum Aktivieren des Servlet- oder Portlet-Cachings. Weitere Informationen zu den Standardcacheeinstellungen finden Sie im Artikel "Einstellungen des dynamischen Cacheservice".
Beispiel
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:
- 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>
- 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>
- 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>
- 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>