
| | W. Popken im Fenster Selbstportrait 08/2004 | | | | 09.10.2005
Das Pferd
Kennen Sie die › Angebote der Woche? Wenn nicht, sollten Sie einmal einen Blick darauf werfen. Seit vielen Wochen stellt der › Eifelscout häppchenweise seine Messeseite vor. Die ist unglaublich reichhaltig und voll von Überraschungen. Derzeit aktuell: Das Pferd.
Der Eifelscout ist Dr. Karl Lindemann, ein Zoologe, und als Zoologe sieht er Pferde mit anderen Augen. In der gerade aktuellen Serie über Pferdehaltung finden sich enorm viele interessante Einzelheiten, die ich noch nirgendwo gefunden habe. Sehr empfehlenswert! Das Pferd, das unbekannte Wesen.
3. Oktober
Genau: Unser Nationalfeiertag. Wir haben es schon vergessen, wie es einmal war. Und passend dazu hatten wir in der letzten Woche eine Schilderung der Zustände an der Zonengrenze kurz vor dem Mauerbau - das Titelbild sprang mir die ganze Woche höchst eindrucksvoll in die Augen. Ein Wunder, wie sich das alles hat verändern können! Warum fällt es uns nur so schwer, dieses Wunder zu schätzen und zu würdigen?
parse error
Falls Sie einmal so etwas sehen: Diese Fehlermeldung bedeutet, daß die Programmanweisung nicht verstanden werden kann. Vermutlich ist es ein sogenannter Syntaxfehler, d. h. irgend etwas entspricht nicht den Regeln. Meistens fehlt etwas, ein einziges Zeichen reicht schon, oder es ist etwas zuviel, was da nicht hingehört.
In diesem Fall war es ein Zeichen, was eine Sonderbedeutung hat: das Anführungszeichen. Damit kennzeichnend man den Beginn und das Ende einer Zeichenfolge, die irgendwie verarbeitet werden soll. Wenn nun innerhalb dieser Zeichenfolge das Sonderzeichen, mit dem Anfang und Ende gekennzeichnet werden, selbst vorkommt, muß das Programm natürlich abbrechen.
Meistens hat man Glück: Man sieht den Fehler auf dem Bildschirm, entweder ich oder Sie. In diesem Fall aber konnte niemand den Fehler sehen, weil das Programm nachts verarbeitet wird. Es schickt nämlich die E-Mails heraus, die an den Ablauf der Inserate erinnern. Wenn da ein Fehler passiert, kann das niemand merken.
Automatischer Verlängerung
Aber irgendwann kommt die Sache doch an den Tag. Ich wunderte mich schon, daß die Anzahl der Anzeigen langsam zurückging. Da ich vor einigen Monaten auf diese Weise auf einen Fehler in diesem Programm aufmerksam wurde, dachte ich schon daran, daß möglicherweise wieder ein Problem vorliegen würde. Da aber der Rückgang vor allen Dingen die Kleinanzeigen betraf und nicht so sehr die Pferdeangebote, hielt ich diese Hypothese für nicht sehr wahrscheinlich.
Da kam mir ein anderer Zufall zu Hilfe. Ich sollte für jemanden etwas erledigen und mußte mir deshalb seine Kleinanzeigen anschauen. Da wunderte ich mich: die waren abgelaufen, obwohl sie automatisch verlängert werden sollten. Nanu? Wie konnte das sein? Da ließ ich mein Programm von Hand laufen und wurde Zeuge des Abbruchs.
Die Ursache war leicht erkannt. Vor einigen Wochen hatte mich jemand aus Wien angerufen. Diese Person regte sich über eine Formulierung auf. Angeblich würde sie ihre Mitmenschen verärgern. Wieso das denn? Es stellte sich heraus, daß der Sachverhalt sehr wohl bekannt war. Es handelte sich nämlich um ein Immobilienbüro, dessen Angebote von anderen Internet-Seiten übernommen wurden. Wenn sich die Sache erledigt hatten, standen sie auf den anderen Seiten immer noch herum. Infolgedessen gab es immer noch Anfragen, die dann zu dem befürchteten Ärger führten.
Die nun offensichtliche Tatsache, daß diese Person, die wußte, wovon ich redete, mich nicht verstand, legte nahe, daß ich meine Formulierung überarbeiten müßte. Dabei habe ich dann die beiden Schlüsselbegriffe "löschen" und "verbergen" in Anführungszeichen gesetzt. Bingo! Wenn man in einer Zeichenfolge, die durch Anführungszeichen begrenzt wird, dieselben benutzen möchte, dann muß man sie "maskieren", d. h. deutlich machen, daß man das Zeichen nun nicht in seiner Bedeutung als Begrenzungszeichen benutzen möchte, sondern "literal", d. h. in seiner einfachen Bedeutung als Zeichen. Und das macht man üblicherweise mit dem Backslash, also dem umgedrehten Schrägstrich, für den es in der deutschen Sprache keine Bezeichnung gibt. Man schreibt also z. B. \"löschen\" und \"verbergen\" und hat das Problem erledigt. Kleine Ursache, große Wirkung:
| 831 anzeigen laufzeit weniger als 14 Tage 652 pferde laufzeit weniger als 14 Tage | | |
Oje! Das ist eine Menge! Ungefähr 20 mal mehr als normal! Da war einiges aufgelaufen...
E-Mail-Adressen
Dieses Programm muß ja E-Mails verschicken, und die können nicht zugestellt werden, wenn die E-Mail-Adressen falsch sind. Nun überprüfe ich die E-Mail-Adressen bei der Datenerfassung auf formale Fehler, aber es gibt natürlich formale korrekte E-Mail-Adressen, die in Wirklichkeit aber falsch sind. Und manchmal kann man das ganz gut erkennen. Zum Beispiel wären Adressen der Form "[email protected]" oder "[email protected]" gute Kandidaten für offensichtliche Fehleingaben: Im ersten Fall handelt es sich um einen Buchstabendreher, im zweiten um eine gutgemeinte Vermutung, daß nämlich AOL eine nationale Variante ".de" hätte, wo es doch ".com" heißen muß.
So gibt es eine ganze Reihe von typischen Fehlern, die mein Programm ausbügelt. Davon merke ich normalerweise nichts. In der letzten Woche gab es aber bei der Reparatur einer E-Mail-Adresse einen Datenbankfehler:
Was heißt das? Nun, mein Programm vermutet, daß "t-oneline.de" eigentlich "t-online.de" heißen sollte und versucht, den Datenbankeintrag zu ändern. Nun kann es zu einer E-Mail-Adresse verschiedene Datensätze geben, die sich im Namen unterscheiden müssen. Typische Beispiele wären verschiedene Rollen einer Person, die unter derselben E-Mail-Adresse unterschiedliche Daten verwalten will, oder eine zweite Identität für einen Freund, der keine E-Mail-Adresse hat.
In diesem Fall existierte bereits ein Eintrag mit der korrekten E-Mail-Adresse und demselben Namen. Das ist aber nicht zulässig, weil diese Kombination eindeutig sein muß. Deshalb der Schlüsselfehler "Duplicate entry ... for key 2". Und dieser Fehler produziert eine E-Mail an mich, damit ich davon erfahre und mich um die Sache kümmern kann. So habe ich herausgefunden, daß es zwei Datensätze gibt, und daß auch zu der Variante mit der falschen E-Mail-Adresse ein Inserat existiert. Natürlich kann man den Inserenten nicht per E-Mail erreichen, wenn die E-Mail-Adresse inhaltlich falsch ist, selbst wenn sie formal korrekt ist.
Das kann Ihnen übrigens auch passieren: Wenn diese Person ihren Fehler bemerkt und die fehlerhafte E-Mail-Adresse korrigiert hätte, wäre natürlich derselbe Schlüsselfehler ausgelöst worden. In diesem Fall hätte die Person eine entsprechende Nachricht und eine Erklärung bekommen und hätte gewußt, wie sie dieses Problem umgehen kann, zum Beispiel indem der Name geringfügig verändert wird, etwa "Meier, Sabine". Problem erledigt.
Ausfallsicherheit
Nun kann es im E-Mailverkehr zu Störungen vielfältiger Art kommen. Um diese zu vermeiden, protokolliere ich jede E-Mail mit, die das System versendet. Und zwar hatte ich mir ausgedacht, daß ich die E-Mail erst dann versende, wenn der Beleg in der Datenbank gespeichert ist. Dabei habe ich mir nicht vorgestellt, was passiert, wenn es dabei einen Fehler gibt, weil das eigentlich undenkbar ist. Aber genau das ist heute passiert.
Das Mitschreiben der E-Mails ist gewissermaßen eine Protokollierung. Ein Datensatz nach dem anderen wird hinzugefügt. Das ist überhaupt nicht spektakulär. Jeder Datensatz bekommt eine Nummer, und diese Nummer wird fortlaufend hochgezählt. Dabei kann überhaupt nichts schiefgehen. Denkt man.
Heute Nachmittag bekam ich über längere Zeit keine E-Mails. Das war sehr ungewöhnlich, weil ich von fast jeder Systemnachricht eine Kopie bekomme. Also habe ich schließlich eine Test-E-Mail fabriziert und bekam dann eine Fehlermeldung meiner Datenbank. Der automatisch zugeteilte neue Zähler sei angeblich schon vorhanden. Das gibt es überhaupt nicht. Dafür gibt es nur einen Grund: die Tabelle ist im Eimer. Korrupt nennt man das. Also muß man sie reparieren. Kein Problem.
Frage: wie konnte das passieren? Eigentlich geht das gar nicht. Es sei denn, die Datenbankmaschine wird mitten im Leben dahingerafft. Und genau das ist heute zweimal passiert. Ich war Zeuge. Urplötzlich stieg die Last der Hauptmaschine ins Unermeßliche, und dann griff ein Überwachungsprogramm ein und knallte die Kiste ab. Dabei muß es dann wohl passiert sein.
Wie kann nun die Last so unerträglich steigen? Das wiederum lag an den sogenannten Locks. Die Maschine hat sich selbst ausgesperrt. Und wie das wiederum kam, weiß ich noch nicht. Das kann eigentlich auch gar nicht sein. Aber ich habe es ja gesehen, und zwar nicht zum ersten Mal. Ich weiß auch, wie ich dieses Horrorszenario umgehen kann, aber lieber würde ich die Sache verstehen und die Ursache abstellen. Mal sehen, ob ich daraus auch noch schlau werde.
Wenn Sie einmal unvermutet starke Zähigkeit erleben oder gar Nichterreichbarkeit, dann drücken Sie mir mal die Daumen! Vermutlich zerbreche ich mir gerade den Kopf darüber, was da wohl passiert und warum und wie man das wohl vermeiden kann. Ein Trost: Früher oder später klärt sich so etwas meistens auf.

| | Chefredakteur und Herausgeber | | | |
| |