Está en la página 1de 43

TALLER MAINFRAME

Introduccin al Hercules y z/OS


Urtzi Larrieta Alvarez

AGENDA
-Introduccin al Taller -Que es un mainframe y como funciona -Introduccin al emulador Hercules -Parametrizacin Hercules (hercules.cnf) - Pausa -Puesta en marcha z/OS y TSO LOGON -ISPF y parametrizacin bsica z/OS - Pausa para comer -Introduccin a los JOBS y al lenguaje JCL -Control de los JOBS con SDSF -Sometiendo mi primer JOB -Dudas, problemas y sugerencias. -Mas informacin

Introduccin al Taller
-Objetivos: -Comprender la teoria de funcionamiento del mainframe -Entender la configuracin y parametrizacion -Primeros pasos en el acceso al sistema y controlar la sesion -Lenguaje de control de los trabajos (JCL)

Que es un Mainframe
-Un grandisimo Ordenador con mucho de todo (RAM, CPU, Discos, etc) -Pensado para la alta transaccionalidad e inmediatez del dato -Diseado para la operacin en condiciones extremas (Redundancia) -Robustez (no se cuelga, no downtime) -Preparado para cargas dispares de trabajo (Xmiles usuarios)

Como funciona un Mainframe


-Hardware -CPU y Memoria Subsistema de Canales -Subsistema de Canales Unidades de Control -Unidades de control Dispositivos

Como funciona un Mainframe II


-Direccionamiento DMA: Todo son direcciones de memoria -Canales: CHPID de 00 a FF. PCHID de 0000 a FFFF -Unidades de control: 0000 a FFFF -Dispositivos: desde 0000 a FFFF -REGLAS: -1 UC solo puede direccionar hasta 256 dispositivos -1 Canal solo puede direccionar hasta 256 UC. -IOCDS: Macro-instrucciones de configuracin mainframe. Al compilarse con el IOCP, se genera un IODF.

Como funciona un Mainframe III


-EJEMPLO IOCDS:
CHPID CHPID CHPID CHPID PCHID=120,PATH=(CSS(0),F1),TYPE=FC,SHARED PCHID=121,PATH=(CSS(0),F2),TYPE=FC,SHARED PCHID=122,PATH=(CSS(0),F3),TYPE=FC,SHARED PCHID=123,PATH=(CSS(0),F4),TYPE=FC,SHARED

CNTLUNIT CUNUMBR=1000,PATH=((CSS(0),F1,F2,F3,F4)),UNIT=2105,CUADD=00, + UNITADD=((00,256)) CNTLUNIT CUNUMBR=1100,PATH=((CSS(0),F1,F2,F3,F4)),UNIT=2105,CUADD=01, + UNITADD=((00,256)) IODEVICE ADDRESS=(1000,256),CUNUMBR=(1000),UNIT=3390 IODEVICE ADDRESS=(1100,256),CUNUMBR=(1100),UNIT=3390

4 Canales FICON (F1,F2,F3 y F4) conectados a dos UC (1000 y 1100), las cuales cada una direcciona 256 discos 3390 (1000 a 10FF y 1100 a 11FF)

Como funciona un Mainframe IV


-TIPOS DE UC: -Impresoras (6400, 6262, etc) -Discos (3990, 3880, 2105, etc) -Cintas (3802, 3480, 3490, 3590, etc) -Comunicaciones (3088, 3745, OSA, etc) -Terminales o pantallas (3174) -TIPOS DE DISPOSITIVOS: -Impresoras (6400, 6262, etc) -Discos (3380, 3390, 9370, etc) -Cintas (3420, 3480, 3490, etc) -Comunicaciones (OSA, OSD, OSE, etc) -Terminales o pantallas (3270, 3215, etc).

Como funciona un Mainframe V


-RECUERDA: -TODO DISPOSITIVO DEBE TENER UNA DIRECCION. Para acceder a l, debemos conocer su direccin.

-Si el dispositivo no tiene direccin conocida, NO EXISTE

