JCL - DD-Anweisung
Datensätze sind Mainframe-Dateien mit Datensätzen, die in einem bestimmten Format organisiert sind. Datensätze werden auf dem DASD (Direct Access Storage Device) oder den Bändern des Mainframes gespeichert und sind grundlegende Datenspeicherbereiche. Wenn diese Daten in einem Stapelverarbeitungsprogramm verwendet / erstellt werden müssen, werden der physische Name der Datei (dh der Datensatz) sowie das Dateiformat und die Organisation in einer JCL codiert.
Die Definition jedes in der JCL verwendeten Datensatzes wird mit dem angegeben DD statement. Die für einen Jobschritt erforderlichen Eingabe- und Ausgaberessourcen müssen in einer DD-Anweisung mit Informationen wie Dataset-Organisation, Speicheranforderungen und Datensatzlänge beschrieben werden.
Syntax
Es folgt die grundlegende Syntax einer JCL-DD-Anweisung:
//DD-name DD Parameters
Beschreibung
Sehen wir uns die Beschreibung der Begriffe an, die in der obigen DD-Anweisungssyntax verwendet werden.
DD-NAME
Ein DD-NAME identifiziert den Datensatz oder die Eingabe- / Ausgaberessource. Wenn dies eine Eingabe- / Ausgabedatei ist, die von einem COBOL / Assembler-Programm verwendet wird, wird die Datei innerhalb des Programms mit diesem Namen referenziert.
DD
Dies ist das Schlüsselwort, um es als DD-Anweisung zu identifizieren.
PARAMETER
Im Folgenden sind die verschiedenen Parameter für die DD-Anweisung aufgeführt. Sie können einen oder mehrere Parameter basierend auf den Anforderungen verwenden, die durch Komma getrennt sind:
Parameter | Beschreibung |
---|---|
DSN | Der DSN-Parameter bezieht sich auf den physischen Datasetnamen eines neu erstellten oder vorhandenen Datasets. Der DSN-Wert kann aus Unternamen mit einer Länge von jeweils 1 bis 8 Zeichen, getrennt durch Punkte und einer Gesamtlänge von 44 Zeichen (alphanumerisch) bestehen. Es folgt die Syntax: DSN=Physical Dataset Name Temporary datasetsbenötigen nur Speicher für die Auftragsdauer und werden bei Abschluss des Auftrags gelöscht. Solche Datensätze werden als dargestelltDSN=&name oder einfach ohne DSN angegeben. Wenn ein temporärer Datensatz, der von einem Jobschritt erstellt wurde, im nächsten Jobschritt verwendet werden soll, wird auf ihn verwiesen DSN=*.stepname.ddname. Das nennt man Backward Referencing. |
DISP | Der DISP-Parameter wird verwendet, um den Status des Datensatzes und die Disposition am Ende des Jobschritts bei normalem und abnormalem Abschluss zu beschreiben. DISP ist in einer DD-Anweisung nur dann nicht erforderlich, wenn das Dataset im selben Jobschritt erstellt und gelöscht wird (wie die temporären Datasets). Es folgt die Syntax: DISP=(status, normal-disposition, abnormal-disposition) Es folgen gültige Werte für status::
EIN normal-disposition Der Parameter kann einen der folgenden Werte annehmen
EIN abnormal-disposition Der Parameter kann einen der folgenden Werte annehmen
Hier ist die Beschreibung der Parameter CATLG, UNCATLG, DELETE, PASS und KEEP:
Wenn einer der Unterparameter von DISP nicht angegeben wird, lauten die Standardwerte wie folgt:
|
DCB | Der Parameter Data Control Block (DCB) beschreibt die physikalischen Eigenschaften eines Datensatzes. Dieser Parameter ist für Datasets erforderlich, die im Jobschritt neu erstellt wurden. LRECL ist die Länge jedes Datensatzes, der im Datensatz enthalten ist. RECFM ist das Datensatzformat des Datensatzes. RECFM kann die Werte FB, V oder VB enthalten. FB ist eine feste Blockorganisation, bei der ein oder mehrere logische Datensätze in einem einzelnen Block zusammengefasst sind. V ist eine variable Organisation, bei der ein logischer Datensatz variabler Länge innerhalb eines physischen Blocks platziert wird. VB ist eine Organisation mit variablem Block, bei der ein oder mehrere logische Datensätze variabler Länge in einem physischen Block platziert werden. BLKSIZE ist die Größe des physischen Blocks. Je größer der Block ist, desto größer ist die Anzahl der Datensätze für eine FB- oder VB-Datei. DSORG ist der Typ der Datensatzorganisation. DSORG kann die Werte PS (Physical Sequential), PO (Partitioned Organization) und DA (Direct Organization) enthalten. Wenn die DCB-Werte eines Datasets innerhalb desselben Jobschritts oder derselben JCL in ein anderes repliziert werden müssen, wird dies als DCB = *. Stepname.ddname angegeben, wobei stepname der Name des Jobschritts und ddname das Dataset ist, aus dem Der DCB wird kopiert. Überprüfen Sie das folgende Beispiel, wobei RECFM = FB, LRECL = 80 den DCB des Datensatzes OUTPUT1 bildet. |
SPACE | Der Parameter SPACE gibt den für das Dataset erforderlichen Speicherplatz auf der DASD (Direct Access Storage Disk) an. Es folgt die Syntax: SPACE=(spcunits, (pri, sec, dir), RLSE) Hier ist die Beschreibung aller verwendeten Parameter:
|
UNIT | Die Parameter UNIT und VOL sind im Systemkatalog für katalogisierte Datasets aufgeführt und können daher nur mit dem physischen DSN-Namen aufgerufen werden. Bei nicht katalogisierten Datasets sollte die DD-Anweisung diese Parameter enthalten. Für die Erstellung neuer Datensätze können die UNIT / VOL-Parameter angegeben werden oder das Z / OS weist das geeignete Gerät und Volume zu. Der Parameter UNIT gibt den Gerätetyp an, auf dem der Datensatz gespeichert ist. Der Gerätetyp kann anhand der Hardwareadresse oder der Gerätetypgruppe identifiziert werden. Es folgt die Syntax: UNIT=DASD | SYSDA Dabei steht DASD für Direct Access Storage Device und SYSDA für System Direct Access und bezieht sich auf das nächste verfügbare Festplattenspeichergerät. |
VOL | Der Parameter VOL gibt die Datenträgernummer auf dem Gerät an, die durch den Parameter UNIT identifiziert wird. Es folgt die Syntax: VOL=SER=(v1,v2) Wobei v1, v2 Volumen-Seriennummern sind. Sie können auch die folgende Syntax verwenden: VOL=REF=*.DDNAME Dabei ist REF die Rückwärtsreferenz auf die Volume-Seriennummer eines Datasets in einem der vorhergehenden Jobschritte in der JCL. |
SYSOUT | Die bisher diskutierten DD-Anweisungsparameter entsprechen Daten, die in einem Datensatz gespeichert werden. Der Parameter SYSOUT leitet die Daten basierend auf der angegebenen Klasse an das Ausgabegerät weiter. Es folgt die Syntax SYSOUT=class Wenn die Klasse A ist, wird die Ausgabe an den Drucker weitergeleitet, und wenn die Klasse A ist * Anschließend wird die Ausgabe an dasselbe Ziel wie das des MSGCLASS-Parameters in der JOB-Anweisung geleitet. |
Beispiel
Es folgt ein Beispiel, in dem DD-Anweisungen zusammen mit verschiedenen oben erläuterten Parametern verwendet werden:
//TTYYSAMP JOB 'TUTO',CLASS=6,MSGCLASS=X,REGION=8K,
// NOTIFY=&SYSUID
//*
//STEP010 EXEC PGM=ICETOOL,ADDRSPC=REAL
//*
//INPUT1 DD DSN=TUTO.SORT.INPUT1,DISP=SHR
//INPUT2 DD DSN=TUTO.SORT.INPUT2,DISP=SHR,UNIT=SYSDA,
// VOL=SER=(1243,1244)
//OUTPUT1 DD DSN=MYFILES.SAMPLE.OUTPUT1,DISP=(,CATLG,DELETE),
// RECFM=FB,LRECL=80,SPACE=(CYL,(10,20))
//OUTPUT2 DD SYSOUT=*