Weist WGA an, das Ergebnis einer Query solange zu Cachen und aus dem Cache wiederzuliefern, bis die zugrundeliegende Datenbank modifiziert wird.
Die Verwendung dieses Attributes resultiert in einem Performancezuwachs sowie in einer Entlastung
des Servers.
Cache-Einträge werden angelegt pro angemeldetem Benutzer und
Abfragetext. D.h. jeder Benutzer bekommt seine eigenen Ergebnisse
geliefert (Ausnahme: Alle anonym browsenden Benutzer bekommen dasselbe
Ergebnis).
Zu jedem eindeutigen Abfragetext wird ein eigenes Ergebnis
geliefert.
Dies bedeutet: Auch in einem Query-Tag der eine dynamisch
zusammengesetzte Abfrage verwendet (z.B. unter Miteinbezug eines
URL-Parameters) kann der Cache benutzt werden, da für jede dynamische
Abfrage-Variante ein eigener Cache angelegt wird.
Der Query-Cache ist insgesamt ressourcensparsam da nur die Content-IDs
der gefundenen Dokumente. zwischengespeichert werden. Dennoch kann der
Cache einer sehr dynamischen Abfrage umfangreiche Ausmaße annehmen.
Abfragen sind für das Caching über diesen Mechanismus ungeeignet wenn folgenden Kriterien erfüllt sind:
- Die Anfrage enthält Kriterien, die
nicht alleine auf den Daten der Datenbank basieren sondern dynamische
Werte wie z.B. die aktuelle Uhrzeit mit einbeziehen, die sich unabhängig von der Datenbank ändern
- Der Abfrage-Tag enthält weitere Attribute welche das Ergebnis beeinflussen, z.B. alllanguages oder includecurrent, und deren Einstellung sich zwischen mehreren Abfrage-Aufrufen ändern kann. Der Query-Cache berücksichtigt diese Attribute nicht und wird auch dann gecachte Ergebnisse zurückliefern, wenn diese unter anderen Attributs-Einstellungen entstanden sind als für die aktuelle Anfrage gelten
- Die Abfrage betrifft Datenbanken, die temporäre Content-Keys verwenden. Dies trifft auf die Implementierungen "RSS Feed-Connector"
und "JDBC-Database" zu..
- Die Abfrage benutzt den Lucene-Volltextindex
Der Query-Cache ist nicht mit dem WebTML-Cache zu verwechseln, der
andere Aufgaben wahrnimmt und wird auch nicht durch dessen
Konfigurationsparameter beeinflusst.
Eine gecachte Volltextsuche, welche einen URL-Parameter als Suchbegriff akzeptiert. Pro Suchbegriff wird ein eigener Cache angelegt.
<tml:query db="artikel" type="fulltext" cache="true"><tml:urlparameter name="searchFor"/></tml:query>