Guías · Nivel 4

z/OS para quien viene de Windows: LPAR, IPL, JES2 y SDSF, datasets, RACF, CICS e IMS, SMF, REXX y un batch nocturno que no termina

Los conceptos del mainframe traducidos a lo que ya conoces de Windows y Linux: LPAR, IPL y capacidad, JES2 y el JCL, SDSF y los códigos de retorno, datasets, RACF, CICS e IMS, SMF, REXX y los comandos de consola, con un trabajo nocturno que no ha terminado y los informes de la mañana sin salir.

Qué vas a conseguir

Entender el entorno z/OS que te toca soportar sin ser programador de sistemas: qué es cada pieza y a qué se parece en Windows o Linux, dónde mirar la salida de un trabajo, qué significan los códigos de retorno, qué comandos de consola son de solo lectura y cuáles no, y cómo seguir un trabajo nocturno que no ha terminado hasta dar con quién lo está bloqueando.

Antes de empezar

  • Un usuario TSO con acceso a ISPF y SDSF (o a la interfaz web de z/OSMF) y, si te lo dan, autorización para emitir comandos de consola desde SDSF. Lo de esta guía es z/OS 3.1 o 3.2.
  • El runbook del centro: quién es el programador de sistemas de guardia, quién es el dueño de cada cadena batch y qué planificador se usa (IBM Z Workload Scheduler, Control-M u otro).
  • Una regla que no se negocia: en z/OS casi todo lo que no empieza por D (display) cambia algo. Ante la duda, solo comandos D y $D, y el resto con la aprobación del responsable.

1. El mapa: z/OS en términos de Windows

z/OSLo más parecido en Windows/LinuxPara qué lo vas a usar
LPARUna VM sobre un hipervisor (PR/SM, en el firmware de la máquina)Cada LPAR es un sistema z/OS (o Linux) con su CPU, memoria y E/S
HMCvCenter más iDRAC/iLOArrancar, parar y repartir capacidad entre LPAR; solo con permiso
IPLEl arranque del sistemaCuando hay mantenimiento o un cambio que no es dinámico
JES2El planificador de tareas más la cola de impresiónRecibe los trabajos batch, los ejecuta y guarda su salida en el spool
JCLUn .bat que declara programa y ficherosDescribe cada paso de un trabajo
SDSFEl Visor de eventos más el Administrador de tareasVer trabajos, su salida y la consola
DatasetUn fichero (con formato fijo)Los datos de entrada y salida del batch
RACFActive Directory más las ACL de NTFSUsuarios, grupos y quién puede leer qué
CICS e IMSUn servidor de aplicaciones (IIS, Tomcat)Las transacciones en línea
SMFEl registro de eventos y los contadores de rendimientoRendimiento, auditoría y facturación
REXXPowerShellPequeñas automatizaciones

2. LPAR, IPL y capacidad

  • Una máquina IBM Z se divide en LPAR. Varias LPAR z/OS suelen formar un Parallel Sysplex que comparte datos y carga, igual que un clúster: si una LPAR se para, las aplicaciones siguen en las otras.
  • El IPL (Initial Program Load) es el arranque. Se lanza desde la HMC con una dirección de carga (el disco del sistema) y un parámetro de carga que apunta al miembro LOADxx de configuración. Se planifica: después de aplicar mantenimiento (PTF) con SMP/E, para un cambio de parámetros que no se puede activar en caliente o por una ventana trimestral. En un sysplex se hace LPAR a LPAR (rolling IPL). Un IPL no planificado es un incidente grave y lo lleva el programador de sistemas.
  • Capacidad: la CPU se mide en MSU y el coste del software se calcula sobre ella (los informes SCRT salen de los registros SMF). Los pesos y los topes de cada LPAR se definen en la HMC; la capacidad temporal (On/Off Capacity on Demand, CBU para contingencia) se activa por contrato. Dentro de la LPAR, WLM reparte la CPU según la prioridad de cada carga. Para operaciones: un cambio de capacidad es un cambio planificado, nunca un ajuste para que un trabajo vaya más rápido.

D IPLINFO dice cuándo fue el último IPL y con qué parámetros; D M=CPU, los procesadores en línea.

Consola · último IPL
D IPLINFOIEE254I 02.15.07 IPLINFO DISPLAY 418 SYSTEM IPLED AT 05.12.44 ON 10/05/2026 RELEASE z/OS 03.02.00    LICENSE = z/OS USED LOAD00 IN SYS0.IPLPARM ON 0A82 IEASYS LIST = (00,PR) (OP) IPL DEVICE: ORIGINAL(0A80) CURRENT(0A80) VOLUME(ZOS32A)

3. JES2, JCL y los trabajos batch

Un trabajo es un JCL con una tarjeta JOB, uno o varios pasos EXEC (el programa) y sus DD (los ficheros):

