TimestampOffset

In der TAA-Registry kann ein Eintrag TimestampOffset (bei EndUser=0) vorgenommen werden, der bewirkt, dass sämtliche von der TAA erstellten Datums- und Zeitangaben um diese Angabe angepasst werden. Das Format entspricht der Spezifikation eines Timestamps, wobei die Angabe zu den Mikrosekunden ignoriert wird: Diesem Eintrag kann ein Zeichen vorangestellt werden, anhand dessen der Eintrag interpretiert wird:

Präfix Bedeutung
+ Alle Timestamps werden um den eingetragen Wert erhöht. Dies geschieht auch, wenn kein Präfix angegeben ist (Default). Der Eintrag 0002-00-00-00.00.00.000000 z.B. bewirkt, dass alle Timestamps zwei Jahre in der Zukunft liegen.
- Alle Timestamps werden um den eingetragen Wert verringert. Der Eintrag -0000-00-00-04.00.00.000000 bewirkt, dass alle Timestamps 4 Stunden in der Vergangenheit liegen.
a In diesem Fall wird der Eintrag als sog. absoluter TimestampOffset interpretiert. Der Eintrag a2000-01-01-09.00.00.000000 bewirkt, dass alle Timestamps ab dem 1.1.2000 9:00 generiert werden. Die Angabe der Uhrzeit ist optional. a2000-05-26 wird interpretiert als a2000-05-26-00.00.00.000000. Es ist möglich hier sog. Platzhalter zu verwenden um anzugeben, dass die aktuelle Uhrzeit oder das Tagesdatum berücksichtigt werden soll.

Änderungen am TimestampOffset werden beim laufenden TAA-Server direkt berücksichtigt. Allerdings darf der Wert dann nur in positive Richtung erhöht werden, da sonst ein Timestamp zurückgeliefert werden könnte, der kleiner wäre als ein früherer Timestamp, wodurch die Eindeutigkeit der TAA-Timestamps nicht gewährleistet wäre. Wenn ein Wert eingetragen wird, der zu einem früheren Timestamp führen würde, erscheint folgende Meldung, und die Änderung wird ignoriert:

Ein Löschen des Eintrages zu TimestampOffset führt dazu, dass Timestamps wieder auf Basis des aktuellen Tagesdatums und Uhrzeit generiert werden. Wenn dies beim laufenden TAA-Server geschieht, und der zuvor vorhandene Eintrag zu in der Zukunft liegenden Timestamps geführt hatte, wird diese Änderung ignoriert und auch die obenstehende Meldung präsentiert.

Wenn bei laufendem TAA-Server ein absoluter TimestampOffset mit dem aktuellen Tagesdatum eingetragen wird, wird dieser von der Infrastruktur um die Uhrzeit so angepasst, dass Timestamps nach der aktuellen Uhrzeit generiert werden. Wenn z.B. am 26.5.200 um 10:15:34 der absolute TimestampOffset a2000-05-26 eingetragen wird, wird dies von der Infrastruktur als a2000-05-26-10.15.35.000000 interpretiert. Wird dagegen zu demselben Zeitpunkt a2000-05-26-11.00.00.000000 eingetragen, wird dies nicht angepasst. Diese Anpassung findet nicht statt, wenn der Eintrag gemacht wird, bevor der TAA-Server gestartet wird.

Kontextsicherung und Wiederaufnahme

Die Angabe zu TimestampOffset wird auch bei einer Unterbrechung in dem technischen Kontext gespeichert. Dieser wird bei der Wiederaufnahme auch wieder benutzt, es sei denn, in der TAA-Registry ist ebenfalls ein Eintrag vorhanden; in dem Fall wird der Eintrag aus der Registry beibehalten. Hierdurch ist es möglich, einen eventuell in der Kontextsicherung vorhandenen TimestampOffset zu neutralisieren, indem in der TAA-Registry der Wert 0000-00-00-00.00.00.000000 eingetragen wird.

Außerdem wird bei einer Unterbrechung ein Timestamp (unter Berücksichtigung des TimestampOffset) im technischen Kontext gespeichert. Bei der Wiederaufnahme wird dann geprüft, ob der aktuelle TimestampOffset zu einem Timestamp führen würde, der vor dem liegt, der in dem Kontext gespeichert ist. In diesem Fall wird ein sog. Oops produziert und die Wiederaufnahme wird verweigert: Im Falle eines absoluten TimestampOffset wird geprüft, ob dieser das gleiche Datum wie der Timestamp des Kontextes hat. In diesem Fall wird ebenfalls sichergestellt, dass die Uhrzeit des TimestampOffsets nach der Uhrzeit des Timestamps aus dem Kontext liegt, damit die Wiederaufnahme stattfinden kann. Hat die Unterbrechung allerdings nach 24:00 stattgefunden, findet diese Anpassung nicht statt (Datum ist unterschiedlich). Die Wiederaufnahme wird in diesem Fall abgelehnt. In diesem Fall muss in der TAA-Registry ein entsprechender TimestampOffset eingetragen werden, damit dieser Geschäftsvorfall wieder aufgenommen werden kann.

Mit diesem Mechanismus des absoluten TimestampOffset können Unterbrechungszeiten simuliert werden: Wenn der absolute TimestampOffset für einen Geschäftsvorfall nicht geändert wird, wird die geringstmögliche Unterbrechungszeit angenommen. Durch eine neue Eintragung in der TAA-Registry kann eine beliebig lange Unterbrechungszeit simuliert werden.

Platzhalter

Bei einem absoluten TimestampOffset können Platzhalter verwendet werden um anzugeben, das hier die aktuelle Uhrzeit oder das Tagesdatum verwendet werden soll. Um z.B. dafür zu sorgen, dass die aktuelle Jahreszahl verwendet werden soll, geben Sie anstatt der vierstelligen Jahreszahl den Platzhalter year an, oder für die aktuelle Stundenzahl hour. Die Platzhalter müssen durch ein Ampersand (&) umklammert werden. Wenn ein Platzhalter nicht erkannt wird, oder es ergibt sich nach Ersetzung aller Platzhalter keinen gültigen Timestamp, wird einen Oops ausgegeben und die Angabe des TimestampOffsets wird ignoriert. Folgende Platzhalter werden unterstützt:

Platzhalter Bedeutung
year 4 stellige Jahreszahl
month 2 stellige Monatzahl
day 2 stellige Tag im Monat
hour 2 stellige Stundenzahl
min 2 stellige Minutenzahl
sec 2 stellige Sekundenzahl
msec 6 stellige Mikrosekundenzahl
time Kürzel für &hour&.&min&.&sec&.&msec&
registry:timestampoffset · Zuletzt geändert: 13.04.2015 17:34

Copyright © 1992-2024 TeamWiSE Gesellschaft für Softwaretechnik mbH         Adressen |  Kontakt |  AGB |  Datenschutzerklärung |  Impressum