Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

REPAIR-DISK-FILES

&pagelevel(3)&pagelevel

Plattendatei rekonstruieren

Komponente:

BS2000

Funktionsbereich:

Dateiverarbeitung

Anwendungsbereich:

FILE                                                                                                         

Privilegierung:

STD-PROCESSING
SAT-FILE-EVALUATION
SAT-FILE-MANAGEMENT
SECURITY-ADMINISTRATION

Funktionsbeschreibung

Das Kommando REPAIR-DISK-FILES rekonstruiert eine Plattendatei, die wegen Systemzusammenbruchs oder Auftragsabbruchs nicht ordnungsgemäß geschlossen wurde. Das bedeutet: der Katalogeintrag wird aktualisiert, eine eventuell vorhandene Sperre wird implizit aufgehoben und die Datei geschlossen (siehe Kommando REMOVE-FILE-ALLOCATION-LOCKS); ISAM-Dateien werden anhand der vorhandenen Datensätze rekonstruiert. Dateien, die zu rekonstruieren sind, können mit dem Kommando SHOW-FILE-ATTRIBUTES mit dem Auswahlkriterium STATUS=*PAR(REPAIR-NEEDED =*YES) angezeigt werden.

Wurde der Dateizugriff unterbrochen, während sich Datenpuffer im Arbeitsspeicher befanden, können die letzten vorgenommenen Änderungen bei der rekonstruierten Datei fehlen, da der Pufferinhalt erst dann auf den externen Speicher gebracht wird, wenn der Puffer voll ist.

Die Rekonstruktion von Dateien ist im allgemeinen Teil des Handbuchs „Einführung in das DVS“ [13] beschrieben.

Bei NK-ISAM Dateien können die Zähler für den primary Index des Levels 1 aus- oder ein-geschaltet, sowie aktualisiert werden.

Privilegierte Funktionen

Falls die Rekonstruktion wegen einer Dateisperre nicht möglich ist, erhält die Systembetreuung im Dialogbetrieb die Meldung DMS06F0 (im Batchbetrieb wird die Kommandobearbeitung ohne Rückfrage abgebrochen) und kann dann ggf. das Aufheben der Dateisperre und damit die Rekonstruktion erzwingen. Bei einer erzwungenen Rekonstruktion muss jedoch sichergestellt sein, dass die Datei zu diesem Zeitpunkt nicht zum Schreiben geöffnet ist.

 

Format

REPAIR-DISK-FILES

FILE-STATUS = *OPEN (...) / *ANY(...)


*OPEN(...)



|

FILE-NAME = <filename 1..54> / <partial-filename 2..53>



|

,SELECT = *ANY-VOLUME / *PRIVATE-DISK / *PUBLIC-DISK / *NET-STORAGE


*ANY(...)



|

FILE-NAME = <filename 1..54>



|

,SELECT = *ANY-VOLUME / *PRIVATE-DISK / *PUBLIC-DISK / *NET-STORAGE


*CLOSED(...)


|

FILE-NAME = <filename 1..54>



|,INDEX-STATISTICS = *UPDATE / *ON / *OFF 

,ISAM-COPY-NAME = *SAME / <partial-filename 2..53> / <filename 1..54>

,ISAM-REPAIR-INFO = *NO / [*YES](...)


[*YES](...)



|

OUTPUT = *SYSOUT / *SYSLST

Operandenbeschreibung

FILE-STATUS = *OPEN(...) / *ANY(...)
Gibt an, ob die Datei nur dann zu rekonstruieren ist, wenn sie nicht ordnungsgemäß geschlossen wurde, oder in jedem Fall.

FILE-STATUS = *OPEN(...)
Die Datei soll nur dann rekonstruiert werden, wenn sie nicht ordnungsgemäß geschlossen wurde.

