Skip to main content

xSuite Interface Windows Prism 5.x – Online-Hilfe

Task "UpdateCheck"

Hinweis

Der Task "UpdateCheck" ist eine automatisierte Alternative zu der manuellen Update-Installation (siehe Update). Dieser Task kann z. B. in speziellen Hosting-Umgebungen verwendet werden, in denen viele parallele Programminstallationen auf dem aktuellen Stand gehalten werden sollen.

Der Task "UpdateCheck" prüft in einem vorgegebenen Verzeichnis, ob Update-Pakete für die laufende Programminstanz vorhanden sind. Wenn Update-Pakete vorhanden sind, werden diese installiert. Die Update-Pakete können vollständige neue Programmversionen sein oder Patches.

Die Installation eines Update-Pakets ist mehrstufig und hat den folgenden Ablauf:

  1. Kopie des vorhandenen Programmverzeichnisses in ein temporäres Verzeichnis:

    Der Task erstellt parallel zum bestehenden Programmverzeichnis {Verzeichnisname} ein neues Verzeichnis mit dem temporären Namen {Verzeichnisname} update v{neue Version} [{Zeitstempel}]. In diesem Verzeichnis wird ein komplett neuer Programmstand aufgebaut. Zunächst wird eine Kopie des vorhandenen Programmverzeichnisses erstellt, sodass auch kundenspezifische Dateien übernommen werden, die in den Update-Paketen nicht enthalten sind. Anschließend werden die Dateien aus einem vollständigen Update-Paket in das temporäre Programmverzeichnis kopiert. Danach werden die darauf aufbauenden Patch-Pakete in das temporäre Verzeichnis kopiert. Ältere Stände gleichnamiger Dateien werden bei diese Kopiervorgängen überschrieben.

  2. Beenden der laufenden Programminstanz:

    Das bestehende Programmverzeichnis muss durch das neu generierte Programmverzeichnis ausgetauscht werden. Dies ist nur nach Beendigung der laufenden Programminstanz möglich. Durch die Beendigung der Programminstanz kann der Task "UpdateCheck" nicht weiter ausgeführt werden. Die nächsten Schritte werden daher von einem separat gestarteten Prozess durchgeführt. In Vorbereitung darauf erstellt der Task "UpdateCheck" eine weitere temporäre Kopie des bestehenden Programmverzeichnisses mit dem Namen {Verzeichnisname} updateHelper [{Zeitstempel}]. Aus diesem Verzeichnis heraus wird die Programmdatei von xSuite Interface als neuer Prozess in einem speziellen Modus gestartet. In diesem Modus fungiert die Programmdatei als Update-Helper.

  3. Umbenennung der Verzeichnisse:

    Der Update-Helper beendet den Windows-Dienst der laufenden Programminstanz und weitere Dienste, die dieselbe Programmdatei (mit anderen globalen Konfigurationen) ausführen. Das vorhandene Programmverzeichnis mit der alten Programmversion wird umbenannt in {Verzeichnisname} backup v{alte Version}. Das neue, noch temporär benannte Verzeichnis erhält den Namen des ursprünglichen Programmverzeichnisses. Anschließend werden aus diesem aktualisierten Verzeichnis heraus die Windows-Dienste neu gestartet.

  4. Löschen des temporären Verzeichnisses:

    Das temporäre Verzeichnis des Update-Helpers wird wieder entfernt. Hierfür startet des Update-Helper aus dem aktualisierten Programmverzeichnis heraus eine zweite Instanz des Update-Helpers. Danach wird die erste Instanz des Update-Helpers beendet. Die zweite Instanz löscht das temporäre Verzeichnis und wird danach ebenfalls beendet.

Hinweis

Im Update-Prozess kann ein beliebiger Schritt fehlschlagen, z. B. weil ein Verzeichnis aufgrund geöffneter Dateien nicht umbenannt werden kann oder ein Dienst nicht zeitgerecht auf Stop-/Start-Kommandos reagiert. In diesem Fall wird versucht, ein Rollback auf den ursprünglichen Programmstand durchzuführen.

Wenn auch einer der Rollback-Schritte fehlschlägt, wird ein nicht laufender oder nicht lauffähiger Stand hinterlassen. Da aber an dem ursprünglichen Programmverzeichnis keine inhaltlichen Änderungen vorgenommen werden, kann der Ursprungszustand durch einen manuellen Eingriff in der Regel leicht wiederhergestellt werden.

Die folgenden Eigenschaften gelten speziell für den Task vom Typ "UpdateCheck".

Eigenschaft