Introduccin al Hercules
-Es un EMULADOR de entorno mainframe, no un virtualizador, para PC. -Contiene el juego de instrucciones de los procesadores mainframe (arquitectura S/370, ESA/390 y ESAME System Z-) -Soporta gran variedad de dispositivos mainframe, emulandolos. -Cintas, discos, impresoras, comunicaciones, terminales. -La potencia, el nmero de CPUs y memoria depende enteramente de la potencia del PC donde se instala. -El SO invitado que corre bajo Hercules (z/OS, z/VM, VSE/ESA, OS/390, zLinux), no tiene conciencia de que est funcionando bajo un entorno emulado, en todo momento piensa que esta bajo plataforma real.

Introduccin al Hercules II
-Como emula el Hercules dispositivos reales de mainframe? -Discos. Ficheros en el PC. Ej: Un disco 3390 modelo 3, genera un fichero en disco de 3 GB. Un 3390-9, 9 GB -Cintas: Ficheros de tamao variable. Ej: Si grabo una cinta que me ocupa 300 MB, hercules crea un fichero de 300 MB. -Impresoras: Ficheros TXT que se crean e incrementan cuando el sistema invitado guest- manda un listado. -Terminales: Servidor de Telnet. Un terminal real se emula mediante una sesion de telnet.

Instalacin Hercules

Parametrizacin Hercules
-Fichero HERCULES.CNF (Configuracin HOST)
-CPUSERIAL -MODEL -CPUMODEL -MAINSIZE -XPNDSIZE -CNSLPORT -NUMCPU -TZOFFSET -OSTAILOR -PANRATE -ARCHMODE -PGMPRDOS 066435 603 2094 1024 0 23 2 +0100 OS/390 FAST ESAME LICENSED # # # # # # # # # # # # Numero de Serie CPU Submodelo Tipo y Modelo CPU Tamao memoria principal en MB Tamao memoria expandida en MB Puerto TCP del servidor de terminales Numero de CPUs Huso horario Configuracin Hercules adecuada Velocidad de Refresco del panel Arquitectura S/370, ESA/390 or ESAME Permiso para ejecutar z/OS bajo Hercules

Parametrizacin Hercules II
-Fichero HERCULES.CNF (Parmetros de IPL) -LOADPARM XXXXYYZA -XXXX: Direccin de disco donde est el IODF -YY: Parmetro de LOADYY (SYS1.IPLPARM) -Z: Parametros opcionales (M para ver mensajes detallados en consola, etc) -A: Nmero donde va a buscar el SYS1.NUCLEUS alternativo (generalmente 1) -EJEMPLO: LOADPARM 0A8200M1 -El disco donde reside el IODF es el 0A82, se cargar el miembro LOAD00 de la SYS1.IPLPARM, queremos mensajes detallados en consola y el nucleo alternativo sera el NUC1.

Parametrizacin Hercules III


-Fichero HERCULES.CNF (Listado de dispositivos)
-000F -0700 -0701 -0900 -0580 -0581 -1000 -1001 -1002 -1003 -1004 -1005 -1006 -1007 -1008 -1009 1403 3270 3270 3270 3490 3490 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 prt01.txt

* * ..\ZOS110\JARES1.CCKD ..\ZOS110\JARES2.CCKD ..\ZOS110\JASYS1.CCKD ..\ZOS110\JAUSS1.CCKD ..\ZOS110\JAPRD1.CCKD ..\ZOS110\JAPRD2.CCKD ..\ZOS110\JAPRD3.CCKD ..\ZOS110\JAPRD4.CCKD ..\ZOS110\JADIS1.CCKD ..\ZOS110\JADIS2.CCKD

Pausa para copiar el z/OS ADCD

Problems Copying?

Hercules y z/OS
-Que es el AD/CD? -Application Development Controlled Distribution: Un z/OS preinstalado y parametrizado por IBM para ISVs que desarrollen bajo plataforma System Z (COBOL, CICS, DB2, WAS, MQ, JAVA, etc). -Viene de una copia en una mquina de produccin real Debemos saber qu configuracin tiene para aplicarla en nuestro Hercules. -IODF: Release Notes del AD/CD
http://dtsc.dfw.ibm.com/MVSDS/%27HTTPD2.adcd.global.html%28readm110%29%27

