JOBID y JOBNAME de un JCL que se esta ejecutando

Utilitarios artesanales que desarrollamos para nosotros y deseamos compartir (en REXX)
Responder
falcon
Usuario avanzado
Usuario avanzado
Mensajes: 57
Registrado: 15 Sep 2006, 08:46
País: España
Ciudad: Barcelona
Ocupación: Administrador de CICS

JOBID y JOBNAME de un JCL que se esta ejecutando

Mensaje por falcon » 23 Feb 2017, 08:37

Buenos dias,

A veces para controlar la ejecución de un JCL o sus listados, necesitamos saber que JOBID y JOBNAME tiene.
Os adjunto 2 formas de saberlo:
/* REXX */
/* A TRAVES DEL SDSF */
NUSERID = SYSVAR('SYSUID')

ISFRC=ISFCALLS('ON','SSTYPE=JES2')
IF ISFRC <> 0 THEN DO
SAY "CRIDA AL SDSF INCORRECTE"
EXIT ISFRC
END

ADDRESS SYSCALL
"SLEEP" 1 /*SLEEP FOR ?? SECONDS*/
CALL SYSCALLS 'OFF'

ISFPREFIX="*"
ISFOWNER=NUSERID
ISFCOLS="JNAME JOBID"
ADDRESS SDSF "ISFEXEC I"
LRC=RC
IF LRC<>0 THEN
DO
CALL ISFCALLS('OFF')
EXIT 20
END
do a = 1 to JNAME.0
say 'JOBNAME:' JNAME.a 'JOBID:' JOBID.a
end
/* A TRAVES DE LA MEMORIA */
TCB = C2D(STORAGE(021C,4)) /* TCB ADDRESS AT '21C'X OF PSA */
TIOT = C2D(STORAGE(D2X(TCB + 12), 4)) /* TIOT ADDRESS AT TCB + 12 */
JOBNAME = STORAGE(D2X(TIOT), 8) /* JOBNAME AT TIOT + 0 */
JSCB = C2D(STORAGE(D2X(TCB + 180), 4)) /* JSCB ADDRESS AT TCB + 180 */
SSIB = C2D(STORAGE(D2X(JSCB + 316), 4)) /* SSIB ADDRESS AT JSCB + 316 */
JOBNUMBER = STORAGE(D2X(SSIB + 12), 8) /* JOB NUMBER AT SSIB + 12 */
SAY 'JOBNAME:' JOBNAME 'JOBNUMBER:' JOBNUMBER
exit

JOBNAME:Z15PROVA JOBID: JOB01059
JOBNAME: Z15PROVA JOBNUMBER: JOB01059

Saludos. Espero que os sirva.
FALCON

Responder