[Allegro] aLF: Notverbuchung tut not!

Bernhard Eversberg ev at biblio.tu-bs.de
Mo Aug 27 13:29:36 CEST 2007


aLF : Notbetrieb tut not!
-------------------------              [Release 2007g liegt bereit]

Zu Zeiten, als die Server noch öfter ausfielen als heute,
galt ein "Notbetrieb" als unverzichtbare Anforderung im
Pflichtenheft für ein Ausleihverbuchungssystem.
Gut betreute lokale Systeme glänzen zwar heute mit hoher
bis höchstmöglicher Verfügbarkeit, gleichwohl kann man
in einem Geschäftszweig wie der Ausleihe immer noch ruhiger
schlafen, wenn es im Fall des Falles einen Notbetrieb gibt.
Will sagen ein Verfahren, mit dem die unaufschiebbaren
Vorgänge ausführbar sind und sichergestellt wird, daß man die
aufschiebbaren nachholen kann.
Wie kann so etwas im Falle aLF aussehen, welche Vorgänge sind
als unaufschiebbar einzustufen?  Klar ist eins:
Will man gewappnet sein für den Serverausfall, dann muß man von
einer Unzugänglichkeit der Datenbank ausgehen. Jedes Nachsehen
darin und schon gar jedwedes Speichern entzieht sich dann der
Machbarkeit. Wichtig ist ferner, daß ein Notbetrieb unverzüglich
einsetzen kann und ohne daß weitgehende Kenntnisse dazu erforderlich
sind, d.h. es darf nicht so sein, daß erst jemand mit Durchblick
kommen und etwas einrichten oder in Gang setzen muß. M.a.W.:  Minimaler
Administrieraufwand ist ein grundlegendes Erfordernis, man muß
schnellstmöglich mit sehr wenigen Handgriffen einsatzbereit sein.

Zum Glück brauchen die Kernvorgänge, das Ausgeben und Zurück-
nehmen, nicht zwingend den Realzeit-Zugriff zur Datenbank, wenn
man gewisse Dinge wie Gebührnis- und Vormerkfeststellung
notgedrungen als "aufschiebbar" einstuft. Unverzichtbar ist
einzig das Registrieren der Ausgabe ("wer hat was mitgenommen")
sowie der Rücknahme ("Was wurde zurückgegeben?"). Sind Bücher
und Leser verbarcodet, also mit zuverlässigen Identifikatoren
ausgestattet, kann man dabei in der Tat ohne Datenbankzugriff
auskommen. Selbst im GAU-nahen Fall eines Blackout könnte man
das Unaufschiebbare tun, wenn man einen Zettel nimmt und schlicht
aufschreibt:

L<lesernummer>
E<entleihung-barcode>
R<ruecknahme-barcode>

wobei einer L-Zeile natürlich mehrere E-Zeilen folgen können
und die R-Zeilen mit den E-Zeilen nichts zu tun haben. Anders
gesagt, einer R-Zeile muß keine L-Zeile mit dem Barcode des
betr. Lesers vorangehen, es kann ein ganz anderer sein als der
aus der letzten L-Zeile.

Steht ein PC, und sei es bei Blackout ein Notebook, mit Barcodeleser
zur Verfügung, kann der diese Liste aufschreiben. Mit welcher
Software man diese höchst simple Aufgabe bewerkstelligt, ist
unerheblich. Wir liefern einen FLEX  a-gau.flx, der nichts
anderes tut als das. Man braucht also auf dem PC nur ein
Standard-allegro mit DemoBank - die als solche nur da sein
muß, damit a99 läuft. Gespeichert wird darin nichts, sondern
die beschriebene Liste wird als Textdatei aufgezeichnet mit Namen
"batch.txt", auf dem Startverzeichnis dessen, der a99 gestartet hat,
meistens ist das wohl %temp%. Man startet also a99 und gibt  X a-gau,
und schon kann's losgehen mit der Notverbucherei.
ExtraTip: Im  _start.flx  der betr. DemoBank unten anfügen
exec a-gau
dann braucht man sie nur per Icon zu starten und ist "drin" in
der Notverbuchung - NOCH schneller geht's nimmer. Auch mehrere
(voneinander unabhängige) Notverbuchungsplätze mit jeweils eigener
batch.txt sind möglich, man verarbeitet sie dann in beliebiger
Reihenfolge. Wichtig wäre dann aber, daß nicht am einen Platz etwas
ausgegeben und am anderen gleich wieder zurückgegeben wird.

Und dann?
Ist endlich der Server wieder "up", kann die Datei  batch.txt
genommen und mit dem FLEX  a-batch.flx  eingespeist werden.
Derjenige, der es durchführt, braucht dann die Datei batch.txt
auf seinem Startverzeichnis. Am Ende dann die Datei löschen!
Dieser FLEX tut so, als würden die in  batch.txt  stehenden
Ausgaben und Rücknahmen dann real durchgeführt. Er bindet
deshalb die FLEXe  a-chkout.flx  und  a-chkin.flx  ein, und
zwar mit "include". Sie sind jetzt so konstruiert, daß das klappt.
Stößt dann der FLEX auf Gebührenfälle und Vormerkungen,
tut er dasselbe wie im Online-Fall: er legt auch die Gebührensätze
an bzw. gibt die Meldung aus, das und das Buch gehöre nun im
Warteregal bereitgestellt für Leser Soundso. Das geht bis hin zum
Schreiben der Statistikdaten.
Selbstverständlich kann  a-batch.flx  auch Dateien der
beschriebenen Art verarbeiten, wenn sie nicht mit  a-gau.flx
erstellt wurden. Sondern z.B. nachträglich durch Abschreiben
des während Blackout bei Taschenlampenlicht geschriebenen Zettels.
Oder im Fall einer Massenrückgabe von Büchern, die aus der
Binderei zurückkommen oder von sonstwo.

Vermutlich sollten wir noch ein Protokoll produzieren lassen, das
man sich hinterher anschauen und/oder abheften kann, und aus dem
hervorgeht, was alles gemacht wurde incl. Fehlermeldungen.
Es können während des Notbetriebs ja auch gesperrte Leser
Präsenzbücher ausleihen, wenn man nicht aufpaßt, oder Bücher
"zurückgeben", die der Bibliothek gar nicht gehören...





Mehr Informationen über die Mailingliste Allegro