Beschreibung

Schedule[].Task[].PackageFolder*

Ordner, in dem auf Wurzelebene nach verfügbaren Update-Paketen gesucht wird

Die folgenden 2 Arten von Ordnern werden unterstützt:

  • normaler Dateisystemordner

  • Web-Adresse in Form einer URL

    Über die URL muss ein Directory-Browsing möglich sein, um den Ordnerinhalt auszulesen. Bei Nutzung von Microsoft IIS muss dafür z. B. die Option "Verzeichnis durchsuchen" aktiviert und die Option "Standarddokument" deaktiviert sein. Eine Authentifizierung gegenüber dem Webserver ist nicht implementiert.

Die Update-Pakete müssen in Form von ZIP-Dateien vorliegen und dem Namensschema xSI5_[Full|Patch]_#_#_#_#.zip folgen. Als #_#_#_# ist dabei die konkrete Versionsnummer des Updates anzugeben, z. B. 5_1_3_0 für die Version 5.1.3.0. Die beiden Kennzeichner Full und Patch dienen zu Unterscheidung zwischen einem komplett neuen Programmstand und einzelnen Austauschdateien zur Fehlerkorrektur.

Hinweis

Für eine neue Vollversion muss nicht das ausführbare Setup-Paket bereitgestellt werden, sondern eine ZIP-Datei, dessen Inhalt dem Programmverzeichnis einer bereits ausgeführten Installation entspricht.

Der Ordner kann Pakete für beliebige Programmversionen enthalten. Der Task wählt eigenständig die für den aktuellen Programmstand relevanten Pakete aus. Wenn mehrere Pakete für neuere Vollversionen vorhanden sind, wird nur das Paket mit der neuesten Version herangezogen.

Pakete mit Patches werden nur installiert, wenn diese zur aktuellen Programmversion oder zum neuesten Vollversion-Update passen. Maßgeblich ist dabei die Übereinstimmung in den ersten beiden Zahlenwerten der Versionsnummer. Wenn mehrere Patch-Pakete gefunden werden, werden diese in aufsteigender Reihenfolge ihrer Versionsnummern installiert. Pakete, die offiziell von xSuite bereitgestellt werden, enthalten immer alle Änderungen gegenüber der zugehörigen Vollversion.

Schedule[].Task[].StopServiceTimeout

Schedule[].Task[].StartServiceTimeout

numerischer Timeout-Wert in Sekunden, wie lange auf die Beendigung und den Neustart eines Windows-Dienstes gewartet wird, bevor die Aktion als nicht erfolgreich gewertet wird

Standardwert: 60

Abhängig von der Anzahl der Verarbeitungsszenarien, die von einer Programminstanz deinitialisiert/initialisiert werden müssen, kann das Setzen eines höheren Timeout-Werts sinnvoll sein. Dabei ist zu beachten, dass eine Instanz auf ein Beenden-Kommando möglicherweise erst zeitversetzt reagiert, weil die Instanz zunächst die laufende Verarbeitung eines Dokuments kontrolliert zu Ende bringen muss.

Hinweis

Der Task "UpdateCheck" ist nur einsetzbar, wenn alle Programminstanzen als Windows-Dienst gestartet werden. Als einzige Option zum notwendigen Beenden und Neustarten der Instanzen unterstützt der Task einen solchen Dienst.

Um die Wahrscheinlichkeit zu erhöhen, dass die Dienste zeitnah beendet werden, sollte der Ausführungszeitpunkt des Tasks so gewählt werden, dass möglichst wenig Last durch die Verarbeitung von Dokumenten anliegt.

Schedule[].Task[].KillServiceOnTimeout

Wahrheitswert, ob zusätzlich versucht wird, den Prozess eines Windows-Dienstes zu terminieren, wenn der Dienst nicht innerhalb des .StopServiceTimeout auf ein Beenden-Kommando reagiert hat

Durch das unkontrollierte Beenden kann ein Dokument, das sich noch in der Bearbeitung durch den Dienst befindet, in einen inkonsistenten Zustand gelangen.

Standardwert: FALSE

Schedule[].Task[].DeleteTempFolderOnError

Wahrheitswert, ob temporär angelegte Programmverzeichnisse (für Update-Installation und Update-Helper) im Fehlerfall im Zuge des Rollbacks wieder gelöscht werden

Das Beibehalten der temporär angelegten Programmverzeichnisse kann für Fehleranalysen sinnvoll sein, um den Inhalt dieser Verzeichnisse im Nachhinein noch sichten zu können.

Standardwert: TRUE