Die periodische Ausführung von Pipeline reagiert mit einer “scheinbaren” Zeitverschiebung auf Servern, welche nicht in UTC-Zeit laufen.

Version: Dieser Artikel ist mindestens gültig ab der stabilen Version 5.2.


1. Problembeschreibung

OCT speichert die Ausführungszeiten für jede Pipeline in UTC-Zeit. Dies ist eine weltweit einheitliche Zeit. In dieser UTC-Zeit gibt es keine Sommer- und Winterzeit. In Deutschland und vielen anderen Ländern wird
zwischen Winterzeit und Sommerzeit gewechselt. Man wechselt somit sozusagen in eine “andere Zeitzone”.

Ob dieses Problem bestehet hängt vom Zeit-Typ des OCT-Applikationsservers ab, d.h. ob dieser auch in UTC Zeit oder in einer lokalen Zeit läuft.

Pipelines mit periodisch definierten “Scheduler” lösen folgende Probleme aus, wenn der Server keine UTC-Zeit nutzt:

Wechsel von Winterzeit auf Sommerzeit - Uhr wird eine Stunde vorgestellt

  • Alle Jobs werden eine Stunde später ausgeführt werden.

    • z.B. der Job ist für 3.00 Uhr konfiguriert, startet aber erst 4:00 Uhr.

  • In der Nacht der Zeitumstellung fallen keine Jobs aus - ein Job startet nur später.

Wechsel von Sommerzeit auf Winterzeit - Uhr wird eine Stunde zurückgestellt

  • Alle Jobs werden eine Stunde früher ausgeführt.

    • z.B. der Job ist für 3.00 Uhr konfiguriert, startet aber schon 2:00 Uhr.

  • In der Nacht der Zeitumstellung fallen keine Jobs aus, sie starten nur (laut Loganzeige, aber nicht tatsächlich) zur gleichen Zeit.

  • Tatsächlich werden somit alle Jobs ohne Veränderung zur korrekten UTC-Zeit ausgeführt.

  • Durch die Änderung der Zeitzone des Betrachters, “erscheint” es bei dessen Betrachtung als Zeitverschiebung.


2. Lösung

  • Ändern Sie die Job-Ausführungszeiten nach der Zeitumstellung oder

  • Legen Sie diese neu an, falls Sie die Ausführung zur lokal gültigen Zeit wünschen.


3. Zusatzinformationen

  • Die Ausführungszeiten für Jobs werden in der Datenbank in UTC-Zeit gespeichert.

  • Bei der Anlage eines Jobs wird dem User die lokale Zeit angezeigt.

  • Die Einträge im Pipeline-Log werden ebenfalls in lokaler Zeit gespeichert.

Abweichenden Konstellationen

  • Applikationsserver / Web-App und Datenbankserver können in unterschiedlichen Zeitzonen laufen.

  • Insbesondere im Azure Umfeld laufen die Azure SQL Services immer in UTC-Zeit.

  • Die Web-App verhält sich je nach Konfiguration.

Warum speichert OCT die Jobs nicht immer in lokaler Zeit und führt sie in dieser aus?

  • Wird der Job in lokaler Zeit gespeichert haben Jobs im Fenster 2.00 Uhr bis 3.00 das Problem, dass:

    • sie bei Umstellung auf Sommerzeit gar nicht ausgeführt werden - diese lokale Zeit gibt es dann nie.

    • sie bei Umstellung auf Winterzeit zwei Mal ausgeführt werden - diese lokale Zeit gibt dann zweimal.

  • Man müsste somit “Keine Jobs an Sonntagen früh zwischen 1:59 Uhr und 3.01 Uhr ausführen” definieren, um sicher zu gehen.

    • Zeitumstellungen finden immer in der Nacht von Samstag auf Sonntag statt.

Wie werden künftige OCT-Versionen mit dem Problem umgehen?

  • Wir können es noch nicht abschließend sagen, da sowohl die Ausführung in lokaler Zeit als auch in UTC-Zeit Vor- & Nachteile hat.

Weitere Informationen zum Thema Scheduler sind in folgendem Artikel zu finden Best-Practice für "Scheduler"