Seitenausgabe-Cache

Diese Konfiguration ist für einen erfolgreichen ersten Start von contentXXL nicht erforderlich, so dass sie möglicherweise jetzt übergangen werden kann.

In einer Produktivumgebung muss allerdings der Seitenausgabe-Cache unbedingt entsprechend der Anforderung und der zur Verfügung stehenden Konfiguration eingestellt werden. Nicht oder fehlerhaft konfigurierte Ausgabe-Caches sind ein häufiger Grund für Systemprobleme (Speicherbedarf, möglicherweise Anwendungsfehler) in contentXXL-Installationen.

Optional ist es möglich, den Seitenausgabe-Cache (POC) in einer Konfigurationsdatei den speziellen Szenarien (Internet, Intranet, Extranet) anzupassen. Cache-Einträge können beispielsweise nur für bestimmte Base-URLs, Browser, Benutzergruppen oder URL-Muster angelegt werden.

Warum soll ein Seitenausgabe-Cache benutzt werden?

Es wäre eine Verschwendung von Ressourcen, für jede einzelne Anfrage jede Webseite vollständig neu dynamisch zusammenzustellen. Dies würde eine sehr hohe Auslastung der Server verursachen.

Mit der Aktivierung des Seitenausgabe-Caches wird das generierte HTML im Speicher (POC) vorgehalten und kann bei Bedarf sehr schnell und ohne Systembelastung erneut ausgeliefert werden.Warum soll ein Seitenausgabe-Cache benutzt werden?

Wie kann man den Seitenoutput-Cache aktivieren?

Im Sitemanager finden Sie unter Administratoren/Portaleinstellungen/Caching das Eingabefeld "Timeout (Sek.) globales Seiten-Caching"
Wir empfehlen hier einen Wert von 86400, sofern genügend Speicher vorhanden ist. Der Eintrag "0" oder "-1" bedeutet, dass Seiten nicht gecached werden (die portalweite Einstellung kann auf einzelnen Seiten im Feld "Cache-Timeout" überschrieben werden).

Wann macht es Sinn, weitere Einstellungen über die Konfigurationsdatei zu treffen?

Wenn man mit einer langen POC Dauer arbeitet, z.B. 24 h bis zum nächsten geplanten Prozess- Recycling, wird man sehr zahlreiche Einträge in den POC Leistungsindikatoren für ASP.NET sehen, z.B. 10.000 oder mehr. Ein Eintrag wird angelegt pro:

  • Seite (URL)
  • Browser (Hauptversion)
  • Benutzerlogin

Zahlreiche Einträge würden so z.B. von Suchmaschinen angelegt, oder für seltene Aufrufe wie Druckansichten etc. Dies kann erhebliche Ressourcen im Speicherbereich binden. Erreicht die Speicherauslastung einen kritischen Punkt (konfiguriert in den Einstellungen für die Webanwendung) entfernt das .NET Framework selbständig Einträge. Es ist jedoch besser, wichtige Einträge zu behalten (z.B. anonyme IE-Benutzer) und dafür andere Aufrufe (z.B. Google-Spider) auszuschließen.

Hinweis: Erzeugen Sie nur die Einträge im Seitenausgabe-Cache, die Sie wirklich benötigen.

 

 

Alle Einstellungen werden in der Datei pageoutputcache.config getroffen, die sich gegebenenfalls im Wurzelverzeichnis der Anwendung befindet.

 

<PageOutputCacheConfiguration>
<agents includeall="[true|false]">
<!-- depending on the includeall-value either  -->
<include agent="IE"/>
<include agent="Firefox"/>
<!-- or  -->
<exclude agent="Mozilla" />
<exclude agent="Lynx" />
</agents>
<roles includeall="[true|false]">
<! -- depending on the includeall-value either -->
<include rolename="Admins"/>
<include rolename="Editors"/>
<! -- or -->
<exclude rolename="Editors" />
<exclude rolename="Admins" />
</roles>
<baseurls includeall="[true|false]">
<! -- depending on the includeall-value either -->
<include baseurl="http://www.contentxxl.de/"/>
<include baseurl="http://www.contentxxl.com/"/>
<! -- or -->
<exclude baseurl="http://www.contentxxl.net"/>
<exclude baseurl="http://www.contentxxl.ch/"/>
</baseurls>
<urlpatterns includeall="[true|false]">
<!-- depending on the includeall-value either -->
<include urlpattern="**regular expression**"/>
<!-- or -->
<exclude urlpattern="**regular expression**" />
</urlpatterns>
</PageOutputCacheConfiguration>

 

  • agents dient zum ein- oder ausschließen von Browsern. Ist nur begrenzt Speicher vorhanden, schließen Sie alle Browser aus und erlauben explizit nur die am häufigsten verwendeten.
     
  • roles dient dem Ein- oder Ausschließen von Rollen/Gruppen. In einem Internet-Szenario schließen Sie alle Rollen aus und erlauben Sie das Caching nur für die Rolle „jeder“ / „anonymous“ / „everybody“. In einem Extranet schließen Sie die Editoren vom Seitencaching aus. Dies löst zusätzlich ggf. auftretende Problem mit der Aktualität Client-seitiger Caches, z.B. bei individuellen Einstellungen.
     
  • baseurls dient dem Ein- und Ausschließen von Base-URLS. Wenn bekannt ist, das bestimmte Base-URLs nur selten aufgerufen werden, kann man diese vom Caching ausschließen.
     
  • urlpatterns dient dem Ein- und Ausschließen von URLs anhand von Mustern. Es ist möglich im Sitemanager das Seitenausgabe-Caching pro Seite zu setzen. Oft werden jedoch unterschiedliche Varianten einer Seite geladen, die sich anhand der URL unterscheiden. Sie können solche Seiten, z.B. Druckansichten, Weiterempfehlungen etc. über die Angabe von Teilen der URL (RegEX Unterstützung) vom Caching ausschließen.

 

Folgen Sie diesem Beispiel:

<PageOutputCacheConfiguration>
<agents includeall="false">
<include agent="IE"/>
<include agent="Firefox"/>
<include agent="Mozilla" />
</agents>
<roles includeall="false">
<include rolename="anonymous"/>
</roles>
<baseurls includeall="true">
</baseurls>
<urlpatterns includeall="true">
<exclude urlpattern="send" />
<exclude urlpattern="print" />
</urlpatterns>
</PageOutputCacheConfiguration>

Bitte vergessen Sie nicht, die Auswirkungen der getroffenen Einstellungen anhand der Leistungsindikatoren zu überprüfen.

Mehr Informationen zum Caching, zur Performance, zu Leistungsindikatoren und Audits finden Sie im Partner & Support Portal.



Manchmal ist es notwendig, einen kurzen Blick auf die web.config oder die pageoutputcache.config (sofern vorhanden) zu werfen, um deren Einträge zu überprüfen. Dies kann online in den „Portaleinstellungen/Caching ” getan werden.

Die Dateien können durch Anklicken des Textes in den Klammern aufgerufen werden.

Hinweis: Die Benutzerkennung und das Passwort das in der web.config hinterlegt ist, wird aus sicherheitstechnischen Gründen anonymisiert durch „###parsedout###“.