FILE-NAME = <filename 1..54> / <partial-filename 2..53>
Bezeichnet die wiederherzustellende permanente oder temporäre Datei, Dateigenerationsgruppe oder Dateigenerationen. Wird FILE-NAME teilqualifiziert angegeben,

  • muss ISAM-COPY-NAME (falls benötigt) auch teilqualifiziert angegeben werden

  • wird ISAM-COPY-NAME beim Wiederherstellen von Generationen ignoriert.

Nur die eigene Benutzerkennung darf angegeben werden.

Die Wiederherstellung der Datei ist abhängig von der Zugriffsmethode, mit der die Datei erstellt wurde (siehe Ausgabefeld FILE-STRUC, Kommando SHOW-FILE-ATTRIBUTES):

PAM: Die Dateisperre wird aufgehoben; ist die Datei als offen gekennzeichnet, führt das System eine privilegierte Schließoperation durch; der Last Page Pointer (LPP) wird, falls notwendig, aktualisiert:
Für eine K-PAM-Datei (BLOCK-CONTR=PAMKEY) zeigt der LPP dann auf die letzte reservierte PAM-Seite (entspricht der Dateigröße).
Für eine NK-PAM-Datei (BLOCK-CONTR=DATA/NO) zeigt der LPP dann auf einen Wert, der sich aus der Dateigröße, abgerundet auf ein Vielfaches der Anzahl PAM-Seiten des Datenblockes (siehe Blockungsfaktor im Ausgabefeld BUF-LEN, Kommando SHOW-FILE-ATTRIBUTES), ergibt.
Der Last Byte Pointer wird sowohl bei K- als auch NK-PAM-Dateien auf Blockgrenze hochgesetzt.
Für eine Datei auf einer im Dual-Modus betriebenen Platte (siehe Handbuch „DRV“ [11]) wird der Inhalt der Datenblöcke nicht aktualisiert. Dies kann jedoch mit FILE-STATUS= *ANY(...) erreicht werden.

SAM: Die Dateisperre wird aufgehoben. Ist die Datei als offen gekennzeichnet, wird der Last Page Pointer, falls nötig, auf die höchste beschriebene PAM-Seite der Datei gesetzt. Danach wird die Datei geschlossen.
Für eine Datei auf einer im Dual-Modus betriebenen Platte (siehe Handbuch „DRV“ [11]) wird der Inhalt der Datenblöcke aktualisiert.

ISAM: Die Dateisperre wird aufgehoben. Die Datei wird anhand der rekonstruierbaren Datenblöcke neu erstellt. Sekundär-Schlüssel, die als vollständig gekennzeichnet sind, werden wieder neu erstellt.

Unabhängig von der Zugriffsmethode bleiben Sperren von Concurrent Copy bestehen, falls die Concurrent-Copy-Session noch nicht beendet ist.

SELECT = *ANY-VOLUME / *PRIVATE-DISK / *PUBLIC-DISK
Beschränkt die Auswahl der Dateien auf den angegebenen Datenträger.
Dieser Operand ist nur sinnvoll, wenn bei FILE-NAME ein teilqualifizierter Dateiname oder der Name einer Dateigenerationsgruppe angegeben wurde.

SELECT = *ANY-VOLUME
Es werden die angegebenen Dateien ausgewählt, unabhängig davon, auf welchem Datenträger sie sich befinden.

SELECT = *PRIVATE-DISK
Es werden die angegebenen Dateien ausgewählt, die sich auf Privatplatte befinden.

SELECT = *PUBLIC-DISK
Es werden die angegebenen Dateien ausgewählt, die sich auf gemeinschaftlichem Datenträger (Platte) befinden.

SELECT = *NET-STORAGE
Es werden die angegebenen Dateien ausgewählt, die sich auf einem Net-Storage-Volume befinden.

FILE-STATUS = *ANY(...)
Die Datei soll in jedem Fall rekonstruiert werden.

FILE-NAME = <filename 1..54>
Bezeichnet die wiederherzustellende permanente oder temporäre Datei, Dateigenerationsgruppe oder Dateigenerationen. Nur die eigene Benutzerkennung darf angegeben werden.
Die Wiederherstellung der Datei ist abhängig von der Zugriffsmethode, mit der die Datei erstellt wurde (siehe Ausgabefeld FILE-STRUC, Kommando SHOW-FILE-ATTRIBUTES):