-0580 a 058F: Cintas 3490 -0A80 a 0A9F: Discos 3390 -0700 a 071F: Terminales 3270 (el 0700 es el Master Console) -0900 a 091F: Terminales 3270 -0E20 a 0E22: CTC para comunicaciones TCP/IP

Hercules y z/OS II
-Configuraciones predefinidas en la SYS1.PARMLIB
CS 00 WS DC DB DI CC CW 2C 2W IC IW AC AW BC BW 99 CLPA and cold start of JES2. Base z/OS system functions, no CICS, DB2, IMS, WAS. Warm start of JES2. Base z/OS system functions i.e. no CICS, DB2, IMS, WAS, etc. Warm start of JES2. Base z/OS system functions i.e. no CICS, DB2, IMS, WAS, etc. CLPA, brings in CICS LPA modules, cold start of JES2, starts up DB2 and CICS. Warmstart of JES2 and starts the DB2 and CICS. CLPA and cold start of JES2 and loads the IMS Libraries. IMS manually started. CLPA and cold start of JES2, loads the CICS Libraries, starts up CICS, no DB2. Warm start of JES2, and starts up CICS. CLPA, cold start of JES2, starts up DB2, no CICS. Warm start of JES2, starts up DB2, no CICS. CLPA and cold start of JES2 and load the IMS Libraries, start IMS, no DB2&CICS. Warm start of JES2 start IMS, no DB2 or CICS. CLPA and cold start of JES2 load IMS and CICS libraries, start IMS, DB/2, CICS. Warmstart of JES2. start IMS, DB/2, and CICS. CLPA and cold start of JES2, load WAS libraries, WAS is manually started Warmstart of JES2. WAS is manually started. Points to IODF99 for IPL on MP3000.

Arranque del z/OS


-1.- IPL al disco 0A80, es el que tiene el Texto IPL (Bootstrap) -2.- El Texto IPL mira los parametros y averigua donde est el IODF. Tambin mira el miembro SYS1.IPLPARM(LOADXX) y entonces sabe donde est el Catalogo Maestro, y tambin sabe con que parametros entrar en la SYS1.PARMLIB(IEASYSXX) . La pantalla 0700 muestra el NIP (Nucleus Initialization Program, en texto turquesa). -3.- El fichero IEASYSXX tiene todos los parmetros de todos los sistemas. De ah, se van cogiendo y a su vez se llaman a otros ficheros de configuracin de la PARMLIB -4.- Se configura la memoria, se cargan modulos de la APF y LINKLST y se inicia el SYSPLEX. -5.- Se lee el miembro (CONSOLXX) y se inicia el MSTJCL00 (Master JCL, el autoexec.bat del mainframe).

Arranque del z/OS II


-6.- Con el CONSOLXX ledo, la pantalla 700 se convierte en Master Console (texto cambia a verde). -7.- Salen numerosos mensajes de arranque de subsistemas. -Texto blanco, mensajes de atencin -Texto rojo, mensajes de error o advertencia severa. -8.- Arranque del JES2 (sistema de control de trabajos) -9.- Arranque ZFS (Sistema UNIX bajo z/OS) -10.- Arranque de VTAM (sistema de comunicaciones y terminales) -11.- Arranque TSO (Terminales interactivos). En los terminales 701, 702 sale el logo de z/OS.

Arranque del z/OS III


-12.- Entramos en la mquina con LOGON o L TSO en cualquiera de los terminales (0701, 0702, 0900, etc). -USERID: IBMUSER -PASSWORD: SYS1. Nos pedir cambiarlo. Pues lo cambiamos (8 caracteres) -LOGON IN PROGRESS. ISPF!!

PROFIT!!!1!

Navegacin bsica ISPF


