Makrotyp: S-Typ (E-Form/L-Form/D-Form/C-Form/M-Form) (siehe "Typen von Makroaufrufen")
Mit dem Makro LFFSNAP kann sich der Benutzer über Dateien informieren, die bei der Pubset-Sicherung auf einen Snapset gesichert wurden. Die Informationen sind ausgerichtet auf die Restaurierbarkeit von Dateien (mit dem Makro RFFSNAP bzw. dem Kommando RESTORE-FILE-FROM-SNAPSET). Der zugehörige Pubset muss importiert sein.
Der nicht-privilegierte Benutzer kann sich über alle für ihn zugreifbaren Dateien informieren (wie bei dem FSTAT-Makro bzw. bei dem Kommando SHOW-FILE-ATTRIBUTES, die Informationen aus dem aktuellen Dateikatalog liefern).
Informationen über alle existierenden Snapsets zu einem Pubset können mit dem Kommando SHOW-SNAPSET-CONFIGURATION eingeholt werden.
Die Snapsets sind temporär nicht verfügbar, wenn das Subsystem SHC-OSD zum Zeitpunkt des Pubset-Imports noch nicht aktiv war. Der Makroaufruf wird in diesem Fall mit Returncode 0622 abgebrochen. Sobald SHC-OSD aktiv ist, werden die Snapsets bei Aufruf des Kommandos SHOW-SNAPSET-CONFIGURATION nachträglich aktiviert.
Privilegierte Funktionen
Die Systembetreuung (Privileg TSOS) kann sich über Dateien aller Benutzerkennungen informieren. Musterzeichen innerhalb der Benutzerkennung sind dabei nicht zulässig.
Format
Operation | Operanden |
|
|
| |
| |
|
Operandenbeschreibung
PATHNAM
Auswahl der Dateien, die aufgelistet werden sollen.
=<c-string 1..80: filename 1..54 with-wild(80)>
Pfadname der Datei(en) auf dem Snapset. Mit Musterzeichen kann eine Auswahlangabe für eine Dateimenge erfolgen.
Es werden nur Dateien aufgelistet, die folgende Voraussetzungen erfüllen:
Sie müssen zum Zeitpunkt der Snapset-Erstellung katalogisiert sein.
Der Pubset, an dem sie katalogisiert sind, muss lokal importiert sein.
Sie dürfen nicht auf Privatplatte liegen.
Die Angabe von Aliasnamen ist zulässig. Einzelne Dateigenerationen können angegeben werden. Bei Angabe einer Dateigenerationsgruppe werden die Dateigenerationen mit ausgegeben.
Der privilegierte Benutzer (Privileg TSOS) kann sich über Dateien aller Benutzerkennungen informieren. Dabei sind Musterzeichen in der Benutzerkennung nicht zulässig.
=<var: char:80>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereichs von 80 Byte, in dem der Pfadname bzw. die Musterzeichenfolge für die gewünschte(n) Datei(en) abgelegt ist.
SNAPSET
Der Operand darf nicht zusammen mit dem Operanden SNAPID angegeben werden.
Bezeichnet den Snapset, von dem die Datei-Informationen ausgegeben werden sollen, über das relative Alter.
=<integer -52..-1>
Bezeichnet den Snapset explizit über das relative Alter. Der Wert -1 entspricht dem jüngsten Snapset (entspricht auch *LATEST).
=*LATEST
Die Informationen werden von dem jüngsten Snapset (d.h. von der aktuellsten Pubset-Sicherung) ausgegeben.
SNAPID
Der Operand darf nicht zusammen mit dem Operanden SNAPSET angegeben werden.
Bezeichnet den Snapset, von dem die Datei-Informationen ausgegeben werden sollen.
=<c-string 1..1: name 1..1 with-low>
Bezeichnet den Snapset explizit über die Snapset-Id. Die maximal 52 Snapsets zu einem Pubset werden unterschieden durch Snapset-Ids aus den 26 Kleinbuchstaben a bis z und den 26 Großbuchstaben A bis Z.
=<var: char 1..1>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereichs von 1 Byte, in dem die Snapset-Id abgelegt ist.
Hinweis
Wenn weder SNAPSET noch SNAPID angegeben sind, wird die Information vom jüngsten Snapset ausgegeben.
OUTAREA
Bestimmt den Ausgabebereich, in dem die Informationen abgelegt werden sollen.
=(<var: pointer>,<integer 0..32767>)
Gibt Adresse und Länge des Ausgabebereichs an.
EQUATES
Steuerungs-Operand nur für MF=C und MF=D:
Gibt an, ob bei der Expansion des Parameter- oder Ausgabebereichs auch Equates für die Werte der Felder des Parameter- oder Ausgabebereichs generiert werden sollen.
= *YES
Bei der Expansion des Parameter- oder Ausgabebereichs werden auch Equates für die Werte der Felder des Parameter- oder Ausgabebereichs generiert.
= *NO
Bei der Expansion des Parameter- oder Ausgabebereichs werden keine Equates für die Werte der Felder des Parameter- oder Ausgabebereichs generiert.
XPAND
Steuerungs-Operand nur für MF=C und MF=D:
Es wird festgelegt, welche Struktur zu expandieren (erzeugen) ist. Angaben bei diesem Operanden werden bei anderen MF-Werten ignoriert.
= PARAM
Das Layout der Parameterliste wird expandiert.
= OUTPUT
Das Layout des Ausgabebereiches wird expandiert.
Returncodes
Der Returncode wird im Standardheader des Parameterbereichs abgelegt. Der Parameterbereich darf dann nicht im Read-only-Bereich liegen, sonst erfolgt Programmterminierung.
Standardheader: ccbbaaaa
Über die Ausführung des Makros LFFSNAP wird im Standardheader folgender Returncode übergeben (cc = SUBCODE2, bb = SUBCODE1, aaaa = MAINCODE):
X'cc' | X'bb' | X'aaaa' | Erläuterung |
X'00' | X'00' | X'0000' | Kein Fehler |
X'00' | X'40' | X'0501' | angeforderter Katalog nicht verfügbar |
X'00' | X'40' | X'0505' | Fehler bei der Rechner-Kommunikation |
X'00' | X'40' | X'0512' | angeforderter Katalog nicht gefunden |
X'00' | X'40' | X'051B' | gewünschte Benutzerkennung nicht im Pubset |
X'00' | X'40' | X'051D' | LOGON-Passwort auf angegebenem Pubset anders |
X'00' | X'20' | X'0531' | Unerwarteter Fehler beim Katalogzugriff |
X'00' | X'40' | X'0535' | angegebene Datei nicht zugreifbar |
X'00' | X'82' | X'0594' | nicht genügend virtueller Speicher |
X'00' | X'01' | X'05AB' | Adresse des Ausgabebereichs falsch/nicht angegeben |
X'02' | X'00' | X'05B6' | fehlerhafte Zeitkonvertierung GTIME-Makro |
X'00' | X'20' | X'05C7' | interner Fehler im DVS |
X'00' | X'40' | X'05FC' | angegebene Benutzerkennung nicht im Home-Pubset |
X'00' | X'40' | X'0615' | Datei liegt auf einem nicht verfuegbaren Volume Set |
X'00' | X'40' | X'0616' | Volume Set in SM-Pubset nicht zugreifbar |
X'00' | X'40' | X'0622' | Snapset nicht verfügbar |
X'00' | X'40' | X'0624' | Dateiname ungültig |
X'00' | X'40' | X'0684' | Datei existiert nicht |
X'02' | X'00' | X'06CB' | Ausgabeinformation nicht vollständig übertragen |
X'00' | X'01' | X'06CB' | Ausgabebereich zu klein |
X'00' | X'40' | X'06CC' | kein Dateiname entspricht der angegebenen Musterzeichenfolge |
X'00' | X'01' | X'06F7' | Ungültiger Operandenwert |
X'00' | X'01' | X'06FD' | Parameterbereich ungültig oder nicht zugreifbar |
Weitere Returncodes, deren Bedeutung durch Konvention makroübergreifend festgelegt ist, können der Tabelle auf "Standardheader" (Standardheader) entnommen werden.
Das aufrufende Programm wird beendet, wenn bezüglich der Parameterliste folgende Fehler auftreten:
Die Liste ist dem Aufrufer nicht zugewiesen.
Die Liste ist nicht auf Wortgrenze ausgerichtet.
Die Liste ist gegen Schreibzugriff geschützt.
Layout der Operandenliste
Makroauflösung mit MF=D und EXPAND=PARAM, sowie Standardwerten für EQUATES, PREFIX und MACID:
LFFSNAP MF=D,XPAND=PARAM DMALLFPL DSECT , DMALHDR DS 0A DMALFHE DS 0XL8 0 GENERAL PARAMETER AREA HEADER DMALIFID DS 0A 0 INTERFACE IDENTIFIER DMALFCTU DS AL2 0 FUNCTION UNIT NUMBER DMALFCT DS AL1 2 FUNCTION NUMBER DMALFCTV DS AL1 3 FUNCTION INTERFACE VERSION NUMBER DMALRET DS 0A 4 GENERAL RETURN CODE DMALSRET DS 0AL2 4 SUB RETURN CODE DMALSR2 DS AL1 4 SUB RETURN CODE 2 DMALSR1 DS AL1 5 SUB RETURN CODE 1 DMALMRET DS 0AL2 6 MAIN RETURN CODE DMALMR2 DS AL1 6 MAIN RETURN CODE 2 DMALMR1 DS AL1 7 MAIN RETURN CODE 1 DMALFHL EQU 8 8 GENERAL OPERAND LIST HEADER LENGTH * DMALPNAM DS CL80 PATHNAM DMALSNAP DS FL1 SNAPIND * SNAPSET - VALUES DMALSNIN EQU 0 SNAPSET=<integer> DMALSNCH EQU 1 SNAPSET=<char> DMALSNLT EQU 2 SNAPSET=*LATEST * DMALSNID DS CL1 SNAPID DMALSNVL DS H SNAPVALUE DMALARAD DS A OUTAREA=(<addr>,...) DMALARLN DS F OUTAREA=(...,<length>) DMAL# EQU *-DMALHDR
Format des Ausgabebereiches
Makroauflösung mit MF=D und EXPAND=OUTPUT, sowie mit Standardwerten für EQUATES, PREFIX und MACID:
LFFSNAP MF=D,XPAND=OUTPUT MFTST MF=D,PREFIX=D,MACID=MAL,ALIGN=F, DMACID=MAL,SUPPORT=(E,D,C,M,L),DNAME=MALOUTL DMALOUTL DSECT , *,##### PREFIX=D, MACID=MAL ##### * Snapset Output DMALFSIZ DS F FILESIZE DMALOPNM DS CL54 PATHNAME DMALSTATE DS FL1 STATE * STATE = VALUES DMALSTOP EQU 0 STATE = OPENED DMALSTCL EQU 1 STATE = CLOSED DMALSTNR EQU 2 STATE = NOREST * DMALFTYPE DS FL1 FILETYPE * FTYPE = VALUES DMALFTPB EQU 0 FTYPE = PUBLIC DMALFTMG EQU 1 FTYPE = MIGRATED DMALFTFG EQU 2 FTYPE = FGG DMALFTWR EQU 3 FTYPE = WORK DMALFTPD EQU 4 FTYPE = PRDISK DMALFTTP EQU 5 FTYPE = TAPE DMALFTNT EQU 6 FTYPE = NET * * DMALCRDT DS 0XL16 Creation Date DMALCRYE DS CL4 YEAR DMALCRMO DS CL2 MONTH DMALCRDA DS CL2 DAY DMALCRHO DS CL2 HOURS DMALCRMI DS CL2 MINUTES DMALCRSE DS CL2 SECONDS DMALCRUS DS CL2 UNUSED * * DMALLCDT DS 0XL16 Last Change Date DMALLCYE DS CL4 YEAR DMALLCMO DS CL2 MONTH DMALLCDA DS CL2 DAY DMALLCHO DS CL2 HOURS DMALLCMI DS CL2 MINUTES DMALLCSE DS CL2 SECONDS DMALLCUS DS CL2 UNUSED * DMALENLT DS FL1 END Indicator * DMALSNXT EQU 0 FURTHER ENTRY DMALSNED EQU 1 LAST ENTRY DMALSNNS EQU 2 NOT ENOUGH SPACE * DMALUNUS DS XL3 UNUSED DMALOUTPUT# EQU *-DMALFSIZ
Bei Ausgabe der Snapset-Information in den Ausgabebereich des Anwenders werden folgende Fälle unterschieden:
Die Ausgabe war vollständig möglich
Der Ausgabebereich wird mit der gewünschten Information überschrieben, der Aufrufer erhält den Returncode 0. Der Ausgabebereich wird nicht bis zum Ende durchgelöscht, sondern nur so weit beschrieben wie erforderlich.Keine Dateien entsprechen den Auswahlkriterien
Der Ausgabebereich wird überhaupt nicht beschrieben. Der Aufrufer erhält den Returncode 0684 oder 06CC (bei Musterzeichen/Teilqualifizierung).Die Ausgabe war nicht möglich
Der Ausgabebereich konnte nicht beschrieben werden (Returncode 05AB nach Validierung des Ausgabebereichs bzw. der Adresse) oder er ist zu klein um eine Ausgabeinformation zu übertragen (Returncode 06CB).Die Ausgabe war nicht vollständig möglich
Einige Datei-Informationsblöcke konnten nicht übertragen werden. Zusätzlich zur entsprechenden Anzeige im Ausgabebebereich (NOT ENOUGH SPACE) wird Returncode 06CB mit Subreturncode2 X'02' ausgegeben.
Beispiel für eine Aufruffolge
LFFSNAP MF=D,XPAND=OUTPUT . . MVC LFFSMFC(DMAL#),LFFSMFL LFFSNAP MF=M,PATHNAM=':X:T.1',PARAM=LFFSMFC,PREFIX=X, * SNAPSET=-1,OUTAREA=(AREAAD,100) LFFSNAP MF=E,PARAM=LFFSMFC . . LFFSMFC LFFSNAP MF=C,PREFIX=X,XPAND=PARAM LFFSMFL LFFSNAP MF=L,PATHNAM='X' AREA DS CL100 AREAAD DC A(AREA) . .