PAM: Die Dateisperre wird aufgehoben; ist die Datei als offen gekennzeichnet, führt das System eine privilegierte Schließoperation durch, und der Last Page Pointer (LPP) wird aktualisiert:
Für eine Datei, die mit BLOCK-CONTROL-INFO=*WITHIN-DATA-BLOCK bzw. *PAMKEY erstellt wurde, zeigt der Last Page Pointer dann auf die letzte beschriebene PAM-Seite.
Für eine Datei, die mit BLOCK-CONTROL-INFO=*NO erstellt wurde, zeigt der Last Page Pointer dann auf einen Wert, der sich aus der Dateigröße, abgerundet auf ein Vielfaches der Anzahl von PAM-Seiten eines Datenblockes (siehe Blockungsfaktor im Ausgabefeld BUF-LEN, Kommando SHOW-FILE-ATTRIBUTES), ergibt.
Der Last Byte Pointer wird sowohl bei K- als auch NK-PAM-Dateien auf Blockgrenze hochgesetzt.
Für eine Datei auf einer im Dual-Modus betriebenen Platte (siehe Handbuch „DRV“ [11]) wird der Inhalt der Datenblöcke, falls nötig, aktualisiert.

SAM: Die Dateisperre wird aufgehoben. Ist die Datei als offen gekennzeichet, führt das System eine privilegierte Schließoperation durch, und der Last Page Pointer wird auf die letzte beschriebene PAM-Seite gesetzt. Für eine Datei auf einer im Dual-Modus betriebenen Platte (siehe Handbuch „DRV“ [11]) wird der Inhalt der Datenblöcke, falls nötig, aktualisiert.

ISAM: Die Dateisperre wird aufgehoben. Die Datei wird anhand der rekonstruierbaren Datenblöcke neu erstellt. Sekundär-Schlüssel, die als vollständig gekennzeichnet sind, werden wieder neu erstellt.

Unabhängig von der Zugriffsmethode bleiben Sperren von Concurrent Copy bestehen, falls die Concurrent-Copy-Session noch nicht beendet ist.

SELECT = *ANY-VOLUME / *PRIVATE-DISK / *PUBLIC-DISK
Beschränkt die Auswahl der Dateien auf den angegebenen Datenträger.
Dieser Operand ist nur sinnvoll, wenn bei FILE-NAME ein teilqualifizierter Dateiname oder der Name einer Dateigenerationsgruppe angegeben wurde.

SELECT = *ANY-VOLUME
Es werden die angegebenen Dateien ausgewählt, unabhängig davon, auf welchem Datenträger sie sich befinden.

SELECT = *PRIVATE-DISK
Es werden die angegebenen Dateien ausgewählt, die sich auf Privatplatte befinden.

SELECT = *PUBLIC-DISK
Es werden die angegebenen Dateien ausgewählt, die sich auf gemeinschaftlichem Datenträger (Platte) befinden.

SELECT = *NET-STORAGE
Es werden die angegebenen Dateien ausgewählt, die sich auf einem Net-Storage-Volume befinden.

FILE-STATUS = *CLOSED(...)
Es werden nur geschlossene ISAM-Dateien mit der Eigenschaft BLOCK-CONTROL=*WITHIN-DATA-BLOCKS bearbeitet (NK-ISAM Dateien).

FILE-NAME = <filename 1..54>
Bezeichnet die permanente oder temporäre Datei. Nur die eigene Benutzerkennung darf angegeben werden.  

INDEX-STATISTICS = *UPDATE / *ON / *OFF
Es werden die angegebenen Dateien ausgewählt, die sich auf einem Net-Storage-Volume befinden.

INDEX-STATISTICS = *UPDATE
Die Zähler werden in der Datei überprüft. Sind die Zähler ungültig , werden sie neu erstellt.

