JCL - Declaración DD
Los conjuntos de datos son archivos de mainframe con registros organizados en un formato específico. Los conjuntos de datos se almacenan en el dispositivo de almacenamiento de acceso directo (DASD) o cintas del mainframe y son áreas básicas de almacenamiento de datos. Si se requiere que estos datos se utilicen / creen en un programa por lotes, entonces el nombre físico del archivo (es decir, el conjunto de datos) junto con el formato y la organización del archivo se codifican en un JCL.
La definición de cada conjunto de datos utilizado en el JCL se da mediante DD statement. Los recursos de entrada y salida requeridos por un paso de trabajo deben describirse dentro de una declaración DD con información como la organización del conjunto de datos, los requisitos de almacenamiento y la longitud del registro.
Sintaxis
A continuación se muestra la sintaxis básica de una declaración JCL DD:
//DD-name DD Parameters
Descripción
Veamos la descripción de los términos utilizados en la sintaxis de la declaración DD anterior.
DD-NAME
Un DD-NAME identifica el conjunto de datos o el recurso de entrada / salida. Si este es un archivo de entrada / salida usado por un programa COBOL / Assembler, entonces el archivo es referenciado por este nombre dentro del programa.
DD
Esta es la palabra clave para identificarlo como una declaración DD.
PARAMETROS
A continuación se muestran los diversos parámetros para la declaración DD. Puede utilizar uno o más parámetros según los requisitos y están separados por comas:
Parámetro | Descripción |
---|---|
DSN | El parámetro DSN se refiere al nombre del conjunto de datos físicos de un conjunto de datos existente o recién creado. El valor de DSN puede estar compuesto por subnombres de 1 a 8 caracteres cada uno, separados por puntos y con una longitud total de 44 caracteres (alfanuméricos). A continuación se muestra la sintaxis: DSN=Physical Dataset Name Temporary datasetsnecesitan almacenamiento solo durante la duración del trabajo y se eliminan al finalizar el trabajo. Dichos conjuntos de datos se representan comoDSN=&name o simplemente sin un DSN especificado. Si un conjunto de datos temporal creado por un paso de trabajo se va a utilizar en el siguiente paso de trabajo, se hace referencia a él como DSN=*.stepname.ddname. Se llama Backward Referencing. |
DISP | El parámetro DISP se utiliza para describir el estado del conjunto de datos, la disposición al final del paso del trabajo en la finalización normal y anormal. DISP no se requiere en una declaración DD solo cuando el conjunto de datos se crea y se elimina en el mismo paso del trabajo (como los conjuntos de datos temporales). A continuación se muestra la sintaxis: DISP=(status, normal-disposition, abnormal-disposition) Los siguientes son valores válidos para status:
UN normal-disposition El parámetro puede tomar uno de los siguientes valores
UN abnormal-disposition El parámetro puede tomar uno de los siguientes valores
Aquí está la descripción de los parámetros CATLG, UNCATLG, DELETE, PASS y KEEP:
Cuando no se especifica alguno de los subparámetros de DISP, los valores predeterminados son los siguientes:
|
DCB | El parámetro Bloque de control de datos (DCB) detalla las características físicas de un conjunto de datos. Este parámetro es necesario para los conjuntos de datos que se crean recientemente en el paso del trabajo. LRECL es la longitud de cada registro que se mantiene dentro del conjunto de datos. RECFM es el formato de registro del conjunto de datos. RECFM puede contener valores FB, V o VB. FB es una organización de bloque fijo donde uno o más registros lógicos se agrupan dentro de un solo bloque. V es una organización variable en la que un registro lógico de longitud variable se coloca dentro de un bloque físico. VB es una organización de bloque variable en la que uno o más registros lógicos de longitud variable se colocan dentro de un bloque físico. BLKSIZE es el tamaño del bloque físico. Cuanto mayor sea el bloque, mayor será el número de registros de un archivo FB o VB. DSORG es el tipo de organización de conjuntos de datos. DSORG puede contener valores PS (secuencial físico), PO (organización particionada) y DA (organización directa). Cuando existe la necesidad de replicar los valores DCB de un conjunto de datos a otro dentro del mismo paso de trabajo o JCL, entonces se especifica como DCB = *. Stepname.ddname donde stepname es el nombre del paso del trabajo y ddname es el conjunto de datos del cual se copia el DCB. Verifique el siguiente ejemplo donde RECFM = FB, LRECL = 80 forma el DCB del conjunto de datos OUTPUT1. |
SPACE | El parámetro SPACE especifica el espacio requerido para el conjunto de datos en el DASD (Disco de almacenamiento de acceso directo). A continuación se muestra la sintaxis: SPACE=(spcunits, (pri, sec, dir), RLSE) Aquí está la descripción de todos los parámetros utilizados:
|
UNIT | Los parámetros UNIT y VOL se enumeran en el catálogo del sistema para conjuntos de datos catalogados y, por lo tanto, se puede acceder a ellos solo con el nombre DSN físico. Pero para conjuntos de datos sin catalogar, la declaración DD debe incluir estos parámetros. Para crear nuevos conjuntos de datos, se pueden especificar los parámetros UNIT / VOL o Z / OS asigna el dispositivo y el volumen adecuados. El parámetro UNIT especifica el tipo de dispositivo en el que se almacena el conjunto de datos. El tipo de dispositivo se puede identificar mediante la dirección de hardware o el grupo de tipos de dispositivo. A continuación se muestra la sintaxis: UNIT=DASD | SYSDA Donde DASD significa Dispositivo de almacenamiento de acceso directo y SYSDA significa Acceso directo al sistema y se refiere al siguiente dispositivo de almacenamiento en disco disponible. |
VOL | El parámetro VOL especifica el número de volumen en el dispositivo identificado por el parámetro UNIT. A continuación se muestra la sintaxis: VOL=SER=(v1,v2) Donde v1, v2 son números de serie de volumen. También puede utilizar la siguiente sintaxis: VOL=REF=*.DDNAME Donde REF es la referencia hacia atrás al número de serie del volumen de un conjunto de datos en cualquiera de los pasos de trabajo anteriores en el JCL. |
SYSOUT | Los parámetros de la declaración DD discutidos hasta ahora corresponden a los datos que se almacenan en un conjunto de datos. El parámetro SYSOUT dirige los datos al dispositivo de salida según la clase especificada. A continuación se muestra la sintaxis SYSOUT=class Donde si la clase es A, entonces dirige la salida a la impresora, y si la clase es * luego dirige la salida al mismo destino que el del parámetro MSGCLASS en la instrucción JOB. |
Ejemplo
A continuación se muestra un ejemplo, que hace uso de declaraciones DD junto con varios parámetros explicados anteriormente:
//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=*