JCL · NOMDIA01
//NOMDIA01 JOB (CONT,NOM),'NOMINA DIARIA',CLASS=N,MSGCLASS=X//STEP010  EXEC PGM=IEBGENER//SYSPRINT DD SYSOUT=*//SYSIN    DD DUMMY//SYSUT1   DD DSN=PROD.NOMINA.MAESTRO,DISP=SHR//SYSUT2   DD DSN=PROD.NOMINA.EXTRACTO(+1),DISP=(NEW,CATLG,DELETE),//            SPACE=(CYL,(5,5)),RECFM=FB,LRECL=200
  • CLASS=N decide qué iniciadores pueden ejecutarlo (un iniciador es un hueco de ejecución, como un trabajador de un grupo de procesos). Si ninguno sirve esa clase, el trabajo espera en cola.
  • DISP=SHR pide el dataset compartido; DISP=OLD o NEW, en exclusiva. Esa reserva (un ENQ) es la que hace esperar a otro trabajo que pide el mismo dataset.
  • El planificador lanza los trabajos en orden y con dependencias; JES2 solo los ejecuta. Los reinicios se hacen desde el planificador, no reenviando el JCL a mano.

4. SDSF: dónde se lee la salida

En SDSF, los comandos de panel:

  • ST: todos los trabajos (en cola, en ejecución y terminados). Filtra con PREFIX NOM* y OWNER *.
  • DA: lo que está activo ahora, con CPU y E/S. Un trabajo en DA con CPU al 0 % durante horas está esperando algo.
  • LOG: el SYSLOG, la consola del sistema con fecha y hora.
  • H y O: salida retenida y salida pendiente de imprimir; I, la cola de entrada.

Junto al trabajo, S abre toda la salida y ? la lista de ficheros: JESMSGLG (los mensajes de JES), JESJCL (el JCL tal como se interpretó) y JESYSMSG (lo que pasó en cada paso y con cada dataset). La columna Max-RC de ST resume el final:

Max-RCQué significa
CC 0000Correcto
CC 0004Aviso; según el programa, normal
CC 0008 o másError del programa; mira el paso en JESYSMSG
ABEND S0C4Fallo de sistema (acceso a memoria no válido), como un access violation
ABEND S222Cancelado por un operador
ABEND S322Superó el tiempo de CPU permitido
ABEND U4038Fallo de usuario (de la aplicación o del runtime)
JCL ERROREl JCL está mal o falta un dataset; no llegó a ejecutarse

Los códigos que empiezan por S son del sistema; los que empiezan por U, de la aplicación. Ninguno se arregla relanzando sin más: se pasa al dueño de la cadena con el paso y el mensaje.

5. Datasets, catálogo y RACF

  • Un dataset tiene un nombre de hasta 44 caracteres en partes de hasta 8 (PROD.NOMINA.MAESTRO). La primera parte (HLQ) suele indicar entorno y aplicación, y es la que protege RACF.
  • Tipos: secuencial (un fichero), PDS/PDSE (una carpeta de miembros, como SYS1.PARMLIB), VSAM (un fichero indexado, casi una tabla) y GDG (generaciones numeradas: (+1) es la nueva, (0) la última; como una rotación de logs).
  • El catálogo dice en qué volumen está cada dataset, como un DNS de ficheros. También existe z/OS UNIX con ficheros normales en zFS, donde viven Java, los certificados y muchas herramientas modernas.

RACF controla quién es quién y qué puede hacer. Lo administra el equipo de seguridad (atributo SPECIAL); operaciones suele poder consultar:

TSO · consultar un usuario y un perfil
LISTUSER JPEREZUSER=JPEREZ  NAME=JUAN PEREZ          OWNER=NOMINA    CREATED=24.112 DEFAULT-GROUP=NOMLECT  PASSDATE=26.290 PASS-INTERVAL= 90 ATTRIBUTES=REVOKEDLISTDSD DATASET('PROD.NOMINA.**') GENERIC
  • ATTRIBUTES=REVOKED: la cuenta está revocada, normalmente por intentos fallidos. La reactiva seguridad con ALTUSER JPEREZ RESUME, previa verificación.
  • Los permisos se dan a grupos, no a personas: PERMIT 'PROD.NOMINA.**' ID(NOMLECT) ACCESS(READ) GENERIC y, si el perfil está en memoria, SETROPTS GENERIC(DATASET) REFRESH. Niveles de acceso, de menos a más: NONE, EXECUTE, READ, UPDATE, CONTROL, ALTER.

6. CICS, IMS, SMF y REXX

  • CICS e IMS son gestores de transacciones: miles de operaciones cortas por segundo (consultar un saldo, registrar un pedido). Cada uno corre en una o varias regiones, que en SDSF ves como tareas arrancadas (en DA). Para saber si una región está viva: que aparezca en D A,L, su log en SDSF y, si te lo permiten, F CICSPRD1,CEMT I TASK para ver sus tareas. En IMS, /DIS A REG desde su terminal maestro o la consola con el carácter de comandos de ese IMS. Parar o reciclar una región lo decide el equipo de la aplicación.
  • SMF escribe registros numerados: el 30 (contabilidad de trabajos y pasos), del 70 al 79 (RMF, rendimiento), el 80 (RACF), el 110 (CICS) y el 89 (uso de producto, para la facturación). D SMF muestra dónde se están escribiendo.
  • REXX es el lenguaje de scripts de TSO. Con la interfaz REXX de SDSF se listan trabajos sin abrir paneles:
REXX · trabajos NOM* y su código de retorno
/* REXX */rc = isfcalls('ON')isfprefix = 'NOM*'isfowner = '*'Address SDSF "ISFEXEC ST"do i = 1 to JNAME.0  say JNAME.i JOBID.i QUEUE.i RETCODE.iendrc = isfcalls('OFF')

7. La consola y los comandos de operador

Desde SDSF se emiten con / delante (/D A,L) y la respuesta se ve en LOG o en ULOG. Los de consulta:

ComandoQué muestra
D A,LTrabajos, tareas arrancadas y usuarios TSO activos
D IPLINFOEl último IPL y sus parámetros
D R,LMensajes pendientes de respuesta (montajes de cinta, peticiones de operador)
D GRS,CRecursos con contención: quién tiene un dataset y quién lo espera
$D JOBQ,DELAY=YES,DELAYTrabajos en cola retrasados y el motivo
$D IIniciadores de JES2 y las clases que sirven

C (cancelar), $P, $C, V ... OFFLINE o una respuesta R nn,... cambian el sistema. Con la aprobación del dueño o del programador de sistemas, y anotados en el ticket.

8. El ticket: "el batch nocturno no ha terminado y no han salido los informes de la mañana"

7:45. Contabilidad no tiene los informes de nómina. En el planificador, NOMDIA01 aparece en ejecución desde las 02:10 y todo lo que depende de él está esperando.

  1. Dónde está: en SDSF, PREFIX NOM* y ST. Si la cola es EXECUTION y en DA no consume CPU, está esperando algo. Si la cola es INPUT, nunca empezó (paso 4).
  2. Qué espera: S sobre el trabajo y la salida JESYSMSG, o el LOG alrededor de las 02:10:
SDSF · LOG
IEF861I FOLLOWING RESERVED DATA SET NAMES UNAVAILABLE TO NOMDIA01IEF863I DSN = PROD.NOMINA.MAESTRO NOMDIA01 RC = 04*IEF099I JOB NOMDIA01 WAITING FOR DATA SETS
  1. Quién tiene el dataset:
Consola · contención
D GRS,CISG343I 07.48.12 GRS STATUS 233S=SYSTEMS SYSDSN   PROD.NOMINA.MAESTROSYSNAME  JOBNAME  ASID     TCBADDR   EXC/SHR    STATUSSYSA     JPEREZ   0087     008E5C10  EXCLUSIVE  OWNSYSA     NOMDIA01 0045     008FD0E8  SHARE      WAIT

Aquí es un usuario TSO que dejó el dataset abierto en edición por la tarde. Si el dueño es otro trabajo (una copia que se quedó colgada), la pista sigue igual: D A,L y su salida en SDSF.

  1. Otras esperas habituales:
  • Cinta: D R,L muestra un IEF233A M ... pendiente; el trabajo espera a que se monte un volumen. Con cinta virtual, lo resuelve el equipo de almacenamiento.
  • Retenido o sin iniciador: $D JOBQ,DELAY=YES,DELAY devuelve DELAY=(HOLD) o DELAY=(JOBCLASS). Retenido se libera con $A J4711 cuando el dueño lo confirma; para la clase, $D I dice si algún iniciador sirve la clase N.
  1. Resolver, con aprobación: se pide al usuario que salga de la edición; si no contesta, con el visto bueno del responsable, C U=JPEREZ para su sesión TSO. El trabajo continúa solo en cuanto se libera el dataset (IEF099I desaparece del log). Si la cadena ya no llega a tiempo, el dueño decide cancelar (C NOMDIA01) y relanzar desde el planificador en el paso que indique el runbook: reenviar a mano puede duplicar actualizaciones o crear una generación GDG de más.
  2. Comprobar: NOMDIA01 termina con CC 0000, los dependientes arrancan y los informes salen.

En el ticket: hora de inicio, mensaje de espera, salida de D GRS,C, quién aprobó la acción, comando emitido y resultado final.

Siguientes pasos

  • La guía de VMware ESXi y vCenter es el equivalente x86 de las LPAR y la HMC.
  • La de iDRAC e iLO cubre la gestión fuera de banda, la misma idea que la HMC en un servidor normal.
  • Para practicar con los paneles sin tocar producción, IBM ofrece el entorno gratuito IBM Z Xplore.

¿Falta algo o en tu entorno es distinto? Escríbeme y lo corrijo.

Tech Career Lab · newsletter

¿Te ha servido? Cada dos semanas envío una idea práctica para perfiles IT: LinkedIn, proyectos, networking y procesos de selección.

Apúntate y llévate las 33 ideas →