INDEX-STATISTICS = *ON
Die Zählung wird für die angegebene Datei eingeschaltet und die Zähler initialisiert.

INDEX-STATISTICS = *OFF
Die Zählung wird für die angegebene Datei abgeschaltet und die Zähler für ungültig erklärt.

ISAM-COPY-NAME = *SAME / <partial-filename 2..53> / <filename 1..54>
ISAM-COPY-NAME ist nur bei der Rekonstruktion von ISAM-Dateien sinnvoll und bezeichnet die Datei, in der die ISAM-Datei rekonstruiert werden soll. Die Datei erhält die Verschlüsselungsattribute der zu rekonstruierenden Datei.
ISAM-COPY-NAME kann der Name einer permanenten oder temporären Datei oder einer Dateigeneration sein, nicht jedoch der Name einer Dateigenerationsgruppe.
Für Dateien unter einer fremden Benutzerkennung muss der Benutzer das Recht zum schreibenden Zugriff besitzen.
ISAM-COPY-NAME darf nicht mit FILE-NAME übereinstimmen.
Ist FILE-NAME teilqualifiziert, muss auch ISAM-COPY-NAME teilqualifiziert angegeben werden.
Ohne Angabe von ISAM-COPY-NAME erstellt das System eine Arbeitsdatei für die Rekonstruktion der ISAM-Datei (Voreinstellung *SAME).
Soll die Rekonstruktion auf privater Platte erfolgen, so muss die Datei katalogisiert sein. Sind Daten- und Indexblöcke der zu rekonstruierenden Datei auf getrennten Platten abgelegt, so muss außerdem für die Rekonstruktions-Kopie entsprechend Speicherplatz angefordert werden (CREATE-FILE bzw. MODIFY-FILE-ATTRIBUTES).
Nur die eigene Benutzerkennung darf angegeben werden.

ISAM-COPY-NAME = *SAME
Die Rekonstruktion erfolgt in die bei FILE-NAME angegebene Datei. Dies geschieht über eine Arbeitsdatei, die das System erstellt.
Für ISAM-Dateien auf Privatplatte oder unter fremder Benutzerkennung wird die Arbeitsdatei in die bei FILE-NAME angegebene Datei kopiert und anschließend gelöscht. Da das Kopieren sehr zeitaufwändig sein kann, wird die Angabe eines vollqualifizierten Dateinamens empfohlen.
Für ISAM-Dateien auf PUBLIC-Platten unter eigener Benutzerkennung wird die Arbeitsdatei nur umkatalogisiert und die Originaldatei gelöscht.
Besteht für die ISAM-Datei auf PUBLIC-Platte eine Sperre von Concurrent Copy, die nicht zurückgesetzt werden konnte, wird die Meldung DMS06EE ausgegeben. Die reparierte ISAM-Datei ist in der Arbeitsdatei REPAIR.<tsn>.hhmmss enthalten, da die Originaldatei wegen der Sperre von Concurrent Copy nicht gelöscht werden konnte und das anschließende Umbenennen der Arbeitsdatei auf den Namen der Originaldatei nicht mehr durchgeführt wurde.

ISAM-REPAIR-INFO = *NO / *YES(...)
Der Operand ISAM-REPAIR-INFO wird nur für ISAM-Dateien ausgewertet: Gibt an, ob Dateiblöcke, die nicht rekonstruierbar sind, protokolliert werden sollen.

ISAM-REPAIR-INFO = *NO
Nicht rekonstruierbare Dateiblöcke werden nicht protokolliert.

ISAM-REPAIR-INFO = *YES(...)
Für nicht rekonstruierbare Dateiblöcke werden die Blocknummern ausgegeben. Die Ausgabe kann dabei nach SYSOUT (Voreinstellung) oder nach SYSLST erfolgen.

OUTPUT = *SYSOUT / *SYSLST
Gibt an, wohin die Blocknummern der nicht rekonstruierbaren Dateiblöcke ausgegeben werden. Die Ausgabe nach SYSOUT ist voreingestellt. 

