In CQ ist der Dispatcher das Zwischenspeicherungs- und Lastausgleichswerkzeug von Adobe. Die Zwischenspeicherungs-Optionen in CQ werden über die Konfigurationsdatei dispatcher.any konfiguriert. Um einen stabilen Zwischenspeicherungs-Mechanismus zu ermöglichen, bietet die Datei „Dispatcher.any“ eine Reihe von Konfigurationsoptionen. Eine Beschreibung des Dispatchers finden Sie in CQ Dispatcher-Dokumentation.

Dieser Artikel behandelt Probleme, denen Sie begegnen könnten, wenn Sie das Zwischenspeichern auf einer CQ-Instanz mithilfe des Dispatchers aktivieren.

Aktivieren des Debugging auf dem Dispatcher

Stellen Sie beim Konfigurieren des CQ-Dispatchers sicher, dass der Dispatcher-protokollierte Mechanismus vorhanden ist.

Stellen Sie für den Apache-Webserver sicher, dass sich die folgenden Zeilen in der http.conf-Datei befinden:

<IfModule disp_apache2.c>
DispatcherConfig conf/dispatcher.any
DispatcherLog logs/dispatcher.log

# log level for the dispatc her log
# 0 Errors
# 1 Warnings
# 2 lnfos
# 3 Debug
DispatcherLogLevel 3

# if turned to 1, the dispatcher looks like a normal module
#since build 5210, this setting has no eff ect , since it used to crash
# apache if set to 0.
DispatcherNoServerHeader 1

# if turned to 1, request to I are not handled by the dispatcher
# use the mod_alias t hen for the correct mapping
DispatcherDeclineRoot 0
</IfModule>

Die Zeile "DispatcherLog logs/dispatcher.log" gibt den Namen der Dispatcher-Protokolldatei an.

Die Zeile “DispatcherLogLevel 3” gibt die Ebene der zu protokollierenden Nachrichten an.

Sobald Sie den Webserver neu starten, wird die Datei "dispatcher.log" mit Informationen zur Initialisierung des Dispatchers erstellt.

Sie können den Namen und den Speicherort der Protokolldatei in Bezug auf das Stammverzeichnis des Webservers ändern.

Wenn das Dispatcher-Caching aktiviert ist, navigieren Sie zu einer beliebigen Seite Ihrer CQ-Website und öffnen Sie dann die Datei dispatcher.log. Folgende Zeilen werden angezeigt:

[Tue Oct 16 13:14:04 2012] [D] [1376(1532)] cachefile does not exist or is a directory: \Library\WebServer\cache\index.html
[Tue Oct 16 13:14:04 2012] [D] [1376(1532)] try to create new cachefile: \Library\WebServer\cache\index.html
[Tue Oct 16 13:14:04 2012] [D] [1376(1532)] cache-action for [/index.html]: CREATE

Hinweis:

Die Cache-Aktionsanweisung in der Protokolldatei ist ein Indikator, mit dem Sie das Ergebnis des letzten Seitenaufrufs identifizieren können.

Problem

Wie debugge ich ein Problem, bei dem kein Inhalt im Dispatcher-Cache gespeichert wird?

Die Webserver-Seitendaten werden an den Speicherort zwischengespeichert, der im Attribut /docroot des Abschnitts /cache in der Datei “dispatcher.any” angegeben ist. Wenn Sie feststellen, dass die spezifischen Seiteninformationen nicht zwischengespeichert werden, rufen Sie die Datei “dispatcher.log” auf. Am Ende des Protokolls sind Einträge für den letzten Seitenaufruf.

Fehler "Caching disabled due to query string" im Protokoll gefunden

[Tue Oct 16 13:14:04 2012] [D] [1376(1532)] checking [/libs/cq/security/userinfo.json]
[Tue Oct 16 13:14:04 2012] [D] [1376(1532)] Caching disabled due to query string: cq_ck=1350373444666
[Tue Oct 16 13:14:04 2012] [D] [1376(1532)] cache-action for [/libs/cq/security/userinfo.json]: NONE

