Import und Export

Die Template Engine arbeitet in Phasen. Abwechselnd importiert sie Informationen über CMS-Datei-Versionen vom Content Management Server (Import-Phase) und generiert Webdokumente, die sie dann live schaltet (Export-Phase). Die Export-Phase ist in mehrere Teilphasen unterteilt. Die einzelnen Phasen haben die im Folgenden beschriebenen Aufgaben:

  • import: Die Template Engine erhält vom Content Manager so genannte Update-Records, d. h. Informationen über aktualisierte Dateien. Ist der Portal Manager eingebunden, so erhält sie auch Update-Records, die sich auf Channels und Newsartikel beziehen.

  • importCB (ab Version 6.7.2): Die Template Engine ruft eine Callback-Funktion auf, die Zugriff auf ein Journal der Import-Aktionen hat und weitere Aktionen auslösen kann.

  • export-init: Die Exportanforderungen, die sich aus den Update-Records ergeben, werden bearbeitet und gruppiert. Die Gruppierung erlaubt es, mehrere Slaves Dateien exportieren zu lassen.

  • export-fill: Die Exportanforderungen werden ausgeführt, d. h. Dateien in die offline geschaltete Verzeichnishierarchie exportiert. Diese Phase (und damit der gesamte Export) wird abgebrochen, wenn eine konfigurierbare Anzahl Dateien nicht exportiert werden konnte (Systemkonfigurationseintrag tuning.export.acceptableFailures). Ist die Verity Cartridge eingebunden, so werden die erzeugten Webdokumente parallel indiziert.

  • export-fillCB: Die Template Engine ruft eine Callback-Funktion auf, mit der die aktualisierte Verzeichnishierarchie beliebig repliziert werden kann.

  • export-switch: Die aktualisierte Verzeichnishierarchie wird live geschaltet, indem die Ziele zweier symbolischer Links (online und offline geschaltete Hierarchien) vertauscht werden.

  • export-switchCB: Die Template Engine ruft eine weitere Callback-Funktion auf, mit der die Ziele der symbolischen Links auch auf anderen Webserver-Systemen vertauscht werden können.

  • export-sync: Die jetzt offline geschaltete Verzeichnishierarchie wird auf den aktuellen Stand gebracht.

  • export-syncCB: Mit dieser Callback-Funktion kann eine entfernte, jetzt offline geschaltete Verzeichnishierarchie auf den aktuellen Stand gebracht werden.

  • export-sync-finished: Das während der Phase export-fill geschriebene und in der Phase export-sync abgearbeitete Journal der geänderten Dateien wird rotiert. Damit ist die Export-Phase beendet, und die Template Engine geht wieder in die Import-Phase.

Die Template Engine geht in die Export-Phase, wenn sie vom Content Management Server eine entsprechende Anweisung oder einen der Tcl-Befehle app publish und app export erhält. Während mit app publish ein vollständiger Export- und Veröffentlichungszyklus durchlaufen oder ein unterbrochener Zyklus wieder aufgenommen wird, exportiert app export die Dateien und kehrt anschließend in die Import-Phase zurück. Da die Template Engine Dateien inkrementell exportiert, kann man app export nutzen, um den Veröffentlichungsvorgang (app publish) auf die Umschaltung und Synchronisation der Verzeichnisse zu reduzieren und dadurch schneller zu machen. Diese Befehle der Template Engine zu verwenden, sollte jedoch nur im Fehlerfall erforderlich sein, weil der Server normalerweise entsprechende Anweisungen als Update-Records vom Content Manager (mittels System-Jobs) erhält. Einzelheiten zu diesen Jobs können Sie der Dokumentation zu Administration und Layout entnehmen.

Schlägt eine der Export-Phasen bis einschließlich export-switch fehl, so kehrt die Template Engine zur Import-Phase zurück. Schlägt dagegen eine der darauf folgenden Phasen fehl, so bleibt der Fehlerzustand bestehen. In diesem Fall ist es zwingend erforderlich, die Fehlerursache zu beseitigen, um anschließend mit app publish den Export-Vorgang fortzusetzen, d. h. die Verzeichnishierarchien umzuschalten und die erforderlichen Synchronisationsvorgänge auszuführen. Kann die Fehlerursache nicht beseitigt werden (weil etwa ein entfernter Rechner nicht erreichbar ist), so können notfalls die Callback-Funktionen außer Kraft gesetzt werden, indem beispielsweise ihr Code auskommentiert wird (erfordert, dass der Server neu gestartet wird).

Die Callback-Funktionen

Die Template Engine liefert normalerweise die Inhalte vom selben System aus, auf dem sie installiert ist, d. h. sie exportiert die Dateien in eine lokale, offline geschaltete Verzeichnishierarchie, die dann online geschaltet wird. Die ehemalige Online-Hierarchie wird abschließend mit der aktuellen Onlinehierarchie synchronisiert, damit dem folgenden Export die aktuellen Daten zugrunde liegen.

Bei verteilten Systemen lassen sich diese Vorgänge mit den oben beschriebenen Callback-Funktionen auch auf einem oder mehreren entfernten Rechnern durchführen. Die Callback-Funktionen rufen die unten beschriebenen kundenspezifischen Prozeduren auf. Bitte beachten Sie, dass die Callback-Funktionen einen Fehler mit dem Befehl error anzeigen müssen. Wird eine Callback-Funktion nochmals aufgerufen, nachdem sie fehlgeschlagen ist, so muss das Ergebnis das gleiche wie beim ersten Aufruf sein, wenn dieser erfolgreich gewesen wäre. Callback-Funktionen dürfen den Inhalt des Export-Verzeichnisbaums nicht modifizieren.

Die Callback-Funktionen müssen als Serverkommandos in einer Tcl-Skript-Datei definiert werden, die im instanzenspezifischen Verzeichnis script/cm/serverCmds abgelegt wird.

Phase importCB (ab Version 6.7.2), Callback-Funktion importCallback

Beim Importieren von Update-Records erstellt die Template Engine ein Journal der Änderungen an CMS-Dateien. Diese Callback-Funktion kann das Journal auswerten und weitere Aktionen auslösen.

Phase export-fillCB, Callback-Funktion exportFillCallback

Vor dem Aufruf der Callback-Funktion schließt die Template Engine den Export in die offline geschaltete lokale Verzeichnishierarchie vollständig ab. Nach der Ausführung muss es eine Offline-Verzeichnishierarchie auf dem entfernten Rechner geben, die ebenfalls vollständig ist. Die Callback-Funktion muss gefahrlos mehrmals ausgeführt werden können.

Phase export-switchCB, Callback-Funktion exportSwitchCallback

Aufgabe der Callback-Funktion ist es, auf einem entfernten Rechner die online und offline geschalteten Verzeichnishierarchien zu vertauschen. Beim Aufruf der Callback-Funktion enthält die lokale, online geschaltete Verzeichnishierarchie die neuen Daten, die offline geschaltete Hierarchie die bisherigen Online-Daten. Ferner muss auf dem entfernten Rechner der Zustand nach erfolgreicher Ausführung des exportFillCallback herrschen, d. h. die Offline-Hierarchie enthält die neuen, die Online-Hierarchie noch die alten Daten. Nach erfolgreicher Ausführung muss es auf dem entfernten Rechner je eine Online- und eine Offline-Verzeichnishierarchie geben, die vertauscht wurden, so dass deren Inhalte denen des lokalen Systems entsprechen. Im Fehlerfall dürfen die entfernten Verzeichnishierarchien nicht vertauscht worden sein.

Phase export-syncCB, Callback-Funktion exportSyncCallback

Diese Callback-Funktion hat die Aufgabe, auf dem entfernten Rechner die Offline-Hierarchie auf den Stand der Online-Hierarchie zu bringen. Bevor die Callback-Funktion aufgerufen wird, hat die Template Engine die lokalen Hierarchien abgeglichen. Die Callback-Funktion wird nur aufgerufen, wenn der exportSwitchCallback erfolgreich ausgeführt wurde, d. h. die aktuellen Daten online und die veralteten offline sind. Nachdem die Callback-Funktion erfolgreich ausgeführt wurde, müssen die beiden entfernten Hierarchien die gleichen Inhalte haben.