Tso Para Desarrolladores Nr

374
5/23/2018 TsoParaDesarrolladoresNr-slidepdf.com http://slidepdf.com/reader/full/tso-para-desarrolladores-nr 1/374  TSO para desarrolladores MVS JCL CLIST ISPF José María Peco Palacios ************************* (2/7/1995)

description

Apuntes con varios ejemplos de JCL's

Transcript of Tso Para Desarrolladores Nr

  • TSO para desarrolladores - MVS - JCL - CLIST - ISPF

    Jos Mara Peco Palacios *************************

    (2/7/1995)

  • TSO para desarrolladores: TABLA DE CONTENIDOS Autor: Jos M. Peco

    Pgina 2 de 374

    Tema 1: MVS 1.1 Generalidades 1.2 Versiones del MVS 1.3 Componentes principales del MVS 1.4 Usuarios de MVS 1.5 Componentes de Hardware 1.5.1 Procesadores y subsistemas de Canales 1.5.2 Dispositivos de Memoria Auxiliar. 1.5.3 Perifricos y consolas 1.5.4 Unidades de control 1.6 JES: Subsistema dedicado a la gestin de trabajos Batch 1.6.1 Iniciadores 1.6.2 SPOOL 1.6.3 Fichero de check-point 1.7 Los ficheros en MVS 1.7.1 Tipos de organizacion en ficheros no-VSAM 1.7.2 Tipos de registro 1.7.3 Organizacion VSAM 1.7.4 Acceso y recuperacin de datos 1.8 Libreras que contienen el MVS 1.9 Bibliografa

  • TSO para desarrolladores: TABLA DE CONTENIDOS Autor: Jos M. Peco

    Pgina 3 de 374

    Tema 2 : JCL 2.1 Introduccin 2.2 Definiciones previas 2.3 Formato general de las sentencia del JC 2.3.1 Etiqueta 2.3.2 Operacin 2.3.3 Operadores o parmetros 2.4 Sentencia JOB 2.4.1 Informacion de contabilidad 2.4.2 Nombre del programador 2.4.3 ADDRSPC 2.4.4 CLASS 2.4.5 COND 2.4.6 MSGCLASS 2.4.7 MSGLEVEL 2.4.8 NOTIFY 2.4.9 PERFORM 2.4.10 REGION 2.4.11 RESTART 2.4.12 TIME 2.4.13 TYPRUN 2.5 Sentencia EXEC 2.5.1 PGM 2.5.2 PROC 2.5.3 ACCT 2.5.4 ADDRSPC 2.5.5 COND 2.5.6 PARM 2.5.7 REGION 2.5.8 TIME 2.6 Sentencia DD : Definicin de datos 2.6.1 * (asterisco) 2.6.2 DATA 2.6.3 DLM 2.6.4 DUMMY 2.6.5 SYSOUT ( para ficheros de impresin) OUTLIM=n COPIES=n HOLD=YES DEST=dispositivo DCB=(par1[,par2[...]]) UCS (Universal Character Set) FCB (Form Control Buffer) BURST=Y CHARS=(tabla0[,tabla1[,tabla2[,tabla3]]]) MODIFY=(modulo,tabla_n) 2.6.6 COPIES (salida de impresin) 2.6.7 DEST ( ficheros de impresin ) 2.6.8 HOLD (para ficheros de impresin ) 2.6.9 FREE (para ficheros de impresin y de datos) 2.6.10 DSNAME (DSN) 2.6.11 DDNAME

  • TSO para desarrolladores: TABLA DE CONTENIDOS Autor: Jos M. Peco

    Pgina 4 de 374

    2.6.12 DISP 2.6.13 SPACE 2.6.14 VOLUME 2.6.15 UNIT 2.6.16 DCB 2.6.17 DATACLASS 2.6.18 LABEL 2.7 Sentencia OUTPUT 2.8 Sentencias DD especiales 2.9 Procedimiento 2.10 Utilidades 2.10.1 IEFBR14 2.10.2 IEBGENER 2.10.3 IEBCOPY 2.10.4 IEBPTPCH 2.10.5 IEBCOMPR 2.10.6 IEBUPDATE 2.10.7 IEHINITT 2.10.8 IEHLIST 2.10.9 IEHPROGM 2.11 Programas especiales 2.11.1 IEKFJ01 2.11.2 SORT SORT MERGE RECORD ALTSEQ INCLUDE / OMIT INREC / OUTREC SUM 2.11.3 IDCAMS Catalogo Fichero generacional (GDG) Copiar ficheros Listar ficheros Borrar ficheros 2.11.4 PRINTDS (comando de TSO) 2.12 Anexo: Listar un directorio (IEBPTDIR) 2.13 Anexo: LIstado de la VTOC y el directorio de un PDS IEHLIST.1

  • TSO para desarrolladores: TABLA DE CONTENIDOS Autor: Jos M. Peco

    Pgina 5 de 374

    Tema 3 : CLIST 3.1 Introduccin 3.2 Libreras de CLISTs 3.3 Como se invoca a un procedimiento de CLIST 3.3.1 De forma explcita: 3.3.2 De forma implcita 3.3.3 Desde READY 3.3.4 Desde otra clist 3.3.5 Desde un programa de aplicacion 3.4 Variables 3.4.1 Variables de control 3.4.2 Variables de usuario simples 3.4.3 Variables de usuario compuestas 3.4.4 Uso del doble & (&&) : Variables anidadas 3.4.5 Variables indexadas 3.5 Operadores y expresiones 3.6 Etiquetas 3.7 Sentencias del lenguaje de CLIST 3.7.1 CONTROL : Estable opciones para el proceso de la CLIST MSG / NOMSG PROMPT / NOPROMPT LIST / NOLIST CONLIST / NOCONLIST SYMLIST / NOSYMLIST FLUSH / NOFLUSH MAIN END(cadena) 3.7.2 PROC : Primera instruccin de una CLIST 3.7.3 ERROR : rutina para el tratamiento de errores 3.7.4 GOTO : salto incondicional 3.7.5 EXIT : Salir de la clist 3.7.6 RETURN : Retornar al punto desde el que se bifurco a una rutina 3.7.7 WRITE : Escribir datos en el terminal 3.7.8 WRITENR : Escribir en el terminal y no ejecutar el 3.7.9 READ : Lee datos desde el terminal 3.7.10 IF-THEN-ELSE : Para bifurcacion 3.7.11 SET : permite asignar valores a variables 3.7.12 DO-WHILE END : Repetitiva mientras se cumple una condicin. 3.7.13 OPENFILE : Abrir fichero 3.7.14 GETFILE : Lee el siguiente registro de un fichero secuencial 3.7.15 PUTFILE : Escribe un registro en un fichero fsico. 3.7.16 CLOSEFILE : Cierra el fichero 3.7.17 ATTN : Rutina de ATENCION 3.7.18 TERMIN 3.7.19 READDVAL : Separar la informacion contenida en &SYSDVAL 3.7.20 GLOBAL : define variables globales 3.8 Comandos de TSO 3.9 Funciones estandar 3.9.1 &DATATYPE : Determinar tipo de variable 3.9.2 &EVAL : Evaluar el contenido de una expresin 3.9.3 &LENGTH : Determinar la longitud de una expresin

  • TSO para desarrolladores: TABLA DE CONTENIDOS Autor: Jos M. Peco

    Pgina 6 de 374

    3.9.4 &NRSTR : Determina que no se realicen sustituciones con && 3.9.5 &STR : Determina que el contenido del argumento es una cadena 3.9.6 &SUBSTR : Extrae una subcadena de una cadena o de una variable 3.9.7 &SYSCAPS : Pasa a maysculas el argumento 3.9.8 &SYSDSN : Determina si existe como dataset el argumento 3.9.9 &SYSINDEX : Buscar un carcter en una cadena 3.9.10 &SYSLC : Pasa a minusculas el argumento pasado 3.9.11 &SYSNSUB : Determina el nivel de sustituciones. 3.10 Ejemplos 3.10.1 JMPALO00 : Paso a fichero de las libreras alocadas 3.10.2 DISPLAY1 : visualizar en panel el fichero generado con JMPALO00 3.10.3 JMPLIB00 : capturar los miembros de una libreria 3.10.4 JMPLIB05 : 3.10.5 LISTAR : Listar por impresora, con IEBGENER un fichero 3.10.6 NAT

  • TSO para desarrolladores: TABLA DE CONTENIDOS Autor: Jos M. Peco

    Pgina 7 de 374

    Tema 4 : DIALOGOS ISPF 4.1 Generalidades 4.2 Variables 4.2.1 Variables del sistema ZCMD ZSEL ZPRIM ZPARENT 4.2.2 Variables de Usuario 4.2.3 Variables de control 4.3 Sentencias 4.3.1 Sentencias de asignacin 4.3.2 Sentencias de verificacin 4.3.3 Sentencia IF 4.3.4 Sentencia VGET 4.3.5 Sentencias VPUT 4.3.6 Sentencias REFRESH 4.4 Mensajes 4.5 Funciones 4.5.1 Funcin TRUNC 4.5.2 Funcin TRANS 4.5.3 Funcin PFK 4.5.4 Funcin LVLINE 4.6 Panel 4.6.1 Seccin ATTR 4.6.2 Seccin BODY 4.6.3 Seccin INIT 4.6.4 Seccin PROC 4.6.5 Seccin REINIT 4.6.6 Seccin MODEL 4.6.7 Seccin END 4.7 Tablas ISPF 4.8 Funcin 4.8.1 Servicios Generales DISPLAY SETMSG SELECT 4.8.2 Servicios para el Tratamiento de tablas TBDISPL TBCREATE TBOPEN TBSORT TBSTATS

  • TSO para desarrolladores: TABLA DE CONTENIDOS Autor: Jos M. Peco

    Pgina 8 de 374

    TBQUERY TBSAVE TBCLOSE TBEND TBERASE 4.8.3 Tratamiento de filas TBADD TBDELETE TBEXIST TBGET TBMOD TBPUT TBSARG TBSCAN TBVCLEAR 4.8.4 Servicios para el posicionamiento TBTOP TBSKIP TBBOTTOM 4.8.5 De FILE TAILORING FTOPEN FTINCL FTCLOSE FTERASE 4.8.6 De variables VGET VPUT 4.8.7 Definicin de libreras 4.8.8 Otros servicios 4.9 Tutorial

  • TSO para desarrolladores: TABLA DE CONTENIDOS Autor: Jos M. Peco

    Pgina 9 de 374

    4.10 Ejemplos: 4.10.1 Pasar un archivo particionado o PDS a fichero secuencial. Clist principal: Panel: INTUTIPS Esqueleto : INTUTIPS 4.10.2 Listar archivo por impresora: Panel: Clist LISTAR Formato:

  • TSO para desarrolladores: PRLOGO Autor: Jos M. Peco

    Pgina 10 de 374

    Prologo El pasado ao, al guardar todos los apuntes y anotaciones que haba ido recopilando a lo largo de los ltimos aos, pues cambiaba de trabajo y de entorno, se me ocurri la idea de escribir este libro. Mis pretensiones no eran otras que las de poder ofrecer a todos aquellos que se incorporan ao tras ao a este mercado de trabajo, esa experiencia que tantas veces eche en falta, ya que no dispona de ningn libro que me pudiera contestar los interrogantes que se planteaban segn la situacin. Desde que termine la carrera, y de esto hace ya tiempo, siempre he trabajado en el entorno de grandes sistemas, pero en la parte correspondiente a desarrollo de aplicaciones. Y, por curioso que parezca, es en estas grandes instalaciones, donde bien por tener los manuales en el departamento de sistemas, o bien porque estos estn en ingls, se echa de menos un libro de consulta, que supla los manuales de usuario, guas de referencia y que tenga ejemplos que resuelvan las dudas mas elementales de todos aquellos que para algn tema puntual se salen fuera del entorno en el que trabajan para entrar en el sistema. Como seguramente el lector conoce, los grandes sistemas de ordenadores tienen a su personal del centro de proceso de datos (CPD) dividido en dos mundos, el mundo de sistemas, y el de los desarrolladores. Tanto unos como otros reciben formacin especifica de los temas que necesitan para desarrollar su trabajo. Pero muchas veces los desarrolladores necesitan hacer cosas que, por desconocimiento del mundo de sistemas, son consideradas imposibles o son resueltas dando demasiadas vueltas. Este libro va dirigido precisamente a los desarrolladores, si bien el personal que se inicie en sistemas puede beneficiarse de su uso por tratar profusamente el sistema de programacin interactiva en TSO (Time Sharing Option) de IBM El libro se compone de 4 temas, que precisamente son los que un desarrollador que trabaje bajo TSO debe conocer. Y, posiblemente los temas tratados no tengan la profundidad ni expongan todas las opciones que cada una de las sentencias cuente, pero para eso estn los manuales de referencia, pero si puedo asegurar, desde mi modesta opinin, que con lo aqu expuesto se pueden desarrollar utilidades 'muy tiles' en cualquier entorno TSO, ya que se hace uso nicamente de comandos, instrucciones y parmetros estndar.

  • TSO para desarrolladores: PRLOGO Autor: Jos M. Peco

    Pgina 11 de 374

    El primer tema: MVS es un tema de introduccin que no pretende explicar el sistema operativo, sino simplemente posicionar al lector en la terminologa y en los elementos que se referenciaran en los temas posteriores. El segundo tema: JCL trata el lenguaje usado para el control de trabajos BATCH. Este lenguaje es uno de los mas usados en cualquier instalacin, pero no siempre bien aprovechado ya que se usan nicamente las opciones bsicas. El tercer tema se dedica al lenguaje de comandos CLIST. Este es un lenguaje que tradicionalmente es usado por el personal de sistemas para preparar entre otras cosas las utilidades y el entorno que necesita todo el personal que quiera hacer uso del ordenador. Es un lenguaje sencillo, no requiere procesos de compilacin, y su conocimiento beneficiara y mejorara el rendimiento del personal de desarrollo pues permitir simplificar y personalizar las labores cotidianas. El ultimo tema se dedica a estudiar los servicios de ISPF, siendo este un producto de IBM para facilitar el uso de las utilidades del sistema operativo, tambin es un elemento mas del sistema que permite la creacin de dilogos mediante una adecuada combinacin de procedimientos de clist y servicios ISPF. Es muy fcil su implementacin y muy elevado el rendimiento obtenido. Todo este conjunto he procurado documentarlo con un gran numero de ejemplos que sirvan adems de utilidades con las que espero hacer mas inteligible y amena su lectura. Por ultimo, quiero desde aqu, dar las gracias a todos aquellos que me han ayudado en la confeccin de este libro, y muy especialmente a Ferran Palau i Fernandez.

  • TSO para desarrolladores: MVS Autor: Jos M. Peco

    Pgina 12 de 374

    Tema 1 : MVS 1.1 Generalidades El MVS es el sistema operativo de IBM para sus grandes procesadores. Normalmente, los ordenadores que utilizan este S.O. suelen estar destinados a la gestin masiva de datos permitiendo funciones de multiprogramacin y multiproceso, y dan soporte a uno o varios sistemas de teleproceso. El termino de MULTIPROGRAMACIN se da a aquellos sistemas que permiten la ejecucin simultanea de varios procesos en el ordenador, repartiendo el tiempo de ejecucin entre las distintas secuencias de instrucciones de cada uno de los programas. Mientras que el termino de MULTIPROCESO se aplica a aquellos sistemas que por tener varios procesadores, tienen la capacidad de ejecutar dos o mas instrucciones en el mismo instante, y en consecuencia, pueden ejecutar dos o mas procesos al mismo tiempo. Por otra parte, como cualquier otro sistema operativo, este sistema incorpora herramientas interactivas para facilitar la gestin de las funciones principales de un Centro de Proceso de Datos (CPD). El nombre de MVS se corresponde con el acronimo de Mltiple Virtual Storage, recogiendo este nombre de su funcionamiento ya que para su gestin se basa en los conceptos de paginacin y memoria virtual. En general, en una instalacin de MVS, se pueden encontrar los siguientes elementos: - MVS bsico (MVS release 3.8) - ISPF Interactive System Productivity Facilitys Este es un producto que se ejecuta bajo TSO, contiene un editor y numerosos programas de utilidad que facilitan el uso de numerosos servicios que permiten el desarrollo de dilogos interactivos. - Software especifico para el mantenimiento de subsistemas especficos, capaces de optimizar entre otros, la gestin de ejecucin de los trabajos Batch o la de almacenamiento de los datos. El mantenimiento del MVS es realizado directamente por IBM, pudiendo optarse por los mtodos de: - Actualizacin de las mejoras segn van apareciendo (PUT) - Sustitucin total del MVS (CBIPO)

  • TSO para desarrolladores: MVS Autor: Jos M. Peco

    Pgina 13 de 374

    1.2 Versiones del MVS Las diferentes versiones de los productos que acompaan al MVS bsico, son las que establecen las diferentes versiones de este S.O.. As, cuando se habla de: - la versin 1 de MVS, con sus diferentes revisiones (releases), se esta hablando de lo que comnmente se conoce como MVS/370, pero se corresponde con el OS/VS1 versin 2, e introduce el concepto de Espacio de direcciones. - la versin 2 de MVS ms sus diferentes releases componen el MVS/XA. (eXtended Architecture). Esta realmente fue una revisin de la versin anterior para solucionar la gran cantidad de problemas presentados en aquella. El MVS/XA es una versin que afecta tanto al hardware como al software ya que la memoria virtual pasa de 16 Mb a 2 Gb, necesitando 4 bytes para direccionar cada posicin de memoria. - la versin 3 se corresponde con lo que se conoce como MVS/ESA (Enterprise System Architecture). Esta versin se diferencia de la anterior, entre otras cosas, en que puede direccionar hasta un mximo de 15 espacios de direcciones de 2 Gb. As mismo esta versin introduce el uso de microcodigo.

  • TSO para desarrolladores: MVS Autor: Jos M. Peco

    Pgina 14 de 374

    1.3 Componentes principales del MVS Como ya se ha dicho, el MVS es un compendio de rutinas del sistema operativo base, utilidades, subsistemas y productos, y todo el conjunto tiene por objetivo el resolver las necesidades planteadas por toda la instalacin. Los subsistemas y productos ms importantes son: VTAM Virtual Telecommunications Access Method Este mtodo de acceso para comunicaciones fue creado por IBM a fin de aprovechar las nuevas capacidades del Hardware del S/370, de la memoria virtual, y de los terminales y unidades de control inteligentes. TSO Time Sharing Operation (Operaciones de tiempo compartido). Es un subsistema de IBM para poder acceder de forma interactiva a los servicios de MVS. Normalmente va acompaado de un producto a base de paneles, para hacer ms sencillo su manejo. Este producto es ISPF/PDF. CICS Customer Information Control System (Sistema de control de informacin de clientes) Sistema de base de datos y comunicacin de datos (DB/DC) de uso general para procesos interactivos. Suelen disponer de este sistema de teleproceso las instalaciones que trabajan con COBOL como lenguaje de programacin. IMS Information Manager System (Sistema de administracin de informacin) Fue uno de los grandes productos de IBM en sistemas DB/DC (DataBase/DataComunication). Suelen disponer de este sistema de teleproceso las instalaciones que trabajan con DL/I como base de Datos y PL/I como lenguaje de programacin. DL/I Gestor de base de datos jerrquica DB2 Data Base 2 Gestor de base de datos relacional. JES Job Entry Subsistem (Subsistema de entrada de trabajos) Subsistema de entrada de trabajo (Gestor de trabajo por lotes). CONSOLAS Terminales maestros que controlan y gobiernan el sistema (Herramientas de operacin).

  • TSO para desarrolladores: MVS Autor: Jos M. Peco

    Pgina 15 de 374

    1.4 Usuarios de MVS Se entiende por usuario de un sistema operativo MVS, todo aqul que necesita y obtiene recursos de ste. Este concepto de usuario de MVS esta ntimamente relacionado con los tipos de trabajos que se van a ejecutar en el sistema, y que por lo tanto inciden en el S.O., por sus propias necesidades. 1.- Productos y subsistemas del propio MVS (Programas y Subsistemas necesarios para el funcionamiento de MVS, JES, VTAM, CICS, etc.) que van a resolver ciertas necesidades de los programas de aplicacin. 2.- Usuarios de TSO. Usuarios que conectados a travs de un terminal usan los servicios de MVS a travs del producto interactivo TSO (tiempo compartido). 3.- Programas batch y aplicaciones, tanto por lotes como en modo on-line que accedern a la informacin residente en el ordenador, con el objeto de proporcionar unos resultados.

  • TSO para desarrolladores: MVS Autor: Jos M. Peco

    Pgina 16 de 374

    1.5 Componentes de Hardware Algo vital en un sistema de proceso de datos es el entramado hardware donde se van a procesar y ejecutar todos los programas de la instalacin. Se puede distinguir los siguientes componentes como elementos principales: 1.5.1 Procesadores y subsistemas de Canales MVS/ESA, est soportado por ordenadores IBM de la familia 3090 en sus diferentes versiones, y la familia 4381 modelos 91 y 92. Estos equipos pueden ser monoprocesadores (un solo procesador en mquina), cuyos modelos principales son: ES/3090 100 modelos S, ES/3090 150 modelos E y S. ES/3090 180 modelos E y S. ES/4381 modelos 90 y 91 E. O bien pueden ser multiprocesadores (varios procesadores en mquina) modelos: ES/3090 250S, 280E, 380E, 400E y S, 600E, y S. El subsistema de canales se puede definir como una pequea mquina (con su software y hardware) particular, que libera al procesador de las funciones de operacin de E/S pues este subsistema es el encargado de realizarlas de una manera autnoma, aunque limitada, pues su software solo le permite ejecutar las operaciones siguientes: - leer un bloque - escribir un bloque - leer hacia atrs - analizar - controlar (salto de lnea en un impresora) - transferir en canal (bifurcar)

  • TSO para desarrolladores: MVS Autor: Jos M. Peco

    Pgina 17 de 374

    1.5.2 Dispositivos de Memoria Auxiliar. Cualquier programa, para poder ejecutarse debe cargarse previamente en la memoria principal del ordenador, pero esta memoria es cara, voltil, pequea y adems no es suficiente para albergar la gran cantidad de datos, que necesita un C.P.D. para su funcionamiento. Por eso, todos estos datos son alojados en dispositivos auxiliares, y sern pasados a memoria central para su ejecucin en su momento adecuado. Entre estos dispositivos auxiliares se pueden destacar los siguientes: 1. DISCOS Son los dispositivos de mayor capacidad. Un disco IBM, es en realidad un armario con dos volmenes independientes. Los modelos existentes son: 1 generacin 2311, Tenan la caracterstica de ser 2314 removibles y la capacidad de cada mdulo 2319 era de 29 Mb. 2 generacin 3330 Capacidad : 100 Mb Son semiremovibles 3 generacin 3340 34 Mb 3344 70 Mb 3350 3370 3375 409 Mb No son removibles 4 generacin 3380 su capacidad depende de la densidad, oscilando entre 630 a 1890 MB 2. Unidades de Cinta : 3420 Son unidades que permiten la grabacin y lectura de la informacion soportada en cinta redonda, siendo este un almacenamiento externo con una capacidad mxima de 160 Mb. Entre sus caractersticas se puede destacar que utiliza el mtodo de columna de vaco para preservar la rotura de la cinta. 3. Unidades de Cartucho: 3480 Son dispositivos de almacenamiento externo, parecidos a las cintas, pero con mayor velocidad de grabacin y mayor capacidad de almacenamiento (200 Mb). Reciben el nombre de cinta cuadrada.

  • TSO para desarrolladores: MVS Autor: Jos M. Peco

    Pgina 18 de 374

    1.5.3 Perifricos y consolas 1.- Impresoras A un ordenador IBM se puede conectar todo tipo de impresoras, locales 3800 y remotas 3274, 3825, 4250, etc. 2.- Terminales A un ordenador IBM se puede conectar cualquier tipo de terminal para recoger o sacar datos de ste en modo interactivo u on-line. Hay que tener en cuenta que hoy existen emuladores de todo tipo de terminal que facilitan esta conexin. Las conexiones que se pueden hacer son locales y remotas, es decir, a travs de un controlador de comunicaciones, o utilizando la red telefnica como medio de transmisin de datos. 3.- Consolas Las consolas son unos terminales especiales, conectados directamente al ordenador y que sirven para el gobierno de todo el sistema. Lo normal es que exista una consola maestra y varias alternativas para realizar funciones especficas o bien como backup de la maestra.

  • TSO para desarrolladores: MVS Autor: Jos M. Peco

    Pgina 19 de 374

    1.5.4 Unidades de control Son elementos hardware que controlan el funcionamiento y el acceso a los dispositivos, y son usados por el subsistema de canales. 1. Unidad de control de discos Existen varios modelos de estas unidades, entre los que se encuentran los tipos 3880 y 3990. De cada una de esta unidades pueden colgarse de 16 a 32 armarios de discos, por lo tanto controlan de 32 a 64 volmenes. 2. Unidades de control de cintas y cartuchos Estas unidades son las encargadas de controlar la grabacin y recuperacin de datos de las unidades de cintas y cartuchos. Entre estas unidades tenemos los controladores de cinta 3480 y 3422 de IBM.

  • TSO para desarrolladores: MVS Autor: Jos M. Peco

    Pgina 20 de 374

    1.6 JES: Subsistema dedicado a la gestin de trabajos Batch Su nombre proviene del acronimo de Job Entry Subsystem. Es decir es el encargado de gestionar la entrada de todos los trabajos. En los primeros sistemas operativos, este era el programa encargado de controlar las lectoras de tarjetas o fichas perforadas, y las impresoras; y como consecuencia ha heredado la funcin de interpretar las sentencias que se le envan como entrada para la ejecucin de un trabajo. Existen dos versiones del JES: JES2 y JES3, pudiendo ejecutarse cualquiera de ellas con MVS. El JES2 es el resultado de la revisin del programa HASP (Houston Automatic Spooling Priority) del MVT (Multiprogramacin con numero variable de tareas) mientras que el JES3 es el resultado de la revisin del programa ASP. Para ejecutar trabajos batch en MVS se puede utilizar cualquiera de las dos formulas siguientes: - ejecutar el comando de TSO SUBMIT para enviar a la cola de entrada de trabajos del JES el JCL que sirve de parametro a dicho comando; o - Escribiendo mediante cualquier programa o utilidad un JCL sobre la cola de entrada de trabajos del JES. Las principales funciones del JES son: - Gestin de entrada de trabajos en los iniciadores, en base a sus clases. - Verificacin de la validez de la sintaxis del JCL. - Reserva y asignacin de recursos (Fichas DD del JCL). - Interfase con MVS durante la ejecucin de trabajos. - Gestin de salidas impresas en base a las clases de salidas de los diferentes impresos. Los tres componentes principales del JES son: - los iniciadores, - el spool y - el fichero de check-point.

  • TSO para desarrolladores: MVS Autor: Jos M. Peco

    Pgina 21 de 374

    1.6.1 Iniciadores Los JOBs, mediante el parmetro CLASS, tienen asignado la clase de entrada del JES en la que se debe ejecutar. Los iniciadores son colas que tienen asignadas unas clases de proceso, y sirven para seleccionar trabajos a fin de repartir la carga de trabajos batch del sistema. La definicin de los iniciadores y la asignacin de las distintas clases a cada uno de ellos es misin del administrador del sistema. Las clases se definen con una letra o un nmero. Ejemplo : Supuesto que se ha submitido el JOB siguiente: //XXXXXXXX JOB CLASS=K ... Y que el sistema tiene definidos las siguientes relaciones: Iniciador Clases trabajos 1 ABC 8 2 ACK 15 3 AD 3 4 CE 5 El sistema podr asignar dicho JOB solo al iniciador 2 pues es el unico que puede ejecutar los trabajos de la cola K. Suponiendo que en ese momento se encuentren 15 trabajos ejecutndose en dicho iniciador, el trabajo se encolara a la espera de tener hueco. Si en al mismo tiempo se submite otro trabajo para la cola A, este podr ser asignado a cualquiera de los inicadores 1,2 o 3. Asi, si el iniciador 1 esta ejecutando menos de 8 trabajos. ser asignado a este JOB; en caso contrario, se examinara el 2, que esta con sobrecarga. por lo que se examina el iniciador 3, que como no tiene trabajos en ejecucin, ser quien finalmente ejecute el trabajo.

  • TSO para desarrolladores: MVS Autor: Jos M. Peco

    Pgina 22 de 374

    1.6.2 SPOOL El Spool es un fichero gestionado y controlado por el JES y que tiene por misin es contener todos los trabajos que estn: - ejecutndose, - en espera de ejecutar, o - en espera de salida. Para poder realizar esta gestin, el spool se organiza formando colas, entre las que cabe destacar: COLAS DE ENTRADA: En esta cola estn todos los trabajos que se encuentran esperando un iniciador libre asignado a su clase para poder ejecutarse. Los trabajos se encuentran clasificados por la identificacin de la cola asignada al JCL mediante el parmetro CLASS de la ficha JOB. COLAS DE EJECUCION: En esta cola se encuentran los trabajos que en ese momento estn en ejecucin. Tambin se encuentran los trabajos en esta cola clasificados por clase. COLAS DE SALIDA: En esta otra cola se encuentran aquellos trabajos que hayan terminado, y estn esperando una salida impresa. Tambin en esta cola la informacion se encuentra clasificada por el identificador de la cola asignada a las salidas generadas, que no tiene por que coincidir con la definida a nivel de JOB.

  • TSO para desarrolladores: MVS Autor: Jos M. Peco

    Pgina 23 de 374

    1.6.3 Fichero de check-point Este fichero es en el que se basa el JES para establecer las operaciones a realizar. Contiene una referencia de todas las colas de entrada y salida, adems de los trabajos en ejecucin, por lo que este es el fichero que consulta y mantiene el JES para, explorando las colas, saber cual es el trabajo que debe atender en primer lugar; y una vez establecido este, accede el SPOOL, donde se encuentra realmente el JCL, para enviarle a ejecucin, al tiempo que actualiza el estado de los ficheros con las colas afectadas. Normalmente, en las instalaciones se definen varios ficheros de SPOOL, pero en cambio,solo se define un fichero de chek-point, y opcionalmente otro, que sirve como una copia del primero, para poder reactivar las funciones del JES, en caso de error en el primer fichero de chek-point. La configuracin de todo este sistema es labor del departamento de tcnica de sistemas.

  • TSO para desarrolladores: MVS Autor: Jos M. Peco

    Pgina 24 de 374

    1.7 Los ficheros en MVS En MVS como en cualquier otro sistema operativo, la informacion se encuentra agrupada en conjuntos homogneos, recibiendo cada conjunto la denominacin de fichero o Data-set. En MVS el nombre de los ficheros se forma agrupando calificadores y separando estos con un punto. Cada uno de los calificadores puede tener una longitud mxima de 8 caracteres alfanumricos, no pudiendo empezar por dgito ni por un carcter especial con excepcin del $ que es valido. La longitud mxima del nombre de un fichero no puede superar los 44 caracteres. y debe tener al menos dos calificadores, exceptuando los ficheros temporales, cuyo nombre se forma anteponiendo un & a un unico calificador. El nombre completo de un miembro de un fichero particionado se forma escribiendo el nombre del fichero y entre parntesis el miembro a procesar. Adems, MVS contempla tambin ALIAS para los nombres de ficheros, siendo estos ALIAS, nombres alternativos dados a ficheros. Para las versiones anteriores al MVS/ESA este nombre alternativo solo poda especificarse para el primer cualificador. En cambio, con esta versin de MVS el alias puede referenciar hasta los cuatro primeros calificadores de un fichero si se desea. Los alias residen en el catlogo maestro, como se vera a continuacin, y apuntan a un determinado catlogo de usuario, donde estar ya la ubicacin fsica de un determinado fichero.

  • TSO para desarrolladores: MVS Autor: Jos M. Peco

    Pgina 25 de 374

    1.7.1 Tipos de organizacion en ficheros no-VSAM Los principales tipos de organizacion de ficheros no-VSAM en un sistema MVS son: - Secuencial - Particionada - Directa - Secuencial Indexada 1.- Organizacion secuencial - Los ficheros con este tipo de organizacion se definen como el conjunto generado al almacenar la informacion secuencialmente, es decir, escribiendo cada registro uno detrs del otro y manteniendo este orden. Cuando se desee recuperar la informacion, los registros deben leerse de la misma forma, es decir, leyendo un registro cada vez y en el mismo orden en el que se escribi. Para el manejo de la informacion en estos ficheros, ya sea en cinta o en disco, se puede usar cualquiera de los siguientes mtodos: - El mtodo de acceso QSAM (Queued Sequential Acces Method) que permite al usuario leer y escribir a nivel de registro lgico. Es el mas usado. - El mtodo BSAM (Basic Sequential Acces Method) que permite al usuario leer y escribir a nivel de bloque.

  • TSO para desarrolladores: MVS Autor: Jos M. Peco

    Pgina 26 de 374

    2.- Organizacion particionada Los ficheros pertenecientes a este tipo tambin reciben el nombre de bibliotecas, libreras o PDS (Particioned Data Set) debiendo este nombre, en parte a herencia de los sistemas operativos predecesores, y en parte a la forma en como organiza su informacion, pues dispone de las dos areas siguientes, a modo de biblioteca: - un rea de directorio que permite la localizacin inmediata de cualquier miembro, - y un rea de datos. El rea de datos esta formada por conjunto de datos secuenciales. El directorio es un rea que contiene una entrada para cada miembro. Cada una de estas entradas contiene la especificacin del nombre, direccin relativa de comienzo dentro del area de datos, longitud y otras estadsticas de cada uno de los miembros. (ver utilidad ........) Estas dos reas son independientes y se dimensionarn con distinto espacio. Un fichero particionado se gobierna por su directorio. (ver parmetro SPACE de la ficha DD). Este tipo de organizacin es muy usada en MVS, siendo adems obligatoria para cierto tipo de informacin, tales como procedimientos y programas ejecutables entre otros. Y se emplea para contener tanto datos como programas. El mtodo de acceso que procesa este tipo de ficheros es el BPAM (Basic Partitioned Access Method).

  • TSO para desarrolladores: MVS Autor: Jos M. Peco

    Pgina 27 de 374

    3.- Organizacion Directa o Random Este tipo de organizacion permite al usuario leer y escribir directamente a nivel de bloque. Solo puede usarse con ficheros en disco, y su uso esta ligado a la gestin de Bases de datos (como IDMS) no siendo un mtodo de acceso de uso normal para el usuario. El mtodo de acceso que procesa este tipo de ficheros es el BDAM (Basic Direct Access Method) 4.- Organizacion Secuencial Indexada Este es un mtodo obsoleto que ha sido reemplazado por los ficheros VSAM. El mtodo de acceso que procesa este tipo de ficheros es el ISAM (Indexed Sequential Access Method).

  • TSO para desarrolladores: MVS Autor: Jos M. Peco

    Pgina 28 de 374

    1.7.2 Tipos de registro Cualquier tipo de fichero no-VSAM definido en el punto anterior puede tener definido uno de los siguientes formatos de registro: - Formato FIJO (F) Este tipo de formato se caracteriza por tener todos los registros la misma longitud, y todos los bloques o conjuntos fsicos de registros lgicos de un mismo fichero) tambin tienen el mismo tamao. El mximo tamao del bloque es de 32760 Bytes. Formato Variable (V) La caracterstica de este tipo de registros es que los registros lgicos que componen el fichero tienen longitudes distintas, yendo precedido cada uno de los registros por 4 bytes para especificar su longitud. A su vez, cada bloque tambin va precedido por otros 4 bytes para indicar su longitud. El tamao mximo del bloque es de 32760 mientras que el de registro es de 32756 bytes. Si pudiera darse el caso de que un registro lgico exceda el tamao mximo de un bloque, habra que definir el fichero como de formato VBS(Variable Blocked Spanned) Formato Indefinido (U) Este tipo de formato se usa cuando el fichero no esta formado por registros lgicos, por lo que solo pueden leerse los datos leyendo el bloque entero. El tamao del bloque no puede exceder de 32760 Bytes. Este formato es el usado entre otras, por las libreras de los programas ejecutables.

  • TSO para desarrolladores: MVS Autor: Jos M. Peco

    Pgina 29 de 374

    1.7.3 Organizacion VSAM Este tipo de organizacin de fichero es especial contando adems con un mtodo de acceso propio. Su nombre proviene del acronimo Virtual Storage Access Method. Debiendo ser procesados por sistemas que traten memoria virtual, tal y como indica su nombre, y adems deben residir en disco. Dentro de este tipo de organizacion existen 4 tipos: - Organizacion Secuencial (ESDS:Entry Sequential Data Set) Sustituye a los ficheros con acceso QSAM y BSAM. - Organizacion Directa (RRDS:Relative record Data Set) Sustituye a los BDAM. - Organizacion Indexada (KSDS: Key Sequential Data Set) Sustituye a los ISAM - Organizacion lineal : Este tipo de organizacion secuencial. Es usada solo por gestores de bases de datos.

  • TSO para desarrolladores: MVS Autor: Jos M. Peco

    Pgina 30 de 374

    1.7.4 Acceso y recuperacin de datos El acceso a datos en MVS se hace a travs del juego de VTOC y catlogos. 1.- VTOC (Tabla de Contenidos del Volumen). En MVS todos los volmenes DASD(Direct Access Storage Device) tienen una zona en la que se registra toda la informacin fsica que contiene, as como la organizacion de los ficheros que estn en ese volumen. Esta area, que recibe el nombre de VTOC se crea en el momento de inicializar el volumen. La informacion contenida en ella esta organizada en distintos tipos de registros, todos ellos con una longitud de 144 bytes de longitud, y reciben el nombre de DSCB (Data set control Block) La primera parte del registro tiene una longitud de 44 bytes, y contiene o el tipo de registro o el nombre del fichero. Cada tipo de registro o formato, contiene la siguiente informacion especifica: Formato 4: Describe la VTOC. Es el primer registro Solo hay un registro de este tipo. Formato 5 Especifica el espacio libre Formato 1 Describe cada archivo y el espacio que ocupa, ajustndose a la siguiente estructura: 00-43 Nombre del fichero 44-44 Tipo de registro ... Organizacion Longitud del bloque Tamao de registro Punteros a los 3 primeras extensiones Formato 3 Describe las extensiones del fichero Formato 2 Describe el mtodo de acceso a los ficheros secuenciales indexados. Formato 0 Es un registro nulo. Nota: Con el lanzamiento del SMS (Sistema de gestin de memoria) las VTOC tienden a desaparecer.

  • TSO para desarrolladores: MVS Autor: Jos M. Peco

    Pgina 31 de 374

    2.- Catlogos Los catlogos son el otro componente en el que se apoya MVS para el acceso y localizacin de ficheros. Un catalogo no es mas que un fichero VSAM, pero con un contenido especial ya que contiene informacin acerca de la ubicacin fsica de otros ficheros, de modo que se pueda localizar solo con esa informacion cualquier fichero de la instalacin. En MVS un fichero puede, o no, estar catalogado. En el caso de estarlo el sistema a travs del catlogo puede determinar el volumen en el que se encuentra, y una vez en el volumen, examinando la VTOC podr recoger todas las caractersticas de este fichero. En el caso de no estar catalogado, cuando se desee utilizar, habr que especificar la informacin del volumen que le contiene, para que as, mirando la VTOC pueda localizarlo. Para poder gestionar la catalogacin de todos los ficheros de la instalacin, MVS mantiene un catlogo maestro y varios catlogos de usuario. En el catlogo maestro, normalmente figuraran entradas maestras, es decir referencias de los ficheros que son vitales para el funcionamiento de MVS, y sus alias. En los catlogos de usuario figurara la direccin lgica de los distintos ficheros de usuario.

  • TSO para desarrolladores: MVS Autor: Jos M. Peco

    Pgina 32 de 374

    1.8 Libreras que contienen el MVS Por lo general todos los mdulos del MVS se encuentran ubicados en libreras que tienen por primer cualificador SYS1, siendo alguna de las mas interesantes desde el punto de vista del desarrollador, las siguientes: SYS1.LPALIB Contiene los mdulos del supervisor SYS1.NUCLEUS Contiene los mdulos que definen el sistema como resultante del proceso de generacin del sistema (SYSGEN) SYS1.LINKLIB Contiene las utilidades y mdulos compartidos por todos los usuarios, tales como SORT, COBOL, IEBCOPY, ... SYS1.SVCLIB Esta librera contena los mdulos del supervisor (SVC) en el MVT, pero hoy solo se mantienen por razones de compatibilidad. SYS1.CMDLIB Esta librera contiene los mdulos del procesador de comandos de TSO.

  • TSO para desarrolladores: MVS Autor: Jos M. Peco

    Pgina 33 de 374

    1.9 Bibliografa MVS - Manual para programadores Robert H. Johnson Editorial McGraw Hill

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 34 de 374

    Tema 2 : JCL 2.1 Introduccin Como se ha visto en el tema anterior, uno de los subsistemas bsicos del sistema operativo MVS es el JES o controlador de trabajos batch. Su misin fundamental consiste en preparar los trabajos que se le envan para su ejecucin, interpretando las sentencias de control que componen cada una de las cadenas o JOBs, y asignar los recursos que requiere su ejecucin as como el espacio de direcciones ,o particin, en la que poder ejecutarse. Estas cadenas son escritas en un lenguaje especial, llamado Lenguaje de Control de trabajos (Jobs), o abreviadamente JCL. Debemos diferenciar entre JC y JCL, siendo: JC el programa (Job control) JCL el lenguaje que se utiliza para trabajar con el JC Tambin se suele dar el nombre de JCL, aunque errneamente, a la cadena escrita para la ejecucin de un trabajo. El JES, como ya se ha visto, es invocado cada vez que se ejecuta el comando SUBMIT de TSO, mediante el cual se enva a la entrada de ejecucin de trabajos un fichero conteniendo la secuencia de sentencias de control que se desea ejecutar; o bien, copiando un fichero sobre la entrada de trabajos del sistema(Internal Reader) como tambin se vera a lo largo de este tema. Por otra parte, tambin se puede usar el JCL para ejecutar comandos propios del JES2 y JES3.

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 35 de 374

    2.2 Definiciones previas JOB o CADENA Recibe este nombre una sucesin de programas encadenados para su ejecucin como un unico trabajo. Comienza siempre con una sentencia //nombre JOB y finaliza con : /& aunque esta ficha no es obligatoria, o con una sentencia vacia, entendiendo por tal la que solo contiene simplemente // STEP o PASO Recibe este nombre el conjunto de sentencias necesarias para ejecutar cada uno de los programas que integran un JOB. Un paso del trabajo comienza siempre con //nombre EXEC Finaliza cuando se encuentra con el fin del JOB o con otra ficha EXEC. Y debe contener tantas sentencias DD como ficheros lgicos tenga definidos el programa que se desea ejecutar. ALOCAR Este anglicismo, muy usado en las instalaciones, debera escribirse como ALLOCAR, pues proviene de usar el comando ALLOC abreviatura de ALLOCATION, que significa asignacin. Se entiende por alocar un fichero o una librera el asignar dicho fichero o librera a nuestro entorno de trabajo a fin de poder hacer uso de l. Hay que tener en cuenta que en MVS solo se puede hacer uso de aquellos elementos que se encuentren alocados en el entorno del usuario que desea ejecutar el programa. Esto es lgico, ya que cuando se aloca un fichero se especifica tambin el modo en el que es asignado, de esta forma si se aloca un fichero como de Modificacin, se estar asignado con exclusividad, y nadie podr hacer uso de el, ni siquiera para lectura, pero, si se le aloca en modo compartido (SHaRed), todos los usuarios podrn incluirlo en su entorno, siempre y cuando tambin le aloquen como SHR.

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 36 de 374

    PROCEDIMIENTO CATALOGADO Es un conjunto de sentencias de control incluidas en un miembro de una librera del sistema, y que emplea nombres variables para la codificacin de aquellos parmetros cuyo valor se desconoce en tiempo de codificacin. PROCEDIMIENTO IN-STREAM Es, como el procedimiento catalogado, un conjunto de sentencias de control, pero, en lugar de estar ubicadas en una librera estn incluidas dentro de la propia cadena de control.

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 37 de 374

    2.3 Formato general de las sentencia del JC Todas las lneas que componen una cadena se codifican siempre en formato imagen de ficha, es decir que su longitud es de 80 posiciones. La informacion ejecutable se encuentra siempre en las primeras 71 posiciones, ya que se reservan las 8 ultimas posiciones para un blanco, que acta de delimitador, y 7 posiciones para la numeracin de las fichas. En el caso de que la informacion a especificar en una lnea fuera mayor de 71 posiciones, se puede continuar en las fichas siguientes, terminando la lnea con una coma, y comenzando la codificacin de la lnea siguiente entre las columnas 7 y 16, tal y como se muestra en el siguiente ejemplo: //XXXXXX85 JOB (123,DES),'JMP-PRU',CLASS=T,MSGCLASS=X, 00000100 // NOTIFY=XXXXXX,MSGLEVEL=(1,1) 00000200 El formato general de las sentencias de control es: //Etiqueta b_1 operacin b_2 operandos b_3 comentario Donde: // indica que se trata de una sentencia de control y deben ocupar las columnas 1 y 2 de la ficha. Etiqueta Sirve para identificar la sentencia de control en la que se encuentra. B_1 Delimitador de 1 a n blancos Operacin Puede ser una de las operaciones comentadas en el siguiente apartado. B_2 Delimitador de 1 a n blancos Operandos Este campo debe comenzar antes de la columna 17, y especifica los operandos o parmetros del operador al que acompaa. En el caso de que los operadores fueran varios, estos irn separados por comas, y sin incluir blancos. B_3 Delimitador de 1 a n blancos Comentarios Es el ultimo grupo de informacion de la lnea y es utilizada para especificar comentarios a la lnea de la cadena.

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 38 de 374

    Otros formatos de las sentencias de control son los siguientes: (1) // (2) //* (3) /*comando donde el formato: (1) representa la sentencia vaca. Su uso especifica el fin de la cadena o JCL. (2) se usa para especificar comentarios Es una ficha no ejecutable (3) Este formato se usa para ejecutar comandos del JES

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 39 de 374

    2.3.1 Etiqueta Las etiquetas son identificadores que se utilizan para referenciar cualquier elemento individual dentro de su conjunto. As, con la etiqueta de la ficha: - JOB queda identificado el JOB dentro de las colas de ejecucin. - PROC queda identificado el procedimiento - EXEC queda identificado el paso - DD queda identificado de forma lgica el fichero ante el programa que va a manejar sus datos. Como caractersticas se pueden resaltar las siguientes: - La etiqueta es un campo opcional - En caso de codificarse debe comenzar en la columna 3 - No puede ser mayor de 8 posiciones alfanumricas - Debe comenzar por un carcter alfabtico - Identifica la ficha de control - Sirve para referenciar una ficha del JOB. //PASO1 EXEC PGM=IEBCOPY 00000600 //STEPLIB DD DSN=SYS1.LINKLIB,DISP=SHR 00000700 //SALIDA DD SYSOUT=* 00000800 PASO1, STEPLIB, SALIDA son tres etiquetas que identifican tres fichas distintas del JOB.

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 40 de 374

    2.3.2 Operacin Este lenguaje solo contempla los siguientes tipos de operacin: JOB Solo puede haber una operacin de este tipo por cadena, ya que define el conjunto del JOB o JCL. EXEC Esta operacin sirve para especificar el programa o procedimiento que se desea ejecutar. Por lo tanto habr tantas operaciones EXEC como pasos tenga el JCL o cadena. DD Este tipo de operacin sirve para definir datos. Es decir, esta ficha se usa para determinar los contenedores de los datos que se van a manipular. En consecuencia deben definirse a nivel de programa, ya que son estos los nicos que pueden manejar los datos. Y habr en un paso tantas operaciones DD como Definiciones de Datos requiera el programa. PROC Como se ha dicho en las definiciones previas, un procedimiento no es mas que un conjunto de pasos agrupados bajo un nombre. Pues bien, esta operacin define el comienzo de un procedimiento, y la etiqueta que identifica la ficha, da nombre al procedimiento. (No confundir esta operacin con el parmetro PROC de la ficha EXEC). PEND Esta operacin define el final de un procedimiento. OUTPUT Este tipo solo es valido para MVS/XA y MVS/ESA y va ligada al parmetro OUTPUT de la sentencia DD.

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 41 de 374

    2.3.3 Operadores o parmetros Los operadores o parmetros de un operando pueden ser de dos tipos: - Posicionales Aquellos cuyo valor esta asociado con la posicin que ocupa como operador. //DESJMPL1 JOB (40,123),'JMP-PRU' - Palabra clave Aquellos cuyo valor va acompaado de una palabra clave que identifica al operador o parmetro usado. // MSGCLASS=Z,NOTIFY=DESJMP A su vez, los parmetros pueden estar compuestos de subparametros posicionales y de palabra clave. En cualquier caso, estos subparametros debern ir encerrados entre parntesis, o entre comillas. Como ejemplo de todas estas definiciones se acompaa el siguiente JCL, que como especifica en los comentarios, realiza la copia de un miembro de un fichero particionado sobre un fichero secuencial. //DESJMPL1 JOB (40,123),'JMP-PRU',CLASS=D,MSGCLASS=Z, // NOTIFY=DESJMP,MSGLEVEL=(1,1) //********************************************************************** //* COPIAR UN MIEMBRO A UN SECUENCIAL //********************************************************************** //PASO1 EXEC PGM=IEBCOPY //ENTRADA DD DISP=OLD,DSN=&librera.(&miembro.) //SALIDA DD DSN=&secuenc, // DISP=(,CATLG,DELETE),UNIT=SYSDA,SPACE=(CYL,(1,1),RLSE), // DATACLAS=DFBAQ,LRECL=80 //SYSIN DD * DDIN=ENTRADA DDOUT=SALIDA /* //SYSPRINT DD SYSOUT=* Como REGLA GENERAL: Cuando un parmetro posicional no se codifique y existan operadores cuya posicin relativa sea posterior a la del que falta, debern codificarse los huecos de los parmetros no especificados mediante tantas comas como faltas haya, no debiendo dejar ningn blanco entre estas ya que este es el delimitador de los distintos campos de la ficha de control. El siguiente ejemplo muestra este extremo, ya que falta el primer subparametro del operador DISP // DISP=(,CATLG,DELETE)

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 42 de 374

    2.4 Sentencia JOB Especifica el comienzo de un trabajo o cadena. Cada Job solo puede contener una nica ficha JOB. Por esto, en el caso de que en una misma corriente de control vinieran especificadas varias fichas job, cada una de ellas indicar el fin de un trabajo, si no es la primera, y el comienzo de un nuevo trabajo. En el caso de que dicha cadena contuviera alguna ficha nula ( solo con // ) se ignorara el resto de la corriente. El nombre del JOB puede tener hasta 8 caracteres, empezando siempre por un carcter alfabtico. No se considera el guin como carcter especial. El formato de esta sentencia se ajusta al formato general. //Nombre JOB ([cuenta][,informacion_de_contabilidad,...]) CLASS=clase_ejecucin MSGCLASS=clase_salida MSGLEVEL=([sentencias],[mensajes]) [COND=(cdigo,operador),...] [NOTIFY=identificacin usuario] [PRTY=prioridad del job] [REGION=valorK] o [REGION=valorM] [TIME={([minutos][,segundos])}] [TYPRUN={HOLD}] o [TYPRUN={SCAN}] [RESTART=id_paso_reinicio] Los parmetros obligatorios en general son los parmetros CLASS para saber a que iniciador se debe enviar el trabajo, y MSGCLASS para determinar que tipo de mensajes se quiere recoger. El resto de los parmetros son obligatorios u optativos dependiendo de la instalacin. Como ejemplo se acompaa el siguiente, si bien puede tomarse cualquier otro ejemplo de este tema. //DESJMPL1 JOB (40,123),'JMP-PRU',CLASS=D,MSGCLASS=Z, // NOTIFY=DESJMP,MSGLEVEL=(1,1),RESTART=*

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 43 de 374

    2.4.1 Informacion de contabilidad Es un parmetro posicional y siempre es el primer parmetro de la ficha JOB. Por lo general, todas las instalaciones suelen imputar los gastos del centro de calculo a los distintos departamentos en funcin del tiempo de maquina que hayan consumido. Este parmetro sirve para contabilizar dicho tiempo, y se ajustara a las especificaciones de la instalacin. Si hubiera que codificar subparametros, este parmetro ira delimitado por parntesis, y los subparametros separados en el interior por comas. En el caso de que algn parmetro contuviera apstrofes o ampersands (&) se codificaran dobles, pero sern considerados por el sistema como si fueran sencillos. La longitud total mxima de este parmetro es de 144 bytes. Ejemplos //JMP1 JOB 123, ... //JMP2 JOB (123,12-12-94), ... //JMP3 JOB , ... //JMP5 JOB 123&&456, ...

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 44 de 374

    2.4.2 Nombre del programador Parmetro posicional. Este parmetro es el segundo de la ficha JOB, y por tanto, si no se especifica el parmetro anterior, este debe ir precedido de una coma a fin de respetar la regla general. Este parmetro identifica al responsable del Job, y debe ir delimitado por comillas simples ('). En el caso de que este parmetro contuviera comillas, estas deben especificarse dobles, a fin de que no sea interpretada como fin del parmetro. Ejemplos //JMP1 JOB 123,'JMP-PRU' ... //JMP2 JOB (123,12-12-94),'JMP-PRU' ... //JMP3 JOB ,'JMP-PRU' ... //JMP4 JOB ,'Jose O''Donnel' ... //JMP5 JOB 123&&456,'JMP-PRU' ...

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 45 de 374

    2.4.3 ADDRSPC Parmetro de palabra clave Este parmetro especifica si el JOB se va a ejecutar en memoria REAL o en memoria VIRTual. La diferencia entre un valor y el otro estriba en que si se ejecuta en memoria REAL, no hay paginacin, mientras que si se ejecuta en memoria VIRTual, si la hay, lo cual implica un mayor tiempo de ejecucin, si bien, esta diferencia de tiempos solo ser apreciable en procesos muy largos. Los valores posibles de este parmetro son : - VIRT - REAL Por defecto asume VIRT. Ejemplos //JMP01 JOB (123,(456,ABC)),ADDRSPC=VIRT ... //JMP02 JOB ADDRSPC=REAL

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 46 de 374

    2.4.4 CLASS Parmetro de palabra clave Este parmetro especifica la cola de entrada a la que se desea que el JES asigne el trabajo para su ejecucin. Las instalaciones definen en el JES distintos iniciadores para la ejecucin de los trabajos. A su vez, cada iniciador tiene asignadas distintas clases o colas de entrada, y estas tienen asignadas distintas prioridades de ejecucin, por lo que el enviar un trabajo a una u otra cola, puede repercutir en el tiempo que tarda en ejecutarse dicho trabajo. As, por ejemplo, una instalacin podra tener definidas las siguientes colas: Entrada A: Trabajos que consumen menos de 1 minuto B: Trabajos que consumen menos de 10 minutos X: Trabajos con tiempo ilimitado ... Salida A: Salida normal B: Salida en DIN-A4 C: Salida para diskettes ... Por defecto asume la clase que tenga asignada el usuario de TSO que submite o enva el trabajo a ejecucin. Valores: A - Z 0 - 9 Ejemplo: //JMP03 JOB ADDRSPC=REAL,CLASS=B

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 47 de 374

    2.4.5 COND Parmetro de palabra clave Este parmetro especifica la condicin que de forma general debe cumplir el cdigo de retorno devuelto por los programas que configuran el JOB, para que siga ejecutndose el JOB. Cada paso de un JOB cuando termina, devuelve un cdigo de retorno que por regla general suele tomar los valores: 0 Todo correcto 4 Existen avisos o warnings 8 Existen errores 12 Existen errores graves Estos valores son cargados en la variable del sistema RC (Return Code) por los programas dependiendo de la lgica programada, o por el propio sistema. La codificacin de este parmetro se ajusta al siguiente formato: COND=((cdigo,operacin),(cdigo,operacin),...) COND=EVEN COND=ONLY donde cdigo es un numero decimal comprendido en el rango 0 a 4095, y representa el valor con el que se debe comparar el cdigo de retorno de los pasos. Operacin Especifica como debe ser el cdigo de retorno para que deje de ejecutarse el JOB. Los valores posibles de este campo son: GT Mayor que (greater than) GE Mayor o igual (greater equal) LT Menor que (less than) LE Menor o igual (Less equal) EQ Igual (equal) NE No igual (Not equal) Se puede especificar hasta 8 condiciones distintas, y solo se especificaran los parntesis internos si se incluye mas de una condicin, funcionando en este caso como la operacin lgica OR. Ejemplos //JMP05 JOB CLASS=J,COND=(8,LT) ... //JMP06 JOB ADDRSPC=VIRT,COND=((8,EQ),(40,GT))

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 48 de 374

    2.4.6 MSGCLASS Parmetro de palabra clave Este parmetro especifica la clase de salida en la que el JES dejara los mensajes devueltos por el sistema, as como la interpretacin de las sentencias del JOB. Por defecto asume la clase que tenga asignada el usuario de TSO que submite o enva el trabajo a ejecucin. Valores: A - Z 0 - 9 Ejemplo: //JMP03 JOB ADDRSPC=REAL,CLASS=B,MSGCLASS=8

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 49 de 374

    2.4.7 MSGLEVEL Parmetro de palabra clave Este parmetro especifica el tipo de mensajes que se desea tener en el log del job, es decir, los tipos de mensajes que se desea recibir de la ejecucin del job. Se admite la abreviatura MSG La codificacin de este parmetro se ajusta al siguiente formato: MSGLEVEL=([sentencias],[mensajes]) donde ambos parmetros estn codificados, e indican sentencias el tipo de mensajes relacionados con la interpretacin de las sentencias de control que se desean. mensajes especifica lo mismo pero con los mensajes que devuelve el sistema. Los valores posibles para estos subparametros posicionales son: Sentencias 0 Solo se imprime la sentencia JOB 1 Se imprimen todas las sentencias de control incluida la expansin de los procedimientos. 2 Solo se imprimen las sentencias de control de entrada. Mensajes 0 No se imprimen los mensajes de asignacin de recursos a menos que el JOB termine anormalmente. 1 Se imprimen todos los mensajes de asignacin de recursos. En caso de no codificarse el subparametro de mensajes, no son necesarios los parntesis. Cuando se especifica el valor 1 para las sentencias de control, y adems se emplean procedimientos, los parmetros variables son sustituidos por los valores reales, y el resultado se registra en el log del Job. Ejemplos: //JMP07 JOB (1,2),'pruebas',MSGLEVEL=(0,0) //JMP08 JOB ,'pruebas',MSGLEVEL=(,1) //JMP09 JOB MSGLEVEL=2,ADDRSPC=REAL

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 50 de 374

    Cuando se codifica el valor 1 para el parmetro de sentencias, en la corriente de control se obtiene la imagen expandida de la cadena, donde cada lnea se inicia con : // las fichas codificadas en el fichero submitido XX las fichas expandidas de procedimientos catalogados ++ las fichas expandidas de procedimientos in-stream X/ las llamadas hechas a un procedimieto expandido +/ las llamadas hechas a un procedimiento in-stream El siguiente ejemplo muestra un fragmento de la salida de un JOB. En el se distinguen las siguientes partes: - LOG del JOB: en esta parte se registra la hora de comienzo de cada evento. _ Interpretacion del JCL ejecutado: en el que se ve cmo el JES ha numerado cada una de las sentencias ejecutables, con independencia de que ocupen 1 o mas fichas de la cadena. - La tercera parte se corresponde con la salida de mensajes devueltos por el sistema. 1 J E S 2 J O B L O G -- S Y S T E M X 0 14.21.48 JOB07054 IRR010I USERID DESJMP IS ASSIGNED TO THIS JO 14.21.50 JOB07054 ICH70001I DESJMP LAST ACCESS AT 14:21:41 ON W 14.21.50 JOB07054 $HASP373 DESJMPCA STARTED - INIT CK - CLASS K 14.21.50 JOB07054 IEF403I DESJMPCA - STARTED - TIME=14.21.50 14.21.53 JOB07054 - --TIM 14.21.53 JOB07054 -JOBNAME STEPNAME PROCSTEP RC EXCP CPU 14.21.53 JOB07054 -DESJMPCA PASO0010 00 35 .00 14.21.59 JOB07054 IEF404I DESJMPCA - ENDED - TIME=14.21.59 14.21.59 JOB07054 -DESJMPCA ENDED. NAME-JMP-PRU TOT 14.21.59 JOB07054 $HASP395 DESJMPCA ENDED 1 //DESJMPCA JOB (30,123),'JMP-PRU',CLASS=K,MSGCLASS=X, // NOTIFY=DESJMP,MSGLEVEL=(1,1) //* - - - - - - - - - - - - - - - - - - - - - - - - - - 2 //PASO0010 EXEC PGM=DESNAT,REGION=3000K,TIME=1400, // PARM='STACK=INT,IM=D,MAXCL=0,A' 3 //STEPLIB DD DSN=JMP.NATURAL.DES,DISP=SHR 4 //DDKARTE DD DUMMY 5 //DDDRUCK DD SYSOUT=* 6 //DDPRINT DD SYSOUT=* ... ICH70001I DESJMP LAST ACCESS AT 14:21:41 ON WEDNESDAY, AUGUST 10 IEF236I ALLOC. FOR DESJMPCA PASO0010 IGD103I SMS ALLOCATED TO DDNAME STEPLIB IEF237I DMY ALLOCATED TO DDKARTE IEF237I JES2 ALLOCATED TO DDDRUCK IEF237I JES2 ALLOCATED TO DDPRINT ...

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 51 de 374

    El siguiente ejemplo muestra la salida proporcionada por el mismo JOB pero codificando el parmetro MSGLEVEL tal y como se especifica en la ficha JOB que aparece en la seccin de interpretacin del JCL. 1 J E S 2 J O B L O G -- S Y S T E M X 0 14.21.48 JOB07054 IRR010I USERID DESJMP IS ASSIGNED TO THIS JO 14.21.50 JOB07054 ICH70001I DESJMP LAST ACCESS AT 14:21:41 ON W 14.21.50 JOB07054 $HASP373 DESJMPCA STARTED - INIT CK - CLASS K 14.21.50 JOB07054 IEF403I DESJMPCA - STARTED - TIME=14.21.50 14.21.53 JOB07054 - --TIM 14.21.53 JOB07054 -JOBNAME STEPNAME PROCSTEP RC EXCP CPU 14.21.53 JOB07054 -DESJMPCA PASO0010 00 35 .00 14.21.59 JOB07054 IEF404I DESJMPCA - ENDED - TIME=14.21.59 14.21.59 JOB07054 -DESJMPCA ENDED. NAME-JMP-PRU TOT 14.21.59 JOB07054 $HASP395 DESJMPCA ENDED 1 //DESJMPCA JOB (30,123),'JMP-PRU',CLASS=K,MSGCLASS=X, // NOTIFY=DESJMP,MSGLEVEL=(0,0) //* - - - - - - - - - - - - - - - - - - - - - - - - - -

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 52 de 374

    2.4.8 NOTIFY Parmetro de palabra clave Este parmetro especifica el identificador del usuario de TSO al que el sistema enviara un mensaje cuando finalice el Job. La codificacin de este parmetro se ajusta al siguiente formato: NOTIFY=identificador_usuario El identificador del usuario se corresponde con la identificacin que se da al sistema cuando se hace LOGON para iniciar una sesion de TSO. Ejemplo //JMP10 JOB (123,456),'JMP-PRU',CLASS=X, // MSGLEVEL=(1,1),NOTIFY=T976614

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 53 de 374

    2.4.9 PERFORM Parmetro de palabra clave Este parmetro especifica el grupo de rendimiento o PERFORMance que se asigna al JOB. La codificacin de este parmetro se ajusta al siguiente formato: PERFORM=n donde n es un numero comprendido entre 1 y 255 Normalmente a mayor numeracin, la prioridad aumenta. No obstante, la definicin de este parmetro depende de la instalacin. Ejemplo //JMP11 JOB (123,456),'JMP-PRU',CLASS=X, // MSGLEVEL=(1,1),NOTIFY=T976614, // PERFORM=12

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 54 de 374

    2.4.10 REGION Parmetro de palabra clave Este parmetro especifica la cantidad de memoria que se asigna al JOB. No obstante esta memoria depende del valor especificado con el parmetro ADDRSPC, ya que si se ha especificado: =REAL este parmetro especifica la cantidad de memoria real que se asigna a este JOB. =VIRT este parmetro limita la cantidad de memoria virtual que se puede tomar cuando se haga una GETMAIN variable. Por lo tanto especifica el mximo tamao de memoria virtual que se podr tomar en el citado GETMAIN. La codificacin de este parmetro se ajusta al siguiente formato: REGION=nK REGION=mM donde n es el numero de Kb que representa el tamao asignado o limitado, y m es el numero de Mb que representa el tamao asignado o limitado. Ejemplo //JMP11 JOB (123,456),'JMP-PRU',CLASS=X, // MSGLEVEL=(1,1),NOTIFY=T976614, // PERFORM=12,REGION=32M

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 55 de 374

    2.4.11 RESTART Parmetro de palabra clave Este parmetro especifica el paso desde el que se desea rearrancar el JOB. Normalmente, este parmetro se utiliza para rearrancar un JOB desde el paso que termino mal, ya que los primeros pasos se ejecutaron correctamente. La codificacin de este parmetro se ajusta al siguiente formato: RESTART=* RESTART=nombre_paso RESTART=nombre_paso.nombre_proc donde * indica que el JOB se rearranque desde el primer paso. nombre_paso especifica el nombre del paso desde el que se desea rearrancar. //XXXXXXND JOB (123,DES),'JMP-PRU',CLASS=T,MSGCLASS=X, // NOTIFY=XXXXXX,MSGLEVEL=(1,1),RESTART=COPIAR01 Nombre_paso.nombre_proc Este formato se usa cuando se desea rearrancar desde un paso que invoca a un procedimiento. //XXXXXXND JOB (123,DES),'JMP-PRU',CLASS=T,MSGCLASS=X, // NOTIFY=XXXXXX,MSGLEVEL=(1,1),RESTART=NATURA11.NATDES //* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //NATDES PROC ... procedimiento in-stream // PEND //* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //NATURA01 EXEC NATDES //CMWKF01 DD DSN=DESJMP.FTP.J180B01, ... //COPIAR01 EXEC PGM=IEBGENER //SYSUT1 DD DSN=DESJMP.FTP.J180B01 ... //NATURA11 EXEC NATDES ...

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 56 de 374

    2.4.12 TIME Parmetro de palabra clave Este parmetro especifica el mximo tiempo que un JOB puede estar usando la CPU. Es de resaltar que el tiempo que se especifique no es tiempo real de ejecucin, sino tiempo de CPU. La diferencia entre ambos tiempos estriba en que la CPU no tiene dedicacin exclusiva a un trabajo, y por lo tanto, al repartirse un segundo de CPU entre muchos trabajos, a cada trabajo le corresponder para 1 segundo real x milisegundos de CPU. La codificacin de este parmetro se ajusta al siguiente formato: TIME=([minutos],[segundos]) donde minutos especifica el numero de minutos mximo de CPU que utilizara el JOB. Su valor debe estar comprendido en el rango 1-1439 segundos especifica el numero de segundos mximo de CPU que utilizara el JOB. Su valor debe estar comprendido en el rango 0-59 Un caso particular es aquel en el que se especifica TIME=1439 ya que este es el numero de minutos de un da. En este caso, lo que se estara haciendo es no poniendo limite para el uso de la CPU por parte de ese trabajo. El siguiente ejemplo muestra cmo limitar el tiempo de CPU a 5 minutos y 30 segundos //JMP14 JOB (123,456),'JMP-PRU',CLASS=X, // MSGLEVEL=(1,1),NOTIFY=T976614, // RESTART=PASO2,TIME=(5,30) ... Y este otro, le limita a 5 minutos //JMP15 JOB (123,'JMP'),CLASS=Y,NOTIFY=TEST87, // RESTART=PASO3.NATURALP,TIME=5

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 57 de 374

    2.4.13 TYPRUN Este parmetro especifica al JES el tratamiento que debe dar al JOB. En el caso de que no se especifique este parmetro el trabajo pasa a ejecucin inmediatamente. La codificacin de este parmetro se ajusta al siguiente formato: TYPRUN=valor donde los valores posibles son: HOLD este valor especifica que el trabajo se coloque en la cola de entrada pero para no ejecutarse hasta que no se libere manualmente por el operador, lo cual se hace ejecutando el comando de lnea 'A' en el panel de SDF correspondiente a las colas de entrada. SCAN este valor especifica al sistema que no se desea ejecutar el JOB, solo se desea chequear la sintaxis de la corriente de control. COPY este valor especifica al sistema que no se desea ejecutar el JOB, sino simplemente listar el JOB, por lo cual aparecer en la cola de salida en la clase indicada en MSGCLASS. Ejemplo //JMP15 JOB (123,456),'JMP-PRU',CLASS=X, // MSGLEVEL=(1,1),NOTIFY=T976614, // RESTART=PASO2,TYPRUN=SCAN En este caso, solo se chequea la sintaxis del JCL, no valida si existen los ficheros o datasets especificados en las distintas fichas DD de cada paso. En el siguiente ejemplo, el JOB se interpreta y pasa a la cola de entrada, pero no se ejecuta hasta que no sea liberado. //JMP16 JOB (123,'JMP'),CLASS=Y,NOTIFY=TEST87, // TYPRUN=HOLD

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 58 de 374

    2.5 Sentencia EXEC Esta sentencia se utiliza para especificar que se desea ejecutar un programa, un procedimiento catalogado o un procedimiento in-stream. Como se dijo en la introduccin de este tema, un JOB o cadena se compone de un conjunto de pasos. Y cada paso se encuentra identificado por esta sentencia. Un paso como se ha dicho, sirve para ejecutar un programa, o para invocar un procedimiento, pero tambin los procedimientos constan de pasos, los cuales solo pueden ejecutar programas. En este caso, estos pasos se ejecutaran tantas veces como sea llamado el procedimiento, asignando los valores que correspondan a las variables definidas. Al igual que la ficha JOB, esta sentencia tiene parmetros posicionales y de palabra clave, pero, a diferencia de aquella, los parmetros posicionales que tiene esta sentencia son algo especiales, ya que son excluyentes entre si, y solo sirven para especificar si se va e ejecutar un procedimiento o un programa. Por otra parte, como siguen el mtodo general, deben especificarse antes que el resto de parmetros de palabra clave. Concretamente, cualquiera de los dos que se codifique, deber ser el primero, y adems siempre deber codificarse uno de ellos. Los parmetros citados son: - PGM=programa - PROC=procedimiento Por defecto el sistema asume PROC. Los parmetros de palabra clave tienen idntica sintaxis tanto si son parmetros de un programa o si actan como parmetros de un procedimiento. La diferencia entre ambos, estriba en que en el caso de acompaar al parmetro PGM , los parmetros especificados son aplicables al programa que se desea ejecutar, mientras que si el parmetro al que acompaan es el PROC, los parmetros especificados sustituyen a los parmetros que por defecto se hayan definido en el procedimiento. Como ejemplo de esta diferencia, se puede examinar el que acompaa al parmetro de palabra clave PARM.

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 59 de 374

    2.5.1 PGM Este parmetro posicional, debe ser el primero de la ficha EXEC. Sirve para especificar el nombre del programa que queremos ejecutar. Dicho programa deber ser miembro de: - una librera alocada de forma general por el sistema, - o de una librera particular (JOBLIB) que alocada para el JOB - o de una librera particular (STEPLIB) alocada para la ejecucin de este paso La codificacin de este parmetro se ajusta al siguiente formato: PGM=nombre_programa Ejemplos //JMP20 JOB ... //JOBLIB DD DSN=... ... //PASO1 EXEC PGM=PROGRAM1 //STEPLIB DD DSN=... ... //PASO2 EXEC PGM=PROGRAM2 ... En este ejemplo, PROGRAM1 ser buscado como miembro de la librera asociada a la DDname STEPLIB, y en el caso de no encontrarle le buscara en las libreras generales del sistema. En el PASO2, el sistema buscara PROGRAM2 en la librera asociada a la DDname JOBLIB, y en el caso de no encontrarle, le buscara en las libreras generales del sistema, entre las que suele estar SYS1.LINKLIB

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 60 de 374

    2.5.2 PROC Este parmetro posicional, ocupa tambin la primera posicin de la sentencia EXEC. Sirve para especificar el nombre del procedimiento que se desea ejecutar. Este procedimiento puede estar incluido en el propio JOB, en cuyo caso le denominaramos 'in-stream' o puede ser un procedimiento catalogado, es decir, el nombre que especifiquemos debe ser el nombre de un miembro de: - una de las libreras de procedimientos alocadas por el sistema, - una librera particular, alocada a nivel de JOB (JOBCAT) - una librera particular, alocada a nivel de paso (STEPCAT). En el caso de ser un procedimiento in-stream este debe estar definido al principio del JOB. La codificacin de este parmetro se ajusta al siguiente formato: PROC=nombre_procedimiento Ejemplos //JMP21 JOB ... ... //PASO2 EXEC PROC=XNATURAL //STEPCAT DD DSN=DESJMP.PROCS,DISP=SHR ... En este ejemplo, se ejecuta el procedimiento catalogado XNATURAL, siendo este adems, el nombre de un miembro de la librera DESJMP.PROCS

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 61 de 374

    2.5.3 ACCT Parmetro de palabra clave Este parmetro sirve para contabilizar el tiempo de ejecucin del paso, debindose ajustar a las especificaciones de la instalacin. En el caso de que hubiera que codificar subparametros, el valor de este parmetro ira delimitado por parntesis, y los subparametros separados en el interior por comas. Y si algn parmetro contuviera apstrofes (') o ampersands (&) se codificaran dobles, si bien sern considerados por el sistema como si fueran sencillos. La longitud total mxima de este parmetro es de 142 bytes. Su codificacin al ser de palabra clave, se ajusta al siguiente formato: ACCT[.nom_paso_proc]=valor Donde VALOR sigue las reglas dadas en la ficha JOB con la informacion de contabilidad. Ejemplo: 01 //JMP11 JOB (123,456),'JMP-PRU',CLASS=X, 02 // MSGLEVEL=(1,1),NOTIFY=T976614 03 //PROCESO PROC 04 //PASO@0 EXEC ... 05 ... 06 //PASO@1 EXEC ... 07 ... 08 // PEND 09 //* ------------------ fin procedimiento 10 //PASO1 EXEC PGM=PROGRAM1,ACCT=135 11 ... 12 //PASO2 EXEC PGM=PROGRAM2,ACCT=(123,567) 13 ... 14 //PASO3 EXEC PROC=PROCESO,ACCT=(123,999) 15 ... 16 //PASO4 EXEC PROCESO,ACCT.PASO@1=(123,555) ...

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 62 de 374

    donde, la lnea : 10 Determina la informacion contable para PASO1 12 En este caso la informacion contable tiene subparametros. 14 asigna informacion contable para todos los pasos del procedimiento PROCESO. 16 Asigna informacion contable al PASO@1 del procedimiento. El resto de los pasos se contabiliza donde indique la informacion contable de la ficha JOB.

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 63 de 374

    2.5.4 ADDRSPC Parmetro de palabra clave Este parmetro especifica cmo se ha de ejecutar el PASO en el que se ha especificado. Su codificacin al ser de palabra clave, se ajusta al siguiente formato: ADDRSPC[.nom_paso_proc]=valor donde el valor puede ser : - VIRT - REAL Por defecto asume VIRT a no ser que se haya especificado a nivel de JOB. Como ya se dijo en la explicacin de la sentencia JOB, la diferencia entre ambos valores estriba en el hecho de que haya o no paginacin. En el caso de que se especifique este parmetro a nivel de JOB, y a nivel de EXEC, solo se tendr en cuenta lo especificado a nivel de JOB, ignorndose los especificados a nivel de paso. Por tanto cuando se quiera ejecutar unos pasos en memoria real y otros en memoria virtual deber especificarse este parmetro solo a nivel de EXEC. Ejemplo 01 //JMP12 JOB (123,456),'JMP-PRU',CLASS=X, 02 // MSGLEVEL=(1,1),NOTIFY=T976614 03 //PROCESO PROC 04 //PASO@0 EXEC ... 05 ... 06 //PASO@1 EXEC ... 07 ... 08 // PEND 09 //* ------------------ fin procedimiento 10 //PASO1 EXEC PGM=PROGRAM1,ADDRSPC=REAL 11 ... 12 //PASO2 EXEC PGM=PROGRAM2,ADDRSPC=VIRT 13 ... 14 //PASO3 EXEC PROC=PROCESO,ADDRSPC=VIRT 15 ... 16 //PASO4 EXEC PROCESO,ADDRSPC.PASO@1=REAL ...

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 64 de 374

    donde, la lnea : 10 Determina que PASO1 se ejecute en memoria REAL. 12 Determina que PASO2 se ejecute en memoria VIRTual. 14 Determina que todos los pasos del procedimiento se ejecuten en memoria VIRTual. 16 Determina que PASO@1 del procedimiento se ejecute en memoria REAL.

  • TSO para desarrolladores: JCL Autor: Jos M. Peco

    Pgina 65 de 374

    2.5.5 COND Parmetro de palabra clave