Kommando-Returncode

(SC2)

SC1

Maincode

Bedeutung / garantierte Meldungen


0

CMD0001

Kommando ausgeführt

1

0

CMD0001

Keine Aktion nötig

2

0

DMS06E6

Die im Kommando angegebene Datei ist leer

2

0

DMS06E9

Kein gültiger Satz beim Wiederherstellen der ISAM-Datei gefunden

2

0

DMS06ED

Fehler beim Schreiben der nicht wiederherstellbaren Blöcke in Hilfsdatei


1

CMD0202

Syntax- oder Semantikfehler im Kommando


32

DMS0584

Während der Verarbeitung wurde ein Zustand gemeldet, der die Fortführung der Funktion nicht zulässt.


64

CMD0102

Unterbrechung mit K2-Taste


64

CMD0216

Privilegien-Fehler


64

DMS0501

Angeforderter Katalog nicht verfügbar


64

DMS0512

Angeforderter Katalog nicht gefunden


64

DMS051B

Gewünschte Benutzerkennung nicht im Pubset
garantierte Meldung: DMS051B


64

DMS051C

Benutzer hat auf Pubset kein Zugriffsrecht
garantierte Meldung: DMS051C


64

DMS0533

Angegebene Datei im Pubset nicht gefunden
garantierte Meldung: DMS0533


64

DMS0535

Angegebene Datei nicht mehrfach benutzbar


64

DMS055C

Der Katalogeintrag konnte auf dem zugewiesenen Datenträger nicht gefunden werden


64

DMS0583

Bei der Wiederherstellung der Datei trat ein Fehler auf.


64

DMS0585

Während der Katalogverarbeitung bzw. während der Mehrrechnerverarbeitung wurde ein Fehler festgestellt.
garantierte Meldung: DMS053C


64

DMS0586

Der Zugriff bzw. die Belegung eines Datenträgers ist derzeit nicht möglich


64

DMS0587

Die Benutzung des angegebenen Kommandos wurde von der Systembetreuung eingeschränkt


64

DMS0588

Die Plattenspeicher-Zuweisung konnte nicht durchgeführt werden


64

DMS05F8

DVS-Fehler wurde gemeldet
garantierte Meldung: DMS05F8


64

DMS05FC

Angegebene Benutzer-Kennung nicht im HOME-Pubset


64

DMS0609

Zugriff auf Systemdatei nicht möglich


64

DMS06E4

Datei ist zerstört


64

DMS06E7

Wiederherstellung mit eingeg. Kommando für diesen Dateityp nicht möglich


64

DMS06FF

BCAM-Verbindung unterbrochen


64

DMS0804

Datei mit WROUT=NO erstellt. Konsistenz-Prüfung nicht sinnvoll


130

DMS0524

Systemadressraum erschöpft


130

DMS053C

In der Katalog-Datei des Pubsets kein Platz


130

DMS0582

Die Datei ist derzeit gesperrt oder in Gebrauch und kann nicht bearbeitet werden


130

DMS0585

Während der Katalogverarbeitung bzw. während der Mehrrechnerverarbeitung wurde ein Fehler festgestellt.


130

DMS0586

Der Zugriff bzw. die Belegung eines Datenträgers ist derzeit nicht möglich


130

DMS0588

Die Plattenspeicher-Zuweisung konnte nicht durchgeführt werden


130

DMS0594

Nicht genügend virtueller Speicherplatz vorhanden


130

DMS05C8

Maximale erlaubte Anzahl von Dateien erreicht