Anforderungen, die eine Abfragezeichenfolge enthalten (z. B. http://www.mysite.com/search?q=adobe), führen zu einer dynamischen Ausgabe, die von der Abfragezeichenfolge abhängt. In den meisten Fällen sollte die Ausgabe der Anforderungen mit Abfragezeichenfolgen nicht zwischengespeichert werden.

Lösung

Wenn Sie festlegen, dass einige Abfrageparameter sich nicht direkt auf die Ausgabe beziehen, konfigurieren Sie den Dispatcher so, dass die Abfragezeichenfolgenparameter der Anfrage ignoriert werden.

Geben Sie im Abschnitt ignoreUrlParams Abfragezeichenfolgenparameter an, die ignoriert werden sollen.

In dieser Beispielkonfiguration werden URL-Anforderungen mit dem Abfragezeichenfolgenparameter "q" zwischengespeichert.

/ignoreUrlParams
 {
 /0001 { /glob "*" /type "deny" }
 /0002 { /glob "q" /type "allow" }
 }

Für die obige Konfiguration behandelt der Dispatcher die folgenden Anforderungen als identisch.

http://www.mysite.com/search?q=adobe
http://www.mysite.com/search?q=dispatcher
http://www.mysite.com/search

Fehler "Kein Cache aufgrund des Berechtigungsheaders" im Protokoll gefunden

[Tue Oct 16 13:39:17 2012] [D] [1376(1532)] checking [/content/geometrixx-outdoors/en/unlimited-blog.html]
[Tue Oct 16 13:39:17 2012] [D] [1376(1532)] no cache due to authorization header.
[Tue Oct 16 13:39:17 2012] [D] [1376(1532)] cache-action for [/content/geometrixx-outdoors/en/unlimited-blog.html]: NONE

Lösung

Eine Lösung dieses Problems finden Sie in der folgenden Forumsdiskussion: Dispatcher stellt CQ5-Seiten bereit, speichert sie aber nicht zwischen

Wie kann ich Cachedateien debuggen, die nicht aktualisiert werden?

Der CQ-Caching-Mechanismus aktualisiert den Zeitstempel einer leeren Datei (angegeben durch das Attribut /statfile in dispatcher.log), um den Cache ungültig zu machen. Wenn eine Seite repliziert wird, sendet der Dispatcher-Lösch-Agent eine Anforderung an den Webserver. Der Dispatcher erkennt die Anforderung und öffnet die .stat-Datei. Dann ändert er 1 Byte in der Datei, um den Zeitstempel zu aktualisieren. Diese Änderung macht den Cache ungültig und veranlasst den Dispatcher, den Cache zu leeren.

Lösung

Wie kann ich debuggen, wenn überhaupt nichts funktioniert?

Sie könnten auf ein Szenario stoßen, bei dem auf Ihren Websites nur leere Seiten angezeigt werden.

Fehler „Filter rejects“ im Protokoll gefunden

[Tue Oct 16 13:47:18 2012] [D] [2880(1332)] cache-action for [/libs/wcm/core/content/siteadmin.infinity.json]: NONE
[Tue Oct 16 13:47:18 2012] [D] [2880(1532)] connected to render publish1 (127.0.0.1:4502)
[Tue Oct 16 13:47:18 2012] [D] [2880(1332)] Filter rejects GET /libs/wcm/core/content/siteadmin.infinity.json HTTP/1.1

Lösung

Der Filter-Abschnitt des „dispatcher.any“ definiert die Anforderungen, die der Dispatcher behandelt.

Stellen Sie sicher, dass der /type auf "zulassen" gesetzt ist, damit Seiten und Inhalte der Website zur Ansicht verfügbar sind.

Im obigen Beispiel wird der Fehler für „siteadmin.infinity.json“ ausgelöst.

Für die folgenden Zeilen aus dem /filters-Abschnitt des „dispatcher.any“ wird der Typ auf „ablehnen“ gesetzt.

      # Deny content grabbing
      /0081 { /type "deny"  /glob "GET *.infinity.json*" }
      /0082 { /type "deny"  /glob "GET *.tidy.json*"     }
      /0083 { /type "deny"  /glob "GET *.sysview.xml*"   }
      /0084 { /type "deny"  /glob "GET *.docview.json*"  }
      /0085 { /type "deny"  /glob "GET *.docview.xml*"  }

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie