Makrotyp: S-Typ (E-Form/L-Form/D-Form/C-Form/M-Form) (siehe "Typen von Makroaufrufen")
Mit dem Makro LJFSNAP kann sich der Benutzer über Jobvariablen informieren, die bei der Pubset-Sicherung auf einen Snapset gesichert wurden. Die Informationen sind ausgerichtet auf die Restaurierbarkeit von Jobvariablen (mit dem Makro RJFSNAP bzw. dem Kommando RESTORE-JV-FROM-SNAPSET). Der zugehörige Pubset muss importiert sein.
Der nicht-privilegierte Benutzer kann sich über alle für ihn zugreifbaren Jobvariablen informieren (wie bei SHOW-JV-ATTRIBUTES, das Informationen aus dem aktuellen Dateikatalog liefert).
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 Jobvariablen aller Benutzerkennungen informieren. Musterzeichen innerhalb der Benutzerkennung sind dabei nicht zulässig.
Format
Operation | Operanden |
|
|
| |
| |
|
Operandenbeschreibung
JVNAME
Auswahl der Jobvariablen, die aufgelistet werden sollen.
=<c-string 1..80: filename 1..54 with-wild(80)>
Pfadname der Jobvariablen auf dem Snapset. Mit Musterzeichen kann eine Auswahlangabe für eine Jobvariablenmenge erfolgen.
Die Jobvariablen müssen 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.
Die Angabe von Aliasnamen ist zulässig.
Der privilegierte Benutzer (Privileg TSOS) kann sich über Jobvariablen 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) Jobvariable(n) abgelegt ist.
SNAPSET
Der Operand darf nicht zusammen mit dem Operanden SNAPID angegeben werden.
Bezeichnet den Snapset, von dem die Jobvariablen-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 restauriert werden soll, über die Snapset-Id.
=<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 LJFSNAP 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'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'0622' | Snapset nicht verfügbar |
X'00' | X'40' | X'0624' | JV-Name ungültig |
X'00' | X'40' | X'0682' | JV Fehler beim Zugriff auf JV |
X'02' | X'00' | X'06CB' | Ausgabeinformation nicht vollständig übertragen |
X'00' | X'01' | X'06CB' | Ausgabebereich zu klein |
X'00' | X'01' | X'06F7' | Ungültiger Operandenwert |
X'00' | X'01' | X'06FD' | Parameterbereich ungültig oder nicht zugreifbar |
Die Returncodes mit dem Maincode X’04xy’ gehören zur Komponente JVS. Eine Liste mit
den Erläuterungen kann mit dem Makro JVSERROR ausgegeben werden (siehe auch Handbuch „Jobvariablen“ [21]).
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:
LJFSNAP MF=D,XPAND=PARAM DMAJLFPL DSECT , DMAJHDR DS 0A DMAJFHE DS 0XL8 0 GENERAL PARAMETER AREA HEADER DMAJIFID DS 0A 0 INTERFACE IDENTIFIER DMAJFCTU DS AL2 0 FUNCTION UNIT NUMBER DMAJFCT DS AL1 2 FUNCTION NUMBER DMAJFCTV DS AL1 3 FUNCTION INTERFACE VERSION NUMBER DMAJRET DS 0A 4 GENERAL RETURN CODE DMAJSRET DS 0AL2 4 SUB RETURN CODE DMAJSR2 DS AL1 4 SUB RETURN CODE 2 DMAJSR1 DS AL1 5 SUB RETURN CODE 1 DMAJMRET DS 0AL2 6 MAIN RETURN CODE DMAJMR2 DS AL1 6 MAIN RETURN CODE 2 DMAJMR1 DS AL1 7 MAIN RETURN CODE 1 DMAJFHL EQU 8 8 GENERAL OPERAND LIST HEADER LENGTH * DMAJJVNM DS CL80 JVname DMAJSNAP DS FL1 Snapind * SNAPSET - VALUES DMAJSNIN EQU 0 SNAPSET=<integer> DMAJSNCH EQU 1 SNAPSET=<char> DMAJSNLT EQU 2 SNAPSET=*LATEST * DMAJSNID DS CL1 Snapid DMAJSNVL DS H SnapValue DMAJARAD DS A Outarea=(<addr>,...) DMAJARLN DS F Outarea=(...,<length>) DMAJ# EQU *-DMAJHDR
Format des Ausgabebereiches
Makroauflösung mit MF=D und EXPAND=OUTPUT, sowie mit Standardwerten für EQUATES, PREFIX und MACID:
LJFSNAP MF=D,XPAND=OUTPUT DMAJOUTL DSECT , * Output List DMAJJSIZ DS F JVSIZE DMAJOJVN DS CL54 JVNAME DMAJUNU1 DS XL2 UNUSED * DMAJCRDT DS 0XL16 Creation Date DMAJCRYE DS CL4 YEAR DMAJCRMO DS CL2 MONTH DMAJCRDA DS CL2 DAY DMAJCRHO DS CL2 HOURS DMAJCRMI DS CL2 MINUTES DMAJCRSE DS CL2 SECONDS DMAJCRUS DS CL2 UNUSED * * DMAJEXDT DS 0XL16 Expiration Date DMAJEXYE DS CL4 YEAR DMAJEXMO DS CL2 MONTH DMAJEXDA DS CL2 DAY DMAJEXHO DS CL2 HOURS DMAJEXMI DS CL2 MINUTES DMAJEXSE DS CL2 SECONDS DMAJEXUS DS CL2 UNUSED * DMAJENLT DS FL1 END Indicator * DMAJSNXT EQU 0 FURTHER ENTRY DMAJSNED EQU 1 LAST ENTRY DMAJSNNS EQU 2 NOT ENOUGH SPACE * DMAJUNU2 DS XL3 UNUSED DMAJOUTPUT# EQU *-DMAJJSIZ
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
LJFSNAP MF=D,XPAND=OUTPUT . . MVC LJFSMFC(DMAL#),LJFSMFL LJFSNAP MF=M,PREFIX=X,JVNAME=':X:JV.1',OUTAREA=(AREAAD,100), * PARAM=LJFSMFC LJFSNAP MF=E,PARAM=LJFSMFC . . LJFSMFC LJFSNAP MF=C,PREFIX=X,XPAND=PARAM LJFSMFL LJFSNAP MF=L,PATHNAM='X' AREA DS CL100 AREAAD DC A(AREA)