-Todo son opciones de men. Un men lleva a otro submenu. Si te sabes las opciones, existen atajos: - Opcin 3 . Datasets. Subopcin 4: List 3.4 llegas directamente -Opciones ms utilizadas: Edicin de datasets y miembros. -HLQ y nombres. SYS1.PARMLIB o KUJAKU.TALLER.JCL. HLQ sirve para catalogar y enumerar. -Desde el ISPF, se llega a toda la mquina: Administracin, edicin, control, operacin y navegacin. -SDSF: Spool Search and Display Facility: Herramienta angular del control de todos los trabajos interactivos y BATCH -RACF: Resource Access Control Facility: Sistema de seguridad de permisos (esto es un MUNDO)

Navegacin bsica ISPF II


-Mas aplicaciones: -WLM: WorkLoad Manager: Herramienta de priorizacin de cargas de trabajo (otro MUNDO) -ISMF: Interactive Storage Management Facility: Administracin del almacenamiento en disco y cinta robtica- (como 2 mundos) -DB2 Tools: Todo un submenu para la administracin del DB2 -Etc

Navegacin bsica ISPF III


-DATASETS: Tipos y utilidades: -Secuencial -Particionado -VSAM -En nuestro caso, el 90% del tiempo se trabaja con particionados. Un particionado permite miembros dentro del mismo dataset. Miembro puede ser un fichero, un JCL, una configuracin, etc. -TRUCOS: KAMI-SAMA creo el primer JCL. El resto de los mortales copiamos y pegamos xDDD -Si vamos a crear un dataset nuevo, lo mas facil es copiar uno existente (aunque os enseare a crearlo desde CERO). -CATALOGOS. Sin ellos, solo podras saber que ALGUIEN ha hecho ALGO con respecto de ALGO en ALGUN SITIO. -Creacin de datasets: Tipo, tamao, y lugar. Luego se catalogan, y as solo con saber el nombre, nos basta.

Pausa para Comer

Introduccin a los JOBs


-Tipos de Trabajos o Jobs: -Por lotes o BATCH (JOB) -Interactivo (TSU) Time Sharing User -Tarea iniciada (STC) Started Task Control -Un trabajo siempre tiene un Flujo: Datos de entrada resultado .

Proceso

Salida y

-Un trabajo o JOB est compuesto por uno o ms pasos o STEPs. -Cada paso ejecuta un programa. Dentro del paso se codifican: -Las variables de entrada al programa -Las variables de salida del programa -Los parmetros del programa.

Introduccin a los JOBs II


-El JES2 (Job Entry Subsystem) se encarga de controlar la ejecucin: -Existen Clases de trabajos (prioridad de ejecucin) asociadas a uno o mas iniciadores (INIT). Tu defines la clase por donde deseas que tu trabajo se ejecute. -Cada iniciador (INIT) es un flujo de trabajo. Ejecuta el proceso del trabajo. Solo se ejecuta un trabajo por cada INIT. -Una vez acabado el proceso, el resultado lo deja en una clase de salida. -Toda la salida de los trabajos se almacena en un area llamada SPOOL controlada por el JES2. El control del SPOOL se realiza desde la aplicacin SDSF.

Introduccin al lenguaje JCL


-Sintaxis de los JCL: -1.- La gran mayora de las sentencias JCL comienzan con // (existe un delimitador /* que mas tarde comentar). 2.- Todo lo que se escriba a partir de la columna 72, ser ignorado. 3.- Todo Job comienza con la sentencia JOB 4.- Se debe escribir todo en MAYUSCULAS (si editas el JCL en el ISPF te lo convierte en maysculas directamente) 5.- Todo job debe tener como mnimo 1 Paso (sentencia EXEC) 6.- Todo paso debe incluir como mnimo una definicin de datos (sentencia DD, viene a ser como el var de Pascal). 7.- El job se dar por finalizado cuando se encuentre una nica lnea con nada mas que //.

Introduccin al lenguaje JCL II


-Primera ficha de nuestro JCL:
1 2 3 4 5 6 ----+----0----+----0----+----0----+----0----+----0----+----0//MIJOB JOB EUSKAL,KUJAKU,CLASS=A

