Verwenden Sie diese Task, um cachefähige Objekte in der Datei cachespec.xml zu definieren, die
Sie im Webmodulverzeichnis WEB-INF bzw. Enterprise-Bean-Verzeichnis META-INF finden.
Vorbereitende Schritte
Aktivieren Sie den dynamischen Cache. Weitere Informationen finden Sie im Artikel zu den Einstellungen
für den dynamischen Cache-Service.
Informationen zu diesem Vorgang
Sie können eine globale Datei cachespec.xml in das Verzeichnis für
Anwendungsservereigenschaften stellen. Es wird jedoch empfohlen, die
Cachekonfigurationsdatei mit dem Implementierungsmodul abzulegen. Das Stammelement der Datei cachespec.xml
ist <cache> und enthält <cache-entry>-Elemente.
Fehler vermeiden: Wenn eine globale Datei
cachespec.xml im Eigenschaftsverzeichnis (properties)
des Anwendungsservers existiert und eine
Datei
cachespec.xml in einer Anwendung, werden die Einträge
dieser beiden Dateien zusammengeführt.
Wenn in den beiden Dateien widersprüchliche Einträge enthalten sind, haben die Einträge der Datei
cachespec.xml in der Anwendung Priorität vor den Einträgen
in der globalen Datei
cachespec.xml für die betreffende Anwendung.
gotcha
Das Element <cache-entry>
kann in einem Element <cache> oder in einem Element <cache-instance> verschachtelt werden.
Die
<cache-entry>-Elemente, die im Element <cache>
verschachtelt sind, werden in der Standardcacheinstanz zwischengespeichert. Alle <cache-entry>-Elemente im Element
<cache-instance> werden in der Instanz zwischengespeichert, die im Attribut name des Elements
<cache-instance> angegeben ist.
Ein Element <cache-entry> enthält Parameter für die Ausführung
der folgenden Tasks zum Aktivieren des dynamischen Cache mit der Datei
cachespec.xml:
Vorgehensweise
- Entwickeln Sie eine Datei cachespec.xml.
- Erstellen Sie eine Konfigurationsdatei für Caching.
Suchen Sie im Verzeichnis <Stammverzeichnis_des_Anwendungsservers>/properties die Datei
cachespec.sample.xml.
- Kopieren Sie die Datei cachespec.sample.xml unter dem Namen cachespec.xml in
das Webmodulverzeichnis WEB-INF oder das Enterprise-Bean-Verzeichnis META-INF.
- Definieren Sie die für das Identifizieren der cachefähigen Objekte erforderlichen cache-entry-Elemente. Eine
Liste der Elemente finden Sim Artikel zur Datei "cachespec.xml".
- Erstellen Sie Regeln für Cache-IDs.
Zum Zwischenspeichern eines Objekts muss WebSphere Application Server wissen, wie
für die verschiedenen Aufrufe des Objekts eindeutige IDs generiert werden sollen. Diese Aufgabe erfüllt das Element <cache-id>.
Jeder Cacheeintrag kann mehrere
Regel für Cache-IDs enthalten, die nacheinander ausgeführt werden, bis eine Regel eine nicht leere Cache-ID zurückgibt oder
keine weiteren ausführbaren Regeln vorhanden sind. Wird mit keiner der Regeln für das Generieren von Cache-IDs eine
gültige Cach-ID generiert, kann das Objekt nicht
zwischengespeichert werden. Sie haben zwei Möglichkeiten, diese IDs zu entwickeln:
- Verwenden Sie das Element <component>, das in der Cacherichtlinie eines
Cacheeintrags definiert ist (empfohlene Methode). Im Artikel "Datei 'cachespec_xml'" finden Sie weitere
Informationen zum Element <component>.
- Schreiben Sie eigenen Java™-Code,
um die ID aus Eingabevariablen und Systemstatus zu erstellen. Geben Sie den IdGenerator in der XML-Datei an, um den Cacheeintrag für die
Verwendung
des IdGenerator zu konfigurieren. Verwenden Sie dazu das Tag <idgenerator>.
Beispiel:
<cache-entry>
<class>servlet</class>
<name>/servlet/CommandProcessor</name>
<cache-id>
<idgenerator>com.mycompany.SampleIdGeneratorImpl</idgenerator>
<timeout>60</timeout>
</cache-id>
</cache-entry>
- Regeln für Abhängigkeits-IDs definieren. Mit Abhängigkeits-IDs können Sie zusätzliche Cachegruppen-IDs angeben, die mehrere Cacheeinträge einer Gruppenkennung zuordnen.
Die Abhängigkeits-ID wird generiert, indem die Basiszeichenfolge der Abhängigkeits-ID mit den von den Komponentenelementen zurückgegebenen Werten
verknüpft wird. Wenn eine erforderliche Komponente einen Nullwert zurückgibt, wird die gesamte Abhängigkeits-ID nicht
generiert und somit auch nicht verwendet. Sie können Abhängigkeits-IDs explizit über die
API für dynamischen Cache auswerten oder ein weiteres cache-entry-Element <invalidation>verwenden.
Pro Cacheeintrag kann es mehrere Regeln für Abhängigkeits-IDs geben. Alle Regeln für
Abhängigkeits-IDs werden separat ausgeführt.
Eine Liste der Elemente <component> finden Sie im Artikel zur Datei "cachespec.xml".
- Andere Cacheeinträge als Nebeneffekt der Ausführung
dieses Objekts invalidieren, falls zutreffend. Sie können
Invalidierungsregeln genau wie Abhängigkeits-IDs definieren. Allerdings werden die von
Invalidierungsregeln generierten IDs verwendet, um Cacheeinträge mit eben diesen
Abhängigkeits-IDs zu invalidieren.
Die Invalidierungs-ID wird generiert,
indem die Basiszeichenfolge der Invalidierungs-ID mit den vom Komponentenelement
zurückgegebenen Werten
verknüpft wird. Wenn eine erforderliche Komponente einen Nullwert zurückgibt, wird die
gesamte Invalidierungs-ID nicht
generiert, sodass keine Einträge ungültig gemacht werden. Pro Cacheeintrag kann es
mehrere Invalidierungsregeln geben. Alle Invalidierungsregeln werden separat ausgeführt.
- Vergewissern Sie sich, dass die Cacherichtlinie ordnungsgemäß funktioniert. Sie
können die Richtlinien in der Datei cachespec.xml ändern, während die Anwendung
ausgeführt wird. Der dynamische Cache lädt die aktualisierte Datei automatisch. Wenn Sie
statischen Inhalt zwischenspeichern und die Cacherichtlinie einer Anwendung zum ersten Mal hinzufügen, müssen Sie die
Anwendung erneut starten. Der Anwendungsserver muss zum Aktivieren der neuen Cacherichtlinie nicht erneut gestartet werden.
Weitere Informationen finden Sie im Artikel "Cachefähige Seite prüfen".
Nächste Schritte
In der Regel werden in einer Datei
cachespec.xml mehrere
<cache-entry>-Elemente deklariert.
Wenn neue Versionen der Datei cachespec.xml erkannt werden, werden die alten
Richtlinien ersetzt. Objekte, die über die alte Richtliniendatei zwischengespeichert wurden, werden nicht automatisch
ungültig.
Entweder werden sie unter Anwendung der neuen Richtlinie wiederverwendet oder durch den Ersetzungsalgorithmus aus dem Cache
gelöscht.
Für jede der drei von Cacheeinträgen generierten IDs (Cache-ID, Abhängigkeits-ID, Annullierungs-ID) kann
ein <cache-entry> mehrere Elemente enthalten. Der
dynamische Cache führt die <cache-id>-Regeln nacheinander aus. Die erste Regel, die fehlerfrei eine ID generiert,
wird zum Zwischenspeichern der Ausgabe verwendet. Wenn das Objekt zwischengespeichert werden soll, wird
jedes der <dependency-id>-Elemente ausgeführt, um für diesen Cacheeintrag eine Gruppe von Abhängigkeits-IDs
zu erstellen. Abschließend werden alle
<invalidation>-Elemente ausgeführt, um eine Liste von IDs zu erstellen, die der dynamische Cache unabhängig davon, ob dieses
Objekt zwischengespeichert wird oder nicht, ungültig macht.