Eine Datei ist „crash-resistent“, wenn sie sich nach einem Systemabbruch (System Crash) in einem konsistenten Zustand befindet und alle in der Vergangenheit erfolgreich ausgeführten Operationen erhalten geblieben sind.
Schreiboperationen sind nach einem Systemabsturz entweder vollständig ausgeführt oder gar nicht. In beiden Fällen ist die Datei jedoch aus ISAM-Sicht konsistent.
Bei einem Systemabbruch können geöffnete Dateien nicht mehr ordnungsgemäß geschlossen werden, sodass der LASTPG-Zeiger nicht korrekt ist. Ein folgender OPEN erkennt dies und gibt dem Benutzerprogramm in einer Fehlerroutine (OPENC-Ausgang des EXLST-Makros) die Möglichkeit, den Fehler zu beheben (VERIF-Makroaufruf). Ist keine solche Fehlerroutine vorgesehen, wird das Programm mit einer entsprechenden Meldung (DMS0DD1, DMS0D1A
) abgebrochen. Der Zeiger auf das logische Dateiende (Last Page Pointer) kann mit dem Makroaufruf VERIF bzw. mit dem Kommando REPAIR-DISK-FILES aktualisiert werden (siehe Abschnitt „Dateien rekonstruieren"). Crash-Resistenz – wie oben beschrieben – ist garantiert bei WROUT=YES bzw. WRITE-IMMEDIATE=*YES und bei PUT-Verarbeitung mit Ein-/Ausgabebereich im Programm.
Crash-Verhalten bei WROUT=NO bzw. WRITE-IMMEDIATE=*NO
Bei WROUT=NO bzw. WRITE-IMMEDIATE=*NO können die Änderungen verloren gehen, die noch nicht auf die Platte zurückgeschrieben wurden. Die Dateikonsistenz kann mit dem Makro VERIF, REPAIR=ABS bzw. dem Kommando REPAIR-DISK-FILES wiederhergestellt werden. Die Daten können aus Benutzersicht jedoch noch inkonsistent sein. Die Datenkonsistenz muss dann vom Benutzer wiederhergestellt werden.
PUT (sequenzielles Schreiben) mit Ein-/Ausgabebereich im Programm
Wenn für PUT-Aufrufe ein Ein-/Ausgabebereich benutzt wird, wird erst dann eine Schreiboperation ausgelöst, wenn der Puffer die dem PAD-Wert entsprechende Füllung erreicht hat. Bei einem Systemabsturz sind alle Sätze verloren, die zwar im Puffer standen, aber noch nicht auf Platte geschrieben wurden. Aus Benutzersicht sind die Daten nicht konsistent/nicht vollständig; aus Sicht von ISAM ist die Datei jedoch konsistent.