Es ist nicht immer auszuschließen, dass verschiedene Generationen einer Dateigenerationsgruppe gleichzeitig von verschiedenen, parallel laufenden Aufträgen verarbeitet, erstellt oder gelöscht werden. Solche unkontrollierten gleichzeitigen Zugriffe können sehr leicht zu Inkonsistenz innerhalb der Generationenfolge führen, aber auch zu Daten-Inkonsistenz, wenn die Dateigenerationen aus aufeinander aufbauenden Verarbeitungsschritten resultieren.
Ein Mittel, die durch parallele Zugriffe entstehenden Probleme zu vermeiden, ist das Reservieren der Dateigenerationsgruppe mit dem Kommando SECURE-RESOURCE-ALLOCATION (Operand FILE). Dabei werden nicht die Datenträger für weitere Zugriffe gesperrt; es wird lediglich Zugriff auf den Gruppeneintrag und die Dateigenerationen unterbunden. Von dieser Reservierungsmöglichkeit sollte immer dann Gebrauch gemacht werden, wenn mehrfacher gleichzeitiger Zugriff auf eine FGG nicht ausgeschlossen werden und dieser Zugriff zu Inkonsistenzen führen kann. Eine Reservierung von FGG/Dateigenerationen ist z.B. nicht nötig, wenn die Generationen nur gelesen werden können.
Das folgende Beispiel zeigt, welche Probleme ohne Reservierung bei gleichzeitigem Zugriff verschiedener Aufträge auftreten können.
Beispiel: Parallelzugriff auf eine FGG
Ausgangssituation: die FGG GROUP1 besteht aus maximal 3 Generationen, zurzeit den Generationen 4, 5 und 6; die Generation 5 ist als Bezugspunkt für relative Indizierung definiert (BASE-NUM=5).
Parallel zueinander werden die Aufträge 0001 und 0002 gestartet, die folgende Aktionen auslösen:
Auftrag 0001:
/CREATE-FILE-GEN GEN-NAME=GROUP1(*7) /MODIFY-FILE-GROUP-ATTRIBUTES GROUP-NAME=GROUP1, GENERATION-PARAMETER=*GENERATION-PARAMETER(BASE- NUMBER=ABSOLUTE(NUMBER=0))
Auftrag 0002:
/ADD-FILE-LINK LINK-NAME=EINGABE,FILE-NAME=GROUP1(-1)
Wenn das Kommando ADD-FILE-LINK des zweiten Auftrags eingegeben wird, nachdem das Kommando CREATE-FILE-GENERATION wirksam geworden ist, erhält der Benutzer die Fehlermeldung „Datei nicht vorhanden“; hätte er im Kommando ADD-FILE-LINK die absolute Generationsnummer (*4) angegeben, erhielte er ebenfalls diese Fehlermeldung.
Ist vor dem Kommando ADD-FILE-LINK auch das Kommando MODIFY-FILE-GROUP-ATTRIBUTES wirksam geworden, findet das DVS zwar eine Dateigeneration GROUP1(-1), es ist jedoch nicht die von Auftrag 0002 erwartete Generation (*4), sondern die Generation (*6); die anschließende Dateiverarbeitung führt zu falschen Ergebnissen.