DPSHSHP informiert über die aktuellen Sharer eines Shared Pubsets. Die gelieferten Informationen entsprechen der Ausgabe des Kommandos SHOW-SHARED-PUBSET.
Die gewünschte Information wird in einem Ausgabebereich hinterlegt. Der Anwender muss mit dem Operanden OUTAREA einen genügend großen Ausgabebereich mit den erforderlichen Zugriffsrechten zur Verfügung stellen.
Bei Angabe von INFO=*ALL oder INFO=*XCS oder INFO=*CCS ist der für die Ausgabe erforderliche Speicherplatz von der Anzahl der existierenden Shared Pubsets sowie von der Anzahl der Sharer pro Shared Pubset abhängig. Für einen Sharer eines Shared Pubsets werden 24 Bytes benötigt (maximal kann ein Shared Pubset 16 Sharer haben).
Der vom Aufrufer der Schnittstelle bereitgestellte Ausgabe-Bereich muss wenigstens so lang sein, dass er einen einzigen Sharer eines einzigen Shared Pubsets aufnehmen kann; dafür werden benötigt: 8 Bytes für den Header des Ausgabe-Bereiches, 8 Bytes für den Header der Shared-Pubset-Konfiguration, und 24 Bytes für wenigstens einen Sharer (insgesamt also 40 Bytes). Eine geringere Länge des Ausgabe-Bereiches wird mit dem Main-Returncode DPSHOISF („not minimal output length“) abgewiesen.
Wenn der vom Aufrufer spezifizierte Ausgabe-Bereich zu klein ist, um die zur Verfügung gestellten Informationen aufzunehmen, wird der gegenwärtig benötigte Wert für die Länge des Ausgabe-Bereiches im Feld DPSHRQLG („requested length of output area“) als Ausgabe-Parameter zurückgegeben. Ebenso wird ein Returncode gesetzt, der auf diese Situation hinweist (Main-Returncode DPSHOTSH („not enough space for info“)).
Liefert der Aufruf der Schnittstelle DPSHSHP aufgrund eines unerwarteten Returncodes des Watchdog-Mechanismus keine Ausgabeinformationen, so wird dieser Watchdog-Returncode als Ausgabe-Feld in der Parameterliste hinterlegt (im Feld DPSHWDRC („watchdog return code“)). Das Returncode-Feld der Schnittstelle DPSHSHP enthält in diesem Fall den Main-Returncode DPSHINTE („internal error“).
Abhängigkeiten zwischen den Operanden
Wenn INFO=*ONEPVS
angegeben ist, dann muss auch die Identifikation eines Pubsets durch Spezifikation des Eingabe-Parameters PUBSET
angegeben werden.
Format und Operandenbeschreibung
Operation | Operanden |
|
|
MF
Mit dem Operanden MF wird die Art der Makrogenerierung bestimmt.
In Abhängigkeit von den Operandenwerten für MF unterscheidet man fünf Formen des Makroaufrufs:
Operanden |
|
Zu den MF-Operandenwerten siehe Handbuch „Makroaufrufe an den Ablaufteil“ [12].
XPAND = PARAM / OUTPUT
Bestimmt, ob eine DSECT erzeugt werden soll. Angabe nur in Verbindung mit MF=D/C.
PARAM
Die Strukturbeschreibung der Parameterliste wird erzeugt.
Sie enthält die Input-Parameter und als festen Teil der Ausgabe ggf. die tatsächlich benötigte Länge eines Ausgabebereiches.
OUTPUT
Die Informationen über aktuell existierende Shared Pubsets wird in dem beim Aufruf spezifizierten Ausgabebereich abgelegt. Das Ausgabeformat wird durch XPAND=OUTPUT erzeugt.
VERSION = 1 / <integer 1..3>
Legt die gewünschte Schnittstellen-Version fest. Die Schnittstellen-Version 1 (derzeit die einzige Version) wird seit MSCF V15.0 unterstützt.
1
Voreinstellung. Die Schnittstellen-Version 1 wird generiert.
<integer 1..3>
Direktangabe der gewünschten Schnittstellen-Version.
INFO = *ALL / *ONEPVS / *XCS / *CCS
Legt fest, für welche Shared-Pubsets Informationen angefordert werden.
*ALL
Es sollen Informationen über alle existierenden Shared-Pubsets geliefert werden.
*ONEPVS
Es soll über ein ausgewähltes Shared-Pubset informiert werden. Die Pubset-Identifikation erfolgt im Operanden PUBSET
.
*XCS
Über alle XCS-Pubsets sollen Informationen ausgegeben werden.
*CCS
Über alle CCS-Pubsets sollen Informationen ausgegeben werden.
PUBSET =
Wird nur bei INFO=*ONEPVS
ausgewertet.
Identifikation eines Pubset .
OUTAREA = (adresse, länge)
Legt den Ausgabebereich fest, in den die Shared Pubsets ausgegeben wird.
adresse: <var: pointer> / (<reg: pointer>)
<var: pointer>
Der Ausgabebereich muss auf Wortgrenze ausgerichtet und beschreibbar sein. Alternativ sind folgende 2 Angaben möglich:
Adresse des Ausgabebereichs als direkte Adressangabe in der Form A(bereich).
Name eines Feldes mit der Adresse des Ausgabebereichs. Angabe nur in Verbindung mit MF=M.
(<reg: pointer>)
Register mit der Adresse des Ausgabebereichs. Angabe nur in Verbindung mit MF=M.
länge: <integer 1..32767> / <var: int:4> / (<reg: int:4>)
Legt die Länge des Ausgabebereichs fest. Wird ein zu kleiner Ausgabebereich angegeben, so wird die erforderliche Größe im Feld Input_Param.DPSHRQLG der Parameterliste hinterlegt.
<integer 1..32767>
Länge des Ausgabebereichs in Bytes als Direktangabe.
In Assembler muss eine symbolische Angabe in eckige Klammern eingeschlossen werden.
<var: int:4>
Name eines Feldes mit der Längenangabe als Integer-Zahl; Feldlänge = 4 Byte. Angabe nur in Verbindung mit MF=M.
<reg: int:4>
Register, das die Längenangabe für den Ausgabebereich enthält. Angabe nur in Verbindung mit MF=M.
Returncodes
Über den Erfolg der Ausführung des Makros DPHSHP wird im Standardheader folgender Returncode übergeben (cc = SUBCODE2, bb = SUBCODE1, aaaa = MAINCODE):
Standardheader:
c | c | b | b | a | a | a | a |
X'cc' | X'bb' | X'aaaa' | Erläuterung |
---|---|---|---|
X'00' | X'0000' | Kein Fehler | |
X'40' | X'0001' | Parameterliste ist nicht zugreifbar | |
X'40' | X'0002' | Ausgabe-Adresse nicht zugreifbar | |
X40' | X'0003' | Ausgabe-Adresse nicht auf Wortgrenze ausgerichtet | |
X'40' | X'0004' | Parameter INFO ist ungültig | |
X'40' | X'0005' | PUBSET-Operand ungültig | |
X'40' | X'0006' | Speicherplatz reicht für angeforderte Information nicht aus | |
X'40' | X'0007' | Speicherplatz reicht für minimale Ausgabeinformation nicht aus | |
X'40' | X'0008' | Es existieren keine Shared Pubsets | |
X'40' | X'0009' | Subsystem MSCF ist nicht verfügbar | |
X'20' | X'000A' | Interner Fehler | |
X'01' | X'FFFF' | Schnittstellen-Fehler, falsche Einheit oder Funktions-Nummer | |
X'03' | X'FFFF' | Version nicht unterstützt |
Tabelle 8: DPSHSHP-Makro: Returncodes
Layout des Parameterbereichs
DPSHSHP MF=D,XPAND=PARAM,VERSION=1 1 MFTST MF=D,PREFIX=D,MACID=PSH,ALIGN=F, C 1 DMACID=PSH,SUPPORT=(E,D,C,M,L),DNAME=DPSHPAR 2 DPSHPAR DSECT , 2 *,##### PREFIX=D, MACID=PSH ##### 1 * DPSHSHP parameter area 1 DPSHFHDR FHDR MF=(C,MCSI),EQUATES=NO Standardheader 2 DPSHFHDR DS 0A 2 DPSHFHE DS 0XL8 0 GENERAL PARAMETER AREA HEADER 2 * 2 DPSHIFID DS 0A 0 INTERFACE IDENTIFIER 2 DPSHFCTU DS AL2 0 FUNCTION UNIT NUMBER 2 * BIT 15 HEADER FLAG BIT, 2 * MUST BE RESET UNTIL FURTHER NOTICE 2 * BIT 14-12 UNUSED, MUST BE RESET 2 * BIT 11-0 REAL FUNCTION UNIT NUMBER 2 DPSHFCT DS AL1 2 FUNCTION NUMBER 2 DPSHFCTV DS AL1 3 FUNCTION INTERFACE VERSION NUMBER 2 * 2 DPSHRET DS 0A 4 GENERAL RETURN CODE 2 DPSHSRET DS 0AL2 4 SUB RETURN CODE 2 DPSHSR2 DS AL1 4 SUB RETURN CODE 2 2 DPSHSR1 DS AL1 5 SUB RETURN CODE 1 2 DPSHMRET DS 0AL2 6 MAIN RETURN CODE 2 DPSHMR2 DS AL1 6 MAIN RETURN CODE 2 2 DPSHMR1 DS AL1 7 MAIN RETURN CODE 1 2 DPSHFHL EQU 8 8 GENERAL OPERAND LIST HEADER LENGTH 2 * 1 * main return codes 1 DPSHNOER EQU 0 no error 1 DPSHPLNA EQU 1 parameterlist not accessible 1 DPSHONAC EQU 2 output area not accessible 1 DPSHONAL EQU 3 output area not aligned 1 DPSHINFI EQU 4 invalid INFO parameter 1 DPSHINVP EQU 5 invalid PUBSET parameter 1 DPSHOTSH EQU 6 not enough space for info 1 DPSHOISF EQU 7 not minimal output length 1 DPSHNSHP EQU 8 no shared pubsets 1 DPSHMNAV EQU 9 subsystem MSCF not available 1 DPSHINTE EQU 10 internal error 1 * 1 DPSHINFO DS FL1 par.INFO 1 * values for operand INFO 1 DPSHALLP EQU 1 info for all shared pubsets 1 DPSHONEP EQU 2 info for one shared pubset 1 DPSHXCSP EQU 3 info for all XCS pubsets 1 DPSHCCSP EQU 4 info for all CCS pubsets 1 * 1 DPSHRSV1 DS XL3 reserved - first 1 DPSHPBID DS CL4 par. PUBSET 1 DPSHARAD DS A address of output area 1 DPSHARLG DS F length of output area 1 DPSHRSV2 DS XL4 reserved - second 1 DPSHRQLG DS F req. length of output area 1 DPSHWDRC DS F watchdog return code 1 DPSH# EQU *-DPSHFHDR
Layout des Ausgabebereichs
DPSHSHP MF=D,XPAND=OUTPUT 1 MFTST MF=D,PREFIX=D,MACID=PSH,ALIGN=F, C 1 DMACID=PSH,SUPPORT=(E,D,C,M,L),DNAME=PSHOUT 2 DPSHOUT DSECT , 2 *,##### PREFIX=D, MACID=PSH ##### 1 * output area layout 1 DPSHNSPV DS F number of spvs 1 DPSHTLTH DS F total length 1 * 1 DPSHCONF DS 0XL392 configuration entry 1 DPSHNOSH DS H number of sharer 1 DPSHRESV DS XL2 reserved bytes 1 DPSHSPVS DS CL4 spvs catid 1 DPSHSHAR DS 0XL24 sharer data of pubset 1 DPSHHNAM DS CL8 sharer host name 1 DPSHHCTI DS CL4 sharer home catid 1 DPSHBSVR DS CL3 sharer bs version 1 DPSHBSSV DS CL1 sharer bs subversion 1 DPSHESYS DS CL3 sharer ext sysid 1 DPSHSYSI DS X sharer sysid 1 DPSHSTYP DS FL1 sharer type 1 * values for output SHARER TYPE 1 DPSHTUDF EQU 0 undefined sharer type 1 DPSHTMAS EQU 1 sharer is pubset master 1 DPSHTSLV EQU 2 sharer is pubset slave 1 DPSHTBAM EQU 3 sharer is pubset backup master 1 DPSHSTAT DS FL1 sharer state 1 * values for output SHARER STATE 1 DPSHSUDF EQU 0 undefined sharer state 1 DPSHSACT EQU 1 sharer state active 1 DPSHSCRS EQU 2 sharer state crashed 1 DPSHSEXC EQU 3 sharer state excat 1 DPSHSDPR EQU 4 sharer state disc prot error 1 DPSHSHUT EQU 5 sharer state shutdown 1 DPSHSMCH EQU 6 sharer state master change 1 DPSHSRDE EQU 7 sharer state disc read error 1 DPSHSWRE EQU 8 sharer state disc write error 1 DPSHRES3 DS XL2 reserved - third DS 15XL24 1 DPSHSHAR# EQU 16 1 * 1 DPSHOUTPUT# EQU *-DPSHNSPV