Auf den Kundensystemen läuft eine ORACLE-Datenbank. Neben dem System-Rollbacksegment sind dort 5 weitere Rollback-Segmente eingerichtet. In Einzelfällen haben sich die als zu klein erwiesen. Nun sollten sie bei der Installation der nächsten Softwareversion in einem Aufwasch auf allen Servern vergrößert werden. So weit, so gut.
Das Installationsprogramm hat dazu nachgeschaut, ob wenigstens 5 Rollback-Segmente existieren und die groß genug sind. Das Vergrößern muß ja nur ein mal stattfinden, obwohl das Installationsprogramm vielleicht mehrfach läuft. Also erst mal nachschauen...
Falls die Rollback-Segmente zu vergrößern waren, so hat
das Installationsprogramm die existierenden Rollback-Segmente der
Reihe nach
offline gesetzt, gelöscht, neu angelegt und wieder online gesetzt.
Bei den hausinternen Tests war aufgefallen, daß das
Löschen der Rollback-Segmente zwar immer geklappt hat, das
Wiederanlegen aber in Einzelfällen schief gegangen ist.
Deswegen hat das Installationsprogramm nach dem Aufbohren der
Rollback-Segmente noch mal nachgeschaut, ob die Rollback-Segmente
denn nun auch wirklich alle in Ordnung sind.
Falls nicht, so wurde eine Meldung an den lokalen
Administrator geschickt "Das mit den Rollback-Segmenten hat
nicht hingehauen. Entweder Sie lassen das Installationsprogramm noch
mal laufen, dann klappt es wahrscheinlich, oder Sie kümmern
Dich selber drum, oder Sie rufen unseren Support an.".
Was
aber leider bei unseren internen Tests keiner erkannt hat, war die
wirkliche Dramatik der Situation. Wenn der Administrator diese
Warnung ignoriert, dann läuft die Datenbank ungerühert
weiter, halt mit einem Rollback-Segment weniger.
Aber nur bis zum
nächsten Reboot des Servers. Ohne Administrator. Mitten in der Nacht.
Dann kommt nämlich die Datenbank nicht mehr hoch und es gehen,
womöglich das ganze Wochenende, keine SB-Geräte. Dumm
gelaufen!
Nun steckt man in der Zwickmühle: Soll man sich bei hundert Kunden melden und denen erklären, daß die eigene Software potentiell gefährlich ist? Oder rumsitzen, mit dem Wissen daß es bei den meisten Servern zwar auf Anhieb klappen wird, bei einzelnen aber eben nicht, und daß die Administratoren kaum eine Chance haben, die drohende Gefahr rechtzeitig zu erkennen, bevor das Kind in den Brunnen gefallen ist. Eine äußerst unangenehme Situation!
Damit eine solche Situation nie wieder auftritt fiel der Entschluß, den Remote Service Agent zu schreiben. Hätten wir den damals schon gehabt, so hätten wir einen Job geschrieben, der weitaus hartnäckiger versucht, die neuen, vergrößerten Rollback-Segmente anzulegen und damit die Installation des neuen Releases vollkommen ungefährlich gemacht. Das Installationsprogramm hätte dann ja sofort festgestellt, daß die Rollback-Segmente vollzählig und ausreichend groß sind und den potentiell gefährlichen Code so gar nicht erst betreten.