Hinweise zur Rekonstruktion von ISAM-Dateien

  • Das Rückschreiben von Datenpuffern auf die Platten erfolgt bei ISAM-Dateien, sobald ein neuer Datenblock in den Hauptspeicher geholt werden muss. Dadurch können die letzten vorgenommenen Änderungen bei der rekonstruierten ISAM-Datei fehlen (bei WRITE-IMMEDIATE=*YES höchstens ein Satz).

  • Fehlt die Angabe ISAM-COPY-NAME für eine ISAM-Datei auf gemeinschaftlichen Datenträgern, wird sie in einer Arbeitsdatei rekonstruiert, die vom System erstellt wird. Anschließend wird die Datei FILE-NAME gelöscht, und zwar ohne explizite „DESTROY-Angabe“ (siehe Kommando CREATE-FILE, MODIFY-FILE-ATTRIBUTES), und die Arbeitsdatei in FILE-NAME umbenannt.

  • Fehlt die Angabe ISAM-COPY-NAME für eine ISAM-Datei auf privaten Datenträgern, wird sie in einer temporären Arbeitsdatei auf gemeinschaftlichen Datenträgern rekonstruiert. Anschließend wird die Arbeitsdatei in die Datei FILE-NAME kopiert und expliziter „DESTROY-Angabe“ (siehe Kommandos CREATE-FILE, MODIFY-FILE-ATTRIBUTES) gelöscht. Dieser Vorgang kann sehr zeitaufwändig sein, sodass es günstiger ist, ISAM-COPY-NAME anzugeben.

  • Wird im Kommando REPAIR-DISK-FILES ISAM-COPY-NAME angegeben, wird FILE-NAME dort rekonstruiert. FILE-NAME selbst bleibt unverändert. Soll ISAM-COPY-NAME auf privaten Datenträgern stehen oder handelt es sich bei FILE-NAME um eine Datei auf privaten Datenträgern, muss ISAM-COPY-NAME vor Eingabe des Kommandos REPAIR-DISK-FILES katalogisiert werden.
    Stehen Daten- und Indexblöcke auf getrennten Datenträgern, muss der Benutzer außerdem für ISAM-COPY-NAME Speicherplatz reservieren (Kommando CREATE-FILE, MODIFY-FILE-ATTRIBUTES).

  • In den Datenblöcken der rekonstruierten Datei wird kein Platz für spätere Erweiterungen frei gehalten, was der Vereinbarung PADDING-FACTOR=0 im Kommando ADD-FILE-LINK entspricht.

  • ISAM-Dateien mit Daten- und Indexblöcken auf getrennten privaten Datenträgern können mit dem Kommando REPAIR-DISK-FILE nur rekonstruiert werden, wenn BUFFER-LENGTH=*STD gilt.

  • Enthält ein ISAM-Datenblock Daten, die keinem definierten Datensatz zugeordnet werden können, wird der gesamte Block in der PAM-Datei S.dateiname1.REPAIR sichergestellt. Nach der Bearbeitung REPAIR-DISK-FILES steht diese Datei dem Benutzer zu eigenen Rekonstruktionsversuchen zur Verfügung. Falls der neue Dateiname zu lang wird, wird dateiname1 entsprechend gekürzt.

  • Da bei der Wiederherstellung von ISAM-Dateien eine Dateikopie angelegt wird, die zum Pubspace zählt, muss der Anwender dafür sorgen, dass ihm genügend Speicherplatz zur Verfügung steht.

  • Da bei Wiederherstellung von  NK-ISAM-Dateien von einer zerstörten Datei ausgegangen wird, wird mit INDEX-STATISTICS in der Dateikopie nach Default des Systems vorgegangen.

Hinweise zu INDEX-STATISTICS bei NK-ISAM-Dateien

  • Bei eingeschaltetem INDEX-STATISTICS werden nur die Blöcke und freien Bytes in der primary Index-Blöcke von Level 1 gezählt. Die primary Index-Blöcke von Level 1 sind die Index-Blöcke, die sich unmittelbar vor den Daten-Blöcken befinden.

  • Da sich in den Index-Blöcken komprimierte Schlüssel befinden, kann die Anzahl der Schlüssel in einem Index-Block sehr unterschiedlich sein. Daher muss der Benutzer genaue Kenntnis über die Datei haben, um weitere Maßnahmen zu ergreifen. (z.B. Rekonstruktion der Datei).