Alte Flat-File-Datenbanken kodieren ihr Schema als feste Zeichenbreiten: Der Vorname belegt etwa 8 Zeichen, die Hausnummer 4 und so weiter. Ein Feld später hinzuzufügen ist mühsam – es gibt kein ALTER TABLE, jeder Datensatz muss neu geschrieben und jedes Programm, das die Datei anfasst, angepasst werden. Auf einem großen Legacy-System kann 'ein Feld hinzufügen' Wochen riskanter Arbeit bedeuten.
Der klassische Überlebenstrick ist Padding: zusätzliche Leerzeichen am Ende eines Datensatzes oder in Blöcken verteilt darin. Braucht man einen Mittelinitial, kürzt man das Padding um ein Zeichen. Die Satzlänge bleibt identisch, nichts muss verschoben werden, und Module, denen das neue Feld egal ist, sehen nur ein Zeichen in einem Bereich, den sie ohnehin ignorierten.
Brendas Team betreibt einen IBM-Mainframe mit VSAM-Flat-Files und spielt dieses Spiel seit Jahrzehnten. Für modernes Reporting stellte die Firma Dienstleister ein, die eine ETL-Strecke in eine relationale Datenbank bauten; das Copybook mit der Satzstruktur wurde übergeben. Irgendwo auf dem Weg zerteilten die ETL-Entwickler mehrere Padding-Blöcke an falschen Offsets – Felder der Form SOME_USEFUL_FIELD PADDING PADDING PADDING SOME_OTHER_FIELD wurden zu Spalten, die jeweils Teile des Paddings verschluckten.
Anfangs sah alles gut aus: Die Padding-Zeichen lagen in der Datenbank, wurden aber bei der Anzeige entfernt, und das Aneinanderhängen der Spalten reproduzierte den Originalsatz. Der entscheidende Fehler: Getestet wurde nur gegen den Produktions-Mainframe. Gegen den Entwicklungs-Mainframe hätte man neue Features gesehen, die Teile dieses Paddings bereits belegten.
Die Strecke bestand die Abnahme, ging live und lief einige Wochen – bis das Mainframe-Team seine Features ausrollte, die echte Daten in das falsch geteilte Padding schrieben. Die Reports füllten sich mit Datenmüll. Die Dienstleister, deren Vertrag abgeschlossen war, antworteten mit 'works as designed'. Also mussten die Mainframe-Entwickler andere Padding-Felder suchen – solche, die die von der Geschäftsleitung gern gelesenen Reports nicht beschädigten.
Kommentare
Noch keine Kommentare — schreib den ersten.
Starte die Diskussion
Kein Konto, kein Passwort nötig — gib einfach deine E-Mail-Adresse ein, wir senden dir einen einmaligen Anmelde-Link. Beim ersten Mal bist du damit automatisch angemeldet.
Deine Bewertung wird nach der Anmeldung automatisch übernommen.
Schau in dein Postfach
Wir haben einen Anmelde-Link an … gesendet. Öffne ihn auf diesem Gerät — dieser Tab meldet dich automatisch an.
Warte auf deinen Klick …
·