-MIJOB, nombre del JOB, 8 caracteres mximo, y nunca debe empezar con un nmero. -JOB significa que el Reader interpreta que lo que viene a continuacin es un trabajo. -Parametro posicional EUSKAL sera el nombre del accounting . -Parametro posicional KUJAKU sera la persona opcional- que lanza el JOB de cara a documentacin. -Parametro de referencia CLASS=A, la clase del JOB por la que optamos ejecutar. -Los parmetros posicionales siempre van ANTES que los de referencia.

Introduccin al lenguaje JCL III


-Segunda ficha de nuestro JCL:
1 1 2 3 4 5 6 7 7 ----+----0----+6---0----+----0----+----0----+----0----+----0----+----0-2 //MIJOB JOB EUSKAL,KUJAKU,CLASS=A,MSGCLASS=A, // MSGLEVEL=(1,1),NOTIFY=&SYSUID -MSGCLASS que nos dice en que clase de salida dejar los mensajes que vaya generando el job. -MSGLEVEL: Queremos todos los mensajes JCL que se generen en el sistema (el primer 1) y luego, que tambin queremos los mensajes relacionados si reservamos o allocamos ficheros que vaya a usar el job (el segundo 1). -NOTIFY: Importante variable que nos permite recibir un mensaje en nuestra pantalla (&SYSUID) cuando el job acabe (bien o mal).

Introduccin al lenguaje JCL IV


-Creacin del paso en nuestro JCL:
1 1 2 3 4 5 6 7 7 ----+----0----+6---0----+----0----+----0----+----0----+----0----+----0-2 //MIJOB JOB EUSKAL,KUJAKU,CLASS=A,MSGCLASS=A, // MSGLEVEL=(1,1),NOTIFY=&SYSUID //PASO1 EXEC PGM=IEBGENER -Codificamos el Paso o STEP. Lo llamamos PASO1 (no mas de 8 caracteres) con un EXEC que llame a un programa o utility en jerga mainframera. -IEBGENER es una utility que nos permite copiar de un sitio a otro. Si se lee la documentacin de IEBGENER, copia lo que pones en SYSUT1 y te lo deja en SYSUT2, y no necesita parmetros de ningn tipo para condicionar su ejecucin.

Introduccin al lenguaje JCL V


-Creacin del paso en nuestro JCL:
1 1 2 3 4 5 6 7 7 ----+----0----+6---0----+----0----+----0----+----0----+----0----+----0-2 //MIJOB JOB EUSKAL,KUJAKU,CLASS=A,MSGCLASS=A, // MSGLEVEL=(1,1),NOTIFY=&SYSUID,REGION=256K //PASO1 EXEC PGM=IEBGENER,REGION=256K -IEBGENER necesita memoria para ser ejecutado. Esto se soluciona codificando REGION en uno de estos sitios: -En la definicin del JOB (AZUL) -En la ficha del paso (VERDE)

-Cual es la diferencia?

Introduccin al lenguaje JCL VI


-Codificacin de los parmetros de la utility en nuestro JCL:
1 1 2 3 4 5 6 7 7 ----+----0----+6---0----+----0----+----0----+----0----+----0----+----0-2 //MIJOB JOB EUSKAL,KUJAKU,CLASS=A,MSGCLASS=A, // MSGLEVEL=(1,1),NOTIFY=&SYSUID,REGION=256K //PASO1 EXEC PGM=IEBGENER //SYSUT1 DD * Mi primer JCL, This is full of epic and win!! //SYSUT2 DD SYSOUT=A //SYSPRINT DD SYSOUT=A //SYSIN DD DUMMY // -Con el IEBGENER, en SYSUT1 le decimos que queremos que el texto de a continuacion (DD *) nos lo copia a SYSUT2, es decir, a la clase de salida A (SYSOUT=A). La ejecucin del job imprimela tambin en la misma clase de salida (SYSOUT=A) y como IEBGENER no requiere de parmtros, el SYSIN siempre se debe poner aunque no se use) me lo dejas en DUMMY, es decir, valor nulo.

Introduccin al lenguaje JCL VII


-Jugar con los delimitadores de DD * :
1 1 2 3 4 5 6 7 7 ----+----0----+6---0----+----0----+----0----+----0----+----0----+----0-2 //MIJOB JOB EUSKAL,KUJAKU,CLASS=A,MSGCLASS=A, // MSGLEVEL=(1,1),NOTIFY=&SYSUID,REGION=256K //PASO1 EXEC PGM=IEBGENER //SYSUT1 DD * Mi primer JCL, This is full of epic and win!! /* //SYSUT2 DD SYSOUT=A //SYSPRINT DD SYSOUT=A //SYSIN DD DUMMY //
-Como no disponemos de un fichero cuyo contenido sea el del ejemplo, hay una manera de incluir ese dato dentro del propio jobstream o flujo del job: Utilizando la definicin DD *. Cuando el parser se encuentra con esta construccin, asume que las siguientes lneas sern el contenido del dato en si, que dejara en SYSUT1. Cuando termina de asumir que las siguientes fichas son datos? Cuando se encuentra con un /* o una ficha nueva del job que se ver en seguida porque aparecen las // en las columnas 1 y 2. De hecho, es ms bonito visualmente que el job quede as, aadiendo ese /*

Introduccin al lenguaje JCL VIII


-Jugar con los delimitadores de DD * :
1 1 2 3 4 5 6 7 7 ----+----0----+6---0----+----0----+----0----+----0----+----0----+----0-2 //MIJOB JOB EUSKAL,KUJAKU,CLASS=A,MSGCLASS=A, // MSGLEVEL=(1,1),NOTIFY=&SYSUID,REGION=256K //PASO1 EXEC PGM=IEBGENER //SYSUT1 DD * ********************************************************** * * Mi primer JCL, This is full of epic and win!! * *********************************************************** /* //SYSUT2 DD SYSOUT=A //SYSPRINT DD SYSOUT=A //SYSIN DD DUMMY //

Introduccin al lenguaje JCL IX


-Jugar con los delimitadores de DD DATA :
1 1 2 3 4 5 6 7 7 ----+----0----+6---0----+----0----+----0----+----0----+----0----+----0-2 //MIJOB JOB EUSKAL,KUJAKU,CLASS=A,MSGCLASS=A, // MSGLEVEL=(1,1),NOTIFY=&SYSUID,REGION=256K //PASO1 EXEC PGM=IEBGENER //SYSUT1 DD DATA ///////////////////////////////////////////////////////// // // // Mi primer JCL, This is full of epic and win!! // // // ///////////////////////////////////////////////////////// /* //SYSUT2 DD SYSOUT=A //SYSPRINT DD SYSOUT=A //SYSIN DD DUMMY //

Introduccin al lenguaje JCL X


-Jugar con los delimitadores de DD DATA :
1 1 2 3 4 5 6 7 7 ----+----0----+6---0----+----0----+----0----+----0----+----0----+----0-2 //MIJOB JOB EUSKAL,KUJAKU,CLASS=A,MSGCLASS=A, // MSGLEVEL=(1,1),NOTIFY=&SYSUID,REGION=256K //PASO1 EXEC PGM=IEBGENER //SYSUT1 DD DATA,DLM=$$ /*******************************************************/ /* */ /* Mi primer JCL, This is full of epic and win!! */ /* */ /*******************************************************/ $$ //SYSUT2 DD SYSOUT=A //SYSPRINT DD SYSOUT=A //SYSIN DD DUMMY //

Control de JOBs con SDSF

Sometiendo mi primer JOB


-SUBMIT o SUB a secas

-Mensaje de aceptacin del JES2 (JOBXXXXX) -Mensaje de finalizacin del JOB

Sometiendo mi primer JOB II


-Comprobamos su ejecucin en el SDSF

-Listados de salida

Dudas, problemas y sugerencias


Really?

Enlaces de Inters
Emulador Hercules: http://www.hercules-390.org/ Web IBM AD/CD: http://dtsc.dfw.ibm.com/MVSDS/HTTPD2.ADCD.GLOBAL.HTML(READ1 10S) ABCs of system Programming: http://www.lbdsoftware.com/abcs.html Programas y Utilitys de IBM: http://en.wikipedia.org/wiki/IBM_mainframe_utility_programs

Gracias!

También podría gustarte