48EC57C13BA44304B3C399FFF1EF1EB7
  • Thomas Pollinger
  • 06.04.2018
  • DE

Kleine Tipps für Zwischendurch (Nr. 5)

Die neue Artikelserie "Kleine Tipps für Zwischendurch" soll vorallem Anwendern, Entwicklern und Administratoren schnell und einfach Hilfe geben. Es wird immer genau um ein kleines Thema, Feature oder ähnliches gehen.
 

Löschen mit dem Management Server

Der Management Server unterstützt zwei Methoden, wie man Inhalte auf dem Zielsystem löschen (lassen) kann.

Jedoch was nicht so klar aus der Dokumentation hervorgeht ist, dass man in Kombination mit dem Delivery Server (via WebService) eine zusätzliche Option nicht aktivieren sollte. Warum dem so ist, erkläre ich nachfolgend.

In der Online-Hilfe wird in den entsprechenden Kapiteln das Löschen (Cleaner) für die Publizierungsvarianten HDD, sFTP und Delivery Server recht gut erklärt. Das funktioniert, bei korrekter Anwendung und passendem Projektbau, auch zuverlässig. 

Nur man kann sich ein Set von Einstellungen schaffen, welche dann einem Kopfzerbrechen bereiten können. Vor allem wenn man die Publizierung auf einen Delivery Server, via WebService inkl. löschen nutzt. Und dann diese Einstellungen falsch versteht:

Normalerweise schaltet man die s.g. Option "Live-Server aufräumen" an der zugehörigen Projekt-Variante ein und gut ist. Jedoch kann es nötig werden, die Option "Live-Server aufräumen: Löschauftrag für verbleibende Dateien erstellen" nötig werden. Dabei findet man direkt noch die Option "Löschliste erstellen" unter Delivery Server. Und wie das so ist, man aktiviert dies auch direkt mit. Frei nach dem Motto, dass kann ja nicht schädlich sein ;).

Doch jetzt kommt der Fallstrick bei der Sache, der einem das Genick brechen kann. Denn die s.g. Löschliste, wird nur in ganz bestimmten Fällen beim Delivery Server benötigt. Und zwar immer dann, wenn man nicht über den WebService via Publisher publiziert, sondern auf die Festplatte oder via sFTP. 

Jetzt kann man sich fragen, wie bekommt der Delivery Server nun den Content (also die Seiten etc.) in sein Repository. Der Delivery Server ist praktisch in der Lage über multiple Wege sich Inhalte einzuverleiben. Dazu gehört auch der oft genutzte Content-Import von der Festplatte.

Diese Funktion kommt immer dann zum Einsatz, vorallem mit dem Management Server, wenn man den WebService nicht direkt nutzen kann oder darf. Dann wird der Inhalt aus dem Management Server entweder auf Festplatte oder via sFTP auf das Zielsystem publiziert und vom Delivery Server dann in regelmäßigen Zyklen oder manuell importiert.

Nun kommen wir zu dieser Löschliste, welche in dem zuvor erläuterten Fall nötig ist. Denn in einer idealen Welt, publiziert der Management Server direkt via WebService auf den Delivery Server und kann dann auch direkt zu löschende Seiten mitteilen. Dies geht jedoch nicht mehr, wenn man das via Festplatte oder sFTP tut. Da kommt nun die Löschliste zum tragen, welche durch den Content Import des Delivery Servers importiert, gelesen und verarbeitet wird.

Jetzt kommen wir zu den Kopfschmerzen ;) ... Wenn man nun einen Delivery Server via WebService befüttert, die Option "Live-Server aufräumen" an der Projektvariante aktviert hat und zusätzlich noch die Option "Löschliste erstellen" aktiviert - knallt es regelmäßig auf dem Delivery Server bzw. im Publizierungsbericht mit dieser Fehlermeldung:

Management Server 16.0 - 16.0.2.356
________________________________________

Status: Some errors
Publishing Information
Name: ... {JOBNAME}
Created by: ... {USERNAME}
Started by: ... {USERNAME}
Start: 01.01.2018 00:00:01
Finished: 01.01.2018 00:15:01
Server: ... {SERVERNAME}

Language variant: Deutsch
Project variant: {PV}
Publish all following pages: yes
Publish related pages: no

Errors: 
C:\Caches\RedDotTemp\...\...\...\de\deleted_20180406094808.del:
de.reddot.api.ObjectNotFoundException NoSuchObjectException - 'ContentIdentity{.../267394.html, contentStatus=FINALPRIORITY, swapType=0, locales=null}'
de.reddot.api.ObjectNotFoundException NoSuchObjectException - 'ContentIdentity{.../292955.html, contentStatus=FINALPRIORITY, swapType=0, locales=null}'
de.reddot.api.ObjectNotFoundException NoSuchObjectException - 'ContentIdentity{.../268025.html, contentStatus=FINALPRIORITY, swapType=0, locales=null}' 
-------------------------------

Published: 
PAGE published: C:\Caches\GarbageCollector\224571.html 
...
PAGE deleted: via WebService (...)/.../267394.html (project: ... / group: ...)
PAGE deleted: via WebService (...)/.../292955.html (project: ... / group: ...)
PAGE deleted: via WebService (...)/.../268025.html (project: ... / group: ...) 
DELETELIST error: via WebService (...)/deleted_20180406094808.del 
PAGE published: ...

Grund dafür ist, wenn man sich die ganzen Optionen intensiv angeschaut hat, sehr leicht zu verstehen. Der Publisher meldet über den WebService an den Delivery Server "Lösche die drei Seiten". Jedoch wird auch parallel eine Löschliste (*.del) erzeugt und auch an den Delivery Server via WebService übertragen.

Jetzt wird die Löschliste vom Delivery Server importiert, gelesen und verarbeitet. Und jetzt kommt es zur o.g. Fehlermeldung, denn die zu löschenden Seiten aus der Löschliste wurden ja schon über den Publisher auf dem Delivery Server gelöscht und können nicht nochmals aufgeräumt werden. ;)


Fazit

Das Löschen mit dem Management Server via HDD, sFTP und auch mit dem Delivery Server läuft zuverlässig. Jedoch sollte man mit den vielen Optionen ganz bewusst umgehen und beobachten wie das eigene System damit umgeht. Damit es nicht zu dem o.g. Verhalten kommt und man sich eine ganze Weile fragt, wie kann es zu dieser Fehlermeldung kommen. ;)


Über den Autor:
Thomas Pollinger

... ist Senior Site Reliability Engineer bei der Vodafone GmbH in Düsseldorf. Seit dem Jahr 2007 betreut er zusammen mit seinen Kollegen die OpenText- (vormals RedDot-) Plattform Web Site Management für die deutsche Konzernzentrale.

Er entwickelt Erweiterungen in Form von Plug-Ins und PowerShell Skripten. Seit den Anfängen in 2001 (RedDot CMS 4.0) kennt er sich speziell mit der Arbeitweise und den Funktionen des Management Server aus.