Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
OS/390
El JCL tienen la sintaxis general siguiente:
Identificador
Las sentencias comienzan con //
nombre
Identifica la sentencia JCL y es opcional en la sentencia EXEC y las sentencias DD
concatenadas.
operacin
Especifica el tipo de sentencia JCL y debe ser precedido seguido por uno o ms
espacios en blanco.
operando
Es una lista de parmetros con palabra clave y/o posicionales separados por comas.
Los parmetros posicionales se deben consignar en una orden particular; los
parmetros con palabra clave se pueden consignar en cualquier orden. Este campo
se debe preceder y seguir por uno o ms espacios en blanco; los espacios en blanco
no se permiten entre los parmetros. El campo de operando debe comenzar antes de
la columna 16 y no debe extenderse ms all de la columna 71; sin embargo, el
campo se puede continuar sobre otra sentencia separando con una coma y
consignando // en las columnas 1 y 2 de la sentencia siguiente, seguida por lo menos
de un blanco y del resto de los parmetros.
comentarios
Son opcionales si se codifican los operandos; los comentarios deben comenzar ms
all de la columna 17 si el/los operando(s) no son codificados.
DDNAME es el nombre
DD es la operacin
DSN=U19999A.PROGRAM.DATA,DISP=SHR es el operando
Los parmetros de posicin se deben poner en una posicin especfica dentro del campo
operando, si se desea omitir un operando de posicin debe ser reemplazado por una coma.
Sentencia de Comentario
La sentencia de COMMENT permite que el usuario inserte declaraciones de comentario
entre los rdenes JCL para clarificar la funcin de los rdenes JCL.
//* comentario
Sentencia de Trabajo
La sentencia job nombra un job, provee la informacin de accounting, y provee las
opciones que afectan el proceso del job.
Nombre de job
El primer carcter debe ser alfabtico. El nombre puede contener hasta ocho
caracteres incluyendo los caracteres nacionales, $, #, y @. Para ver la salida por
TSO es necesario incluir el userid en el jobname.
Informacin de accounting
//U99999A JOB (*), ANGELA COOK
En este ejemplo, los dos parmetros de posicin son separados por una coma. El
primer parmetro, (*), permite que el sistema determine la informacin de
accounting del usuario que se loge al TSO. (la informacin de accounting se
coloca siempre como el primer parmetro despus del campo nombre de job.)
Nombre de usuario
El username es el nombre de la persona a la que le pertenece el job. Debe ser
incluido en apstrofes si contiene espacios en blanco o caracteres especiales y puede
ser un mximo de veinte caracteres.
El segundo parmetro,' ANGELA COOK ', es el nombre de usuario.
Parmetro CLASS
CLASS=a
Parmetro TIME
Se ve mas adelante en la sentencia EXEC
Parmetro NOTIFY
NOTIFY=*
NOTIFY=&SYSUID?????
NOTIFY=B010111 Notifica al userid especificado
MSGLEVEL=(n,n)
MSGCLASS=a
Parmetro TYPERUN
TYPRUN=aaaa
Parmetro RESTART
RESTART=nombre de stepname
Se debe indicar el nombre de stepname (ver sentencia EXEC) del paso a partir del
cual se quiere ejecutar
El parmetro TIME solicita que el tiempo de ejecucin mximo asignado a este job
sea dos minutos.
Sentencia EXEC
Una sentencia EXEC se utiliza para invocar el JCL en un procedimiento catalogado o para
invocar un programa especfico (load module). Los procedimientos catalogados contienen
JCL a ser utilizados por muchos usuarios; los procedimientos catalogados residen en
SYS1.PROC2LIB. Una sentencia EXEC es la primera sentencia en un paso de un job; un
job puede tener pasos mltiples y por lo tanto mltiples sentencias EXEC.
Stepname
Especifica el nombre del paso. Es enteramente opcional; sin embargo, en un trabajo
de mltiples pasos, es conveniente especificar un Stepname nica para cada paso. El
nombre debe ser 1 a 8 caracteres comenzando con una letra.
EXEC
Identifica la sentencia como una sentencia EXEC.
PGM
Si no se especifica el parmetro PGM el nombre que figura a continuacin de
EXEC es el nombre de un procedimiento catalogado
COND
Especifica la condicin(s) para ejecutar procesos subsecuentes. Cada nmero se
compara contra el cdigo de retorno de un paso anterior, y si cualquier
comparacin es falsa, se saltea el paso. Un mximo de ocho comparaciones se
permite.
nmero
Es un nmero que se compara contra el cdigo de retorno de un paso anterior.
condicin
Pueden ser EQ (igual), NE (no igual), GE (mayor o igual que), LE (menor o igual
que), GT (mayor que), o LT (menor que).
paso
Es el nombre de un Stepname especfico del cual se testea el cdigo de retorno; si se
omite el nombre del paso, se evalua en el test el cdigo de retorno de paso
inmediato anterior.
0
No se detect ningn error o advertencia
4
Posible error detectado (advertencia) pero la ejecucin es posible.
8
Error serio detectado, probable falla.
12
Error severo detectado, es imposible su ejecucin.
16
Error terminal, la ejecucin no puede continuar.
PARM
Especifica la informacin de control que se pasar a un proceso, donde el 'valor'
puede contener ms de una expresin separada por comas.
REGIN
Especifica la memoria para un proceso particular; n es un mltiplo de 64. Esta
regin no debe ser mayor que la regin total del trabajo.
TIME
Especifica el tiempo mximo de CPU que el proceso utilizar; m es minutos (de 0 a
9) y s es segundos (de 00 a 60). El tiempo no debe ser mayor o igual que el tiempo
total del job.
Ejemplos:
Esta sentencia ejecuta un programa llamado IEBGENER
//EXEC PGM=IEBGENER
//EXEC SAS
El job siguiente contiene dos pasos. El primer paso ejecuta el procedimiento catalogado
FORTVCL que compila un programa FORTRAN y lo linkedita creando un load module. El
segundo paso ejecuta el procedimiento catalogado FORTVG, el cual corre la compilacin y
linkedicin del programa almacenado en USER.ONE bajo el nombre de TEST.
Usando parmetros con palabra clave en STEP1, usted puede especificar que el load
module TEST debe ser almacenada en una load library llamada USER.ONE. La load
library es un dataset particionado.
En STEP2, el load module TEST que reside en la biblioteca load library USER.ONE ser
ejecutado. El cdigo de condicin de la parmetro hace que este paso sea salteado si el
cdigo de condicin de cualquier??? paso anterior es mayor que 8.
Otros Ejemplos
//ddname DD DSN=dataset.name,
// DCB=(BLKSIZE=b,DEN=d,LRECL=n,RECFM=r,TRTCH=t),
// DISP=(current-status,normal-disposition,abnormal-disposition),
// LABEL=(file,label-type,,processing-type),
// SPACE=(type,(primary,secondary,directory-blocks),RLSE),
// UNIT=device,
// VOL=SER=name
//stepname.ddname DD dsname
Los programas tales como FORTRAN, COBOL, etc. requieren a veces un prefijo para la
identificacin adicional. El nombre de DD entonces sera precedido por el nombre del
calificador, de Stepname, y de un punto.
nombre de DD
Identifica la sentencia de DD. Su valor es determinado por el programa que est
siendo ejecutado (ASSGN).
DD
Identifica la sentencia como una sentencia de definicin de datos, que le siguen
datos inmediatamente.
*
Especifica que a continuacin se especificarn los datos de entrada; ningn
parmetro con palabra clave puede seguir. Los datos no pueden contener ningn
registro que comience con // o /*.
//C.SYSIN DD *
DATA
Especifica que a continuacin se especificarn los datos de entrada; parmetros de
palabra clave pueden seguir al parmetro posicional DATA. Los datos pueden
contener los registros que comienzan con //, pero ninguno que comience con /*.
DLM
Cambia el delimitador del JCL /* a un valor especificado hasta que esos caracteres
sean encontrados en las columnas 1 y 2; el delimitador es luego reseteado a /*.
xx
Pueden ser cualquiera de dos letras, nmeros, o los caracteres nacionales (@ # $).
Usted debe poner estos 2 caracteres como la ltima lnea de su input para este
archivo.
//SYSIN DD DATA,DLM=AA
DUMMY
Especifica que si el archivo es un archivo de salida, la salida debe ser desechada. Si
el archivo es un fichero de entrada, especifica que est vaco.
SYSOUT
Especifica la disposicin de un dataset de salida. Ejemplos del SYSOUT:
DSN
dataset.name especifica el nombre de un dataset que va a ser utilizado.
DCB
Escribe el dataset.
BLKSIZE
Especifica el nmero de bytes (caracteres) por bloque, donde b es un mltiplo del
LRECL.
DEN
Especifica la densidad de la cinta (1600 BPI o 6250 BPI), donde d es 3 para 1600
BPI y 4 para 6250 BPI. Si se omite la DEN= d, el default para escribir en el primer
archivo de una cinta es DEN=4 (6250 BPI).
LRECL
Especifica la longitud del registro lgico(n) para los archivos de longitud fija o
variable; omitir LRECL para los archivos de longitud indefinida.
RECFM
Especifica el formato de registro. Los valores comunes para r son U, para los
archivos de longitud indefinida, V o VB, para los archivos de longitud variable o
variable bloqueados, F o FB, para los archivos de longitud fija o fijo bloqueados, y
FA, FBA, o VBA, para los archivos fijos, fijo bloqueados, o variable bloqueados
con un carcter de control de impresora como el primer byte de datos.
TRTCH
Por default, las cintas de cartucho son escritas en formato comprimido. Si usted
necesita crear una cinta de cartucho no-comprimida debe especificar
TRTCH=NOCOMP. Esto es aplicable solamente a las cintas de cartucho y no a las
cintas del carrete.
DISP
Especifica el estado actual de un data set e indica la disposicin del dataset al
finalizar un paso de un JOB.
Cul es el default??
normal-disposition
Especifica la disposicin del dataset despus de la terminacin satisfactoria del
trabajo. DELETE suprime el dataset, KEEP conserva el dataset, PASS se guarda el
data set para un proceso posterior, CATLG el dataset es mantenido y se crea o
actualiza una entrada en el catlogo, y UNCATLG el data set es mantenida y es
removida la entrada en el catlogo. Si el estado actual es NEW, la disposicin
normal default es DELETE. Si el estado actual es MOD, OLD, o SHR, la disposin
normal es KEEP.
abnormal-disposition
Especifica la disposicin del dataset para los trabajos que terminan anormalmente.
Los valores para la disposicin anormal son iguales que la disposicin normal a
menos que PASS no sea permitido.
El default de disposicin anormal es el valor de la disposicin normal.
DELETE el data set se suprime en este proceso.
KEEP el dataset se mantiene intacto.
CATLG el dataset es mantenido y se crea o actualiza una entrada en el catlogo
UNCATLG el data set es mantenida y es removida la entrada en el catlogo.
Estado Finalizacin
Actual Anormal por Default
NEW DELETE
MOD, OLD, SHR KEEP
LABEL
Especifica el nmero de archivo y el tipo de rtulo para un data set de cinta.
Adems, el parmetro LABEL puede tambin especificar cmo un dataset debe ser
procesado (entrada o salida). El default de LABEL es LABEL=(1, SL).
archivo
Especifica un nmero que describe la posicin del dataset relativo a otros datasets
de la cinta.
etiqueta-tipo
Incluye el SL para los rtulos estndar de IBM, el AL para los rtulos del estndar
ANSI, NL cuando no existen rtulos, y BLP para baipasear el procesamiento de los
rtulos.
procesamiento-tipo
Puede ser IN u OUT. IN especifica que un dataset debe ser procesado como input
solamente. OUT especifica que un dataset debe ser procesado como output
solamente.
SPACE
Especifica el espacio de disco para un dataset.
tipo
Es la unidad en que se mide el espacio y puede ser CYL (cilindros), TRK (pistas), o
bytes por bloque.
primario
Es la cantidad de espacio que se asignar inicialmente para el dataset.
secundario
Es la cantidad de espacio adicional que se reservar si la asignacin primaria no es
suficiente. La cantidad especificada por secundario ser agregada a la cantidad
especificada por el primario hasta quince veces si es que hay suficiente espacio en
el volumen.
Bloque-de-directorio
Es el nmero de los bloques de directorio que se utilizarn en un data set
particionado (PDS); Bloque-de-directorio se omite para un dataset secuencial. Una
buena regla es especificar un bloque de directorio para cada seis miembros en
un PDS.
El parmetro del RLSE libera cualquier espacio no usado despus de que un trabajo
haya terminado; el espacio no usado no se libera si se omite este parmetro.
UNIT
Especifica si el dataset va a residir en disco o en cinta; el dispositivo puede ser
SYSDA para los datasets de disco, TAPE para los datasets de cinta de cartucho, o
REEL para los datasets (redondos) de cinta del carrete.
VOL=SER
Especifica el volumen en el cual el dataset reside; el nombre es un pack de disco o
un nombre de cinta. Este parmetro se puede omitir para un data set catalogado
existente. Si VOL=SER = nombre es omitido para un NEW data set de disco, por
default se toma un disco de trabajo pblico; un dataset en este tipo de disco de
trabajo pblico ser suprimido a las 48 horas si el dataset es menor de 6 cilindros o
24 horas si el dataset es ms grande de 6 cilindros. VOL=SER = nombre se debe
especificar para los datasets de cinta.
En un job que cuenta con mltiples pasos donde una cinta va a ser accedida en
varios de dichos pasos, usted debe utilizar el formato siguiente:
VOL=(,RETAIN,SER=name)
El parmetro de la RETAIN evita desmontar una cinta que deba ser nuevamente
montada en un paso posterior.
Esta sentencia de definicin de datos informa al sistema operativo que los datos de
entrada de SYSIN estn situados en un data set catalogado
U19999A.PROGRAM.DATA y el data set pueden ser accedidos por otros jobs. (el
parmetro DISP es el nico parmetro requerido para un dataset catalogado,
prealocado.)
El Calificador GO. Que precede el nombre de DD SYSIN indica que esta sentencia
de definicin de datos es utilizada en un paso de job con el stepname GO.
Esta sentencia de definicin de datos especifica que los datos definidos bajo el
nombre OUTPUT son dirigidos a la impresora laser
Los datos sern impresos en la forma 9021 (8 1/2 "x el 11", paisaje, 132 caracteres
por lnea, papel de barra negra).
CLASS A especifica que los datos estn impresos en ambos lados del papel y que
tres agujeros estn perforados en la tapa del frente de la pgina.
//NEWDATA DD DSN=U99999A.NEWDATA.CNTL,UNIT=SYSDA,
// DISP=(NEW,CATLG),SPACE=(TRK,(5,5)),
// DCB=(LRECL=80,BLKSIZE=9040,RECFM=FB)
El parmetro UNIT especifica que el dataset est situado en uno de los discos del
sistema.
El parmetro SPACE especifica que cinco pistas iniciales de espacio de disco estn
asignadas con incrementos de cinco pistas agregadas segn lo necesitado.
//SYSUT2 DD DSN=U99999A.OLDDATA.CNTL,UNIT=TAPEC,
// DISP=(OLD,KEEP),VOL=SER=C12345,LABEL=5
El parmetro DISP comunica al sistema operativo que este dataset ya existe y que
va a ser retenido luego de que finalice este paso del job.
El parmetro UNIT indica que el dataset est situado en una cinta de cartucho.
Declaraciones de DD Especiales
JOBLIB DD
Define una librera privada que es la primera que se accede para buscar un programa
especificado en el EXEC PGM = programa. Se coloca inmediatamente despus de
la sentencia JOB y es aplicable a todos los pasos del job.
STEPLIB DD
Define una librera privada que es la primera que se accede para buscar un programa
especificado en el EXEC PGM = programa. Se coloca inmediatamente despus de
la sentencia EXEC, es aplicable solamente para ese paso, overradeando lo definido
en la sentencia JOBLIB DD.
SYSUDUMP DD
Se utiliza para grabar el vuelco del rea de almacenamiento de un programa
correspondiente a un job implicado en una finalizacin anormal.
SYSABEND DD
Produce un vuelco ms grande, ms detallado que una sentencia SYSUDUMP DD
y debe ser utilizado solamente para las cancelaciones del sistema.
Ejemplos:
ste es un ejemplo de una sentencia de definicin de datos que crea un dataset particionado
cuyo nombre es USER.PROG.LIB.
//NEWNAME DD DSN=USER.PROG.LIB,DISP=(NEW,CATLG,DELETE),
// UNIT=SYSDA,DCB=(BLKSIZE=6320,LRECL=80,RECFM=FB),
// SPACE=(CYL,(1,1,1),RLSE)
Sentencia /*
La sentencia /* significa fin de datos
Si se omite, cualquier sentencia que comience con // se toma como fin de datos
Sentencia //
La sentencia // significa el final de un JOB.