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

 

Fehlerprüfung und Vorgangserzeugung

Allgemeine Hinweise

Im Rahmen der sogenannten Aposteriori-Prüfung, d.h. "im nach hinein" abgekürtzt auch Aposti genannt, werden aller Meldungen regelmäßig auf "Vollständigkeit und Widerspruchsfreiheit" geprüft und im Falle von Widersprüchen oder fehlenden Gegenmeldungen werden Fehlervorgänge zu einzelnen Meldungen und Meldungspaaren erzeugt. Diese werden oft auch als "Meldekettenfehler" bezeichnet und können in der Entität VORGANG betriebsbezogen abgerufen werden.

Wenn fehlende Meldungen eingehen oder Widersprüche korrigiert werden, werden die zugehörigen Fehlervorgänge dann beim nächsten Prüflauf wieder storniert und sind damit hinfällig.

Ziel

Die Aposti-Prüfung (auch: Plausi Phase II) hat zur Aufgabe, die Lebensläufe jedes Tieres in der Datenbank zu überprüfen und bei Fehlern diese in die Tabelle VORGANG zu schreiben. Die Regionalstellen müssen für ihr jeweiliges Bundesland die Vorgänge über eine Delta-Abfrage holen und veranlassen, daß die Fehler korrigiert werden. Das Aposti-Prüfprogramm berücksichtigt die Korrektur eines Lebenslaufes bei jedem Lauf, indem es die Fehler des korrigierten Lebenslaufes mit den alten schon gespeicherten vergleicht und dabei nicht mehr gültige Fehler storniert und neue Fehler ergänzt. Alle anderen Vorgänge, die nicht zur Aposti-Prüfung gehören, bleiben davon unberührt.

Arbeitsweise

Grundsätzlich bietet das Aposti-Programm die Möglichkeit, entweder einen gegebenen LOM-Bereich oder LOMs aus einer Datei zu rechnen. In beiden Fällen werden nachfolgende Prüfungen der Tier-Lebensläufe in verschiedenen Abschnitten abgearbeitet. Anzumerken ist, daß die 'alte Version' des Aposti-Programmes am 4.1.2001 zuletzt gelaufen ist und ab dem 18.1.2001 die neue.

bulletVorab-Ohrmarkenprüfung der schon vorhandenen Einträge in der Vorgangstabelle
Damit Änderungen am LomCoder auch in der Vorgangstabelle greifen (im konkreten Fall war es die Aufhebung der Datumsprüfung für saarländische Ohrmarken), wird vor der Überprüfung des Lebenslaufes die Ohrmarke geprüft. Ist sie korrekt und war zur Ohrmarke ein Eintrag in der Vorgangstabelle vorhanden, dann wird dieser storniert. Wird ein LOM-Bereich gegeben, so wird dieser komplett am Stück abgearbeitet statt bei jeder gefundenen Ohrmarke einzeln. Diese Prüfung gab es im alten Aposti-Programm nicht.
bulletbetroffene Tiere ermitteln (betrifft nur LOM-Bereichsabfrage; im anderen Fall sind die LOMs bereits bekannt :-)
Aus TIERBETR werden die seit dem letzten Lauf geänderten Ohrmarken ermittelt. Vor der aktuellen Version war es so, daß diese Meldungsabfrage um 10 Tage in die Vergangenheit verschoben war, was dazu führte, daß kürzlich gemachte Änderungen garnicht erfaßt wurden. In TIERBETR stehen zusätzlich Einträge, die in der Zukunft gesetzt wurden, die durch diese Abfrage auch mit erfaßt werden. Mehr dazu bei der Vorgangsprüfung.
bulletsämtliche Tierdaten zur LOM ermitteln
Hier sind zwei Varianten eingebaut worden, um eventuell einen Performancegewinn herauszuholen, da dies der rechenintensivste Teil seitens der Datenbank ist. Beide Varianten holen grundsätzlich zu einem Tier (LOM) aus den Tabellen ERSTERF, GEBURT, EUEIN, IMPMARK, ABGANG, ZUGANG, TOD, SCHLACHTUN und AUSFUHR die Informationen Ereignisdatum, BNR15, SYS_VON, SYS_BIS und SYS_STAT. Diese werden dann unsortiert (bzw. so wie sie von der Datenbank kommen) in einer TierMeldungen-Liste gespeichert. Die zwei Varianten legen die Art der Datenabfrage auf die genannten Entitäten fest. Die eine holt sich alle Daten über ein einziges großes UNION-Select aus der Datenbank und die andere mit neun separaten Selects. Rein performancemäßig ist der UNION einen kleinen Tick schneller.
bulletSortieren der Tiermeldungen
Die alte Meldungssortierung von Herrn Hankewitz wurde durch die von Herrn Hartmann ersetzt, die auch bei der Einzeltierverfolgung verwendet wird. Grob gesagt wird zunächst nach Ereignisdatum sortiert, dann nach Betriebsnummer und schließlich nach Entität. Anschließend werden passende Pärchen gebildet, d.h. z.B. ZUGANG+ABGANG oder ZUGANG+SCHLACHTUNG etc. Diese Pärchen werden nun erneut in den übrigbleibenden alleinstehenden Meldungen einsortiert.
bulletVorgänge generieren
Anhand des sortierten Lebenslaufes werden Vorgänge generiert. Es wird immer die aktuelle mit der vorhergehenden Meldung zur Prüfung auf Konsistenz herangezogen. Die erzeugte Vorgangsliste wird anschließend noch von den Vorgängen befreit, die Dummy-Betriebsnummern betreffen. Schlussendlich wird die Ohrmarke selbst geprüft und im Fehlerfalle als Plausi 9500 angehängt.
bulletEntscheidungskriterium 1: Lebenslauf schon korrekt
Ist der Lebenslauf des Tieres bis zur aktuellen Sekunde korrekt, dann gehe sofort zur Vorgangsbehandlung über. Ist er es nicht, berücksichtigen wir die 10-Tage-Meldefrist.
bulletKürzen des Lebenslaufs
Da der 'lange' Lebenslauf Fehler enthielt, könnte es sein, daß diese Fehler in den letzten 10 Tagen gemacht wurden und davor alles korrekt ist. Wir ermitteln daher eine kurze Tiermeldungsliste, indem wir jedes Ereignis von heute bis vor 10 Tagen weglassen. Die neue Liste wird erneut sortiert.
bulletVorgänge des kurzen Lebenslaufes generieren
Dies geschieht analog dem oben beschriebenen Verfahren.
bulletEntscheidungskriterium 2: Kurzer Lebenslauf unterscheidet sich vom langen
Unterscheidet sich die Vorgangsliste des kurzen Lebenslaufs von der des langen, dann gewährt man der Ohrmarke einen zeitlichen Aufschub und behandelt sie wie einen Lebenslauf, der in den letzten 10 Tagen keine Fehler erzeugt hat. Es wird dann mit der Vorgangsliste des kurzen Lebenslaufs zur Vorgangsbehandlung übergegangen, wobei dort die Vorgänge entfernt werden, die in der Vorgangsliste des langen Lebenslaufes nicht mehr auftauchen würden. Unterscheiden sich beide Vorgangslisten nicht, dann übergibt man der Vorgangsbehandlung die Vorgangsliste des langen Lebenslaufs, da in den letzten 10 Tagen tatsächlich keine fehlerhaften Meldungen vorhanden sind.
bulletZeitlichen Aufschub einer Ohrmarke speichern
Damit Aposti später weiß, welcher Ohrmarke es mal einen zeitlichen Aufschub gegeben hat, wird diese mit der Dummy-Betriebsnummer des betroffenen Bundeslandes in TIERBETR gespeichert. Als DATA_VON-Timestamp erhält es das Datum 10 Tage nach dem Ereignisdatum, d.h. es kann weit in der Zukunft liegen. Beispielsweise bekommt eine Meldung mit einem Ereignisdatum von gestern demnach 9 Tage Aufschub und wird solange berücksichtigt, bis dieser Zeitpunkt überschritten wird. Diese Information wird deswegen in TIERBETR gespeichert, damit sie zu Beginn bei der Abfrage der betroffenen LOMs erfaßt werden kann. Die TIERBETR-Meldungen in der Zukunft kommen mit anderen Abfragen und Meldungen nicht in Konflikt, um gleich die Bedenken auszuräumen.
bulletGewählte Vorgangsliste verarbeiten
Am Ende der Prüfung wird die gewählte Vorgangsliste mit den bereits in der Vorgangstabelle gespeicherten Vorgänge zur Ohrmarke verglichen. Vorhandene Meldungen bleiben erhalten, neue Meldungen werden gemeldet und nicht mehr vorhandene werden storniert. Zudem werden bestätigte Meldungen berücksichtigt und trotz Fehlervorgang aus der Vorgangstabelle storniert.

Vielleicht noch eine amüsante Anmerkung: Das Aposti-Programm ist so schnell, dass es durch das Rausschreiben der Protokolldatei ausgebremst wird. Dieses brauche ich jedoch als Überwachung, um zu sehen, ob alles fehlerfrei lief.

Zeitplan

Der hier genannte Zeitplan ist derzeit gültig.

An folgenden Tagen und Zeiten läuft Aposteriori regelmäßig (seit dem 18.1.2001).

bulletMontags, ab 22 Uhr
bulletMittwochs, ab 22 Uhr
bulletFreitags, ab 22 Uhr

In diesen Zeiten sollten bitte keine Abfragen auf die Vorgangstabelle und auch keine großen Meldejobs vorgenommen werden (würde sonst zu eventuell zu größeren Behinderungen führen).

Je nach Dauer werden die Zeiten eventuell tiefer in die Nacht verschoben, um die Hauptlast von den Abendstunden wegzubringen.

Zurück zum Anfang