Zur Homepage www.HI-Tier.de Zyklische Datenübernahme
Zurück Home Nach oben Weiter
Öffentlicher Bereich für Entwickler

 

Beschreibung

Dieses Dokument beschreibt einen einfachen Mechanismus zur automatischen Datenübernahme von einer lokalen EDV in das HIT.

Inhalt:

bulletGrundprinzip
bulletDas Semaphore-Konzept

horizontal rule

Grundprinzip

Die Übernahme von neuen bzw. aktualisierten Daten aus einer lokalen EDV besteht im wesentlichen aus zwei Schritten:

  1. Erzeugung der Datensdateien für den HitBatch
  2. Zyklisches Ausführen des HitBatch

Die Formate der Datendateien können Sie im beim HitBatch nachlesen. Die Dateien enthalten eine Feldnamenzeile und darunter folgend Zeile für Zeile die Daten, die übermittelt werden sollen.

Damit nun diese Daten regelmäßig ins HIT übertragen werden können, muß der HitBatch immer wiederkehrend mit diesen Datendateien aufgerufen werden. Um keine Überschneidungen bei der Erzeugung der Datendateien und während des Übertragens durch den HitBatch zu erhalten, muß ein einfaches Semaphore-Konzept angewandt werden.

Das Semaphore-Konzept

Beim Übertragen von Daten aus einer lokalen EDV-Anlage ins HIT können Konflikte auftreten. Der einfachste Fall ist der, daß während des Übertragens der Datendateien zum HIT die EDV entweder die Datendateien neu beschreibt oder neue Sätze anhängt. Diese Änderungen bemerkt der HitBatch nicht bzw. ein Neubeschreiben würde ihn zum Absturz bringen. Unter anderem aus diesem Grund müssen Vorkehrungen getroffen werden, daß ein Schreiben während der Verarbeitung durch den HitBatch und ein Verarbeiten während des Schreibens der Datendateien nicht möglich ist. Dazu bedient man sich eines einfachen Semaphore-Konzeptes:

Existiert für ein Batchprogramm eine für ihn bestimmte Datei (=Semaphore-Datei), dann darf er nicht fortfahren, sondern muß eine gegebene Zeitspanne warten und es erneut versuchen. Existiert die Datei nicht, dann hat er die 'Erlaubnis', seine Batchprozedur abzuarbeiten. Es gibt für den Datentransfer nun zwei Batchprogramme: Auf der EDV-Anlage sorgt es dafür, daß die Datendateien geschrieben werden. Ebenfalls auf der EDV-Anlage sorgt ein weiteres Batchprogramm dafür, daß es nach Vorliegen von neuen Daten den HitBatch startet und ggf. bei Fehlern entsprechend reagiert (neu versuchen oder Warnung ausgeben).

Der Einfachheit halber müssen alle Semaphore-Dateien in einem Verzeichnis liegen, bzw.von beiden Programmen (also dem Erzeuger-Programm, das die Datendateien erstellt und dem Überwachungsprogramm, das den HitBatch steuert) über normale Dateizugriffe erreichbar sein.

Arbeitsprinzip

Das Arbeitsprinzip wird hier anhand der in Bayern eingesetzten Batchprogramme erläutert. In Bayern werden nur die Betriebsdaten abgeglichen, da diese in einem bayernweiten System (BALIS) gepflegt werden. Für den Abgleich werden zwei Semaphordateien verwendet: CLIENT.SEM, die anzeigt, daß der HitBatch die Daten gerade abarbeitet und HOST.SEM für die Kennzeichnung, daß die Daten gerade erzeugt werden. Es wird jede Nacht das Batchprogramm zum Erzeugen der Datendateien für den HitBatch gestartet. Dieses arbeitet etwa wie folgt:

  1. Prüfe, ob CLIENT.SEM vorliegt
  2. Wenn ja, warte vorgebene Zeit und versuche erneut Punkt 1.
  3. Wenn nein, dann generiere HOST.SEM
  4. Generiere die Datendateien aus der lokalen EDV (hier: BETRD, BETRP, BETRT, BETRZ)
  5. Lösche HOST.SEM

Das zweite Batchprogramm, welches die erzeugten Daten per HitBatch an den HitServer schickt, arbeitet ähnlich:

  1. Prüfe, ob CLIENT.SEM vorliegt
  2. Wenn ja, breche ab, weil schon ein gleicher Batch-Job arbeitet
  3. Wenn nein, prüfe, ob HOST.SEM vorliegt
  4. Wenn HOST.SEM vorliegt, gewisse Zeit warten und weiter bei 3.
  5. Wenn nicht, generiere CLIENT.SEM
  6. HitBatch mit passender Ini-Datei aufrufen, der alle erzeugten Datendateien abarbeitet
  7. CLIENT.SEM löschen
  8. HitBatch liefert einen Fehlercode, der ausgewertet wird:
    bullet0: fehlerfrei durchgelaufen
    bullet1: gab Impressum aus, d.h. Batchprogramm bricht mit Fehlermeldung ab
    bullet2: Parameterfehler, d.h. Batchprogramm bricht auch mit Fehlermeldung ab und die Ini-Datei muß korrigiert werden
    bullet3: Lesefehler, d.h. Datendateien nicht vorhanden. Es wird versucht, zumindest leere Datendateien zu erzeugen, damit der HitBatch arbeiten kann. Schlägt ein erneuter Versuch fehl, bricht er mit Fehlermeldung ab
    bullet4: Serverfehler, d.h. der Verbindungsaufbau bzw. die Datenübertragung schlug fehl. Das Batchprogramm versucht nach einer vorgegebenen Zeit nochmals und falls eine vorgegebene Anzahl Versuche fehlschlagen, bricht es mit Fehlermeldung ab.
    bullet5: Systemfehler, d.h. am HitBatch stimmt etwas nicht und daher wird hier auch mit Fehlermeldung abgebrochen.
  9. Weiter bei 3.

Das Programm arbeitet zyklisch, ohne sich zu beenden, außer im Fehlerfalle.

Zurück zum Anfang