Pesquisar este blog
Mostrando postagens com marcador debug tool. Mostrar todas as postagens
Mostrando postagens com marcador debug tool. Mostrar todas as postagens
quinta-feira, 24 de janeiro de 2019
REXX para bom dia! - Gera arquivos de configuração do Debug Tool - Submete Hrecall para todos os membros
Script REXX para Automação no z/OS
/* REXX */
trace off;
CLEAR
SAY 'Ola Buga!'
SAY ' '
SAY 'Seja vem vindo...'
SAY ' '
SAY ' '
parse PULL rola
/******************************/
call verifica_primeira_vez_do_dia
say flag
if flag = 'S' then
do
call grava_ja_rodamos;
call aloca_debug_tool_files;
call hrecall_de_tudo;
end;
ISPF
exit 0
/******************************/
grava_ja_rodamos:
/******************************/
dsname = 'walbuga.apagador'
"ALLOC FI(Pdsout) DA('"dsname"') new
tracks space(10 10) dir(01)
Recfm(F B) LRECL(80)"
"FREE FI(Pdsout)"
"allocate dataset('walbuga.apagador(#15)') fi(#15) shr reuse"
"execio 0 diskw #15 (stem o. open)"
o.1 = 'CEBOLA '
"execio * diskw #15 (stem o. finis)"
"free fi(#15)"
return
/******************************/
/******************************/
dsname = 'walbuga.apagador'
"ALLOC FI(Pdsout) DA('"dsname"') new
tracks space(10 10) dir(01)
Recfm(F B) LRECL(80)"
"FREE FI(Pdsout)"
"allocate dataset('walbuga.apagador(#15)') fi(#15) shr reuse"
"execio 0 diskw #15 (stem o. open)"
o.1 = 'CEBOLA '
"execio * diskw #15 (stem o. finis)"
"free fi(#15)"
return
/******************************/
verifica_primeira_vez_do_dia:
/******************************/
"allocate dataset('walbuga.apagador(#15)') fi(#15) shr reuse"
"execio * diskr #15 (stem oia. finis)"
if pos('CEBOLA',oia.1) > '0' then
do
say 'TSO te derrubou, neh amigao ?'
flag = 'N'
end
else
do
say 'Divirta-se Buga'
flag = 'S'
end
return
/******************************/
aloca_debug_tool_files:
/******************************/
debug_tool = "'WALBUGA.G#NG.SEMANA09(DEBUG#01)'"
SUBMIT debug_tool
return
/******************************/
hrecall_de_tudo:
recall = "'WALBUGA.G#R0.DATA(JCL#0004)'"
SUBMIT recall
return
WALBUGA.G#NG.SEMANA09(DEBUG#01)
//WALBUGA2 JOB NG,BUGA,CLASS=K RESTART=STEP#002
/*NOTIFY WALBUGA
//*--------------------------------------------------------------------
//* Aloca arquivos utilizados pelo debug tool no z/OS
//*--------------------------------------------------------------------
//STEP#001 EXEC PGM=IEFBR14
//SAVINGS DD DSN=WALBUGA.DBGTOOL.SAVESETS,
// DISP=(NEW,CATLG,DELETE),
// UNIT=SYSDA,SPACE=(CYL,(20,10)),
// DCB=(LRECL=3204,BLKSIZE=0,DSORG=PS,RECFM=VB)
//SETTINGS DD DSN=WALBUGA.DBGTOOL.SAVEBPS,
// DISP=(NEW,CATLG,DELETE),
// UNIT=SYSDA,SPACE=(CYL,(20,10)),
// DCB=(LRECL=3204,BLKSIZE=0,DSORG=PO,RECFM=VB),
// DSNTYPE=LIBRARY
//*--------------------------------------------------------------------
//* Carrega configuracoes que o Buga gosta!
//*--------------------------------------------------------------------
//STEP#002 EXEC PGM=IEBGENER
//SYSIN DD DUMMY
//SYSPRINT DD SYSOUT=X
//SYSUT1 DD *
COMMENT YES
SET ASSEMBLER OFF;
SET ASSEMBLER STEPOVER EXTONLY;
SET AUTOMONITOR ON NOLOG CURRENT;
SET CHANGE STATEMENT;
SET COLOR TURQUOISE NONE HIGH TITLE HEADERS;
SET COLOR GREEN NONE LOW TITLE FIELDS;
SET COLOR TURQUOISE REVERSE LOW MONITOR AREA;
SET COLOR TURQUOISE REVERSE LOW MONITOR LINES;
SET COLOR WHITE REVERSE LOW SOURCE AREA;
SET COLOR TURQUOISE REVERSE LOW SOURCE PREFIX;
SET COLOR YELLOW REVERSE LOW SOURCE SUFFIX;
SET COLOR RED REVERSE HIGH SOURCE CURRENT;
SET COLOR GREEN NONE LOW SOURCE BREAKPOINTS;
SET COLOR TURQUOISE NONE HIGH PROGRAM OUTPUT;
SET COLOR YELLOW NONE LOW TEST INPUT;
SET COLOR GREEN NONE HIGH TEST OUTPUT;
SET COLOR BLUE REVERSE HIGH LOG LINES;
SET COLOR WHITE NONE HIGH COMMAND LINE;
SET COLOR GREEN REVERSE HIGH WINDOW HEADERS;
SET COLOR BLUE REVERSE HIGH TOFEOF MARKER;
SET COLOR RED NONE HIGH TARGET FIELD;
SET DEFAULT LISTINGS;
SET DEFAULT DBG;
SET DEFAULT MDBG;
SET DEFAULT SCROLL PAGE;
SET DEFAULT VIEW STANDARD;
SET DEFAULT WINDOW SOURCE;
SET DISASSEMBLY OFF;
SET DYNDEBUG ON;
SET ECHO ON;
SET EXECUTE ON;
SET EXPLICITDEBUG OFF;
SET FIND BOUNDS 1 *;
SET HISTORY ON 100;
SET IGNORELINK OFF;
SET LDD SINGLE;
SET LIST TABULAR OFF;
SET LIST BY SUBSCRIPT OFF;
SET LOG OFF;
SET LOG KEEP 1000;
SET LOG NUMBERS ON;
SET LONGCUNAME ON;
SET MONITOR DATATYPE OFF;
SET MONITOR LIMIT 1000;
SET MONITOR NUMBERS ON;
SET MONITOR WRAP ON;
SET MSGID OFF;
SET PACE 2;
SET PF1 "?" = ?;
SET PF2 "STEP" = STEP;
SET PF3 "QUIT" = QUIT;
SET PF4 "LIST" = LIST;
SET PF5 "FIND" = IMMEDIATE FIND;
SET PF6 "AT/CLEAR" =AT TOGGLE;
SET PF7 "UP" = IMMEDIATE UP;
SET PF8 "DOWN" = IMMEDIATE DOWN;
SET PF9 "GO" = GO;
SET PF10 "ZOOM" = IMMEDIATE ZOOM;
SET PF11 "ZOOM LOG" =IMMEDIATE ZOOM LOG;
SET PF12 "RETRIEVE" =IMMEDIATE RETRIEVE;
SET PF13 "?" = ?;
SET PF14 "STEP" = STEP;
SET PF15 "QUIT" = QUIT;
SET PF16 "LIST" = LIST;
SET PF17 "FIND" = IMMEDIATE FIND;
SET PF18 "AT/CLEAR" =AT TOGGLE;
SET PF19 "UP" = IMMEDIATE UP;
SET PF20 "DOWN" = IMMEDIATE DOWN;
SET PF21 "GO" = GO;
SET PF22 "ZOOM" = IMMEDIATE ZOOM;
SET PF23 "ZOOM LOG" =IMMEDIATE ZOOM LOG;
SET PF24 "RETRIEVE" =IMMEDIATE RETRIEVE;
SET POPUP 15;
SET PROMPT LONG;
SET REFRESH OFF;
SET RESTORE SETTINGS AUTO;
SET RESTORE BPS AUTO;
SET RESTORE MONITORS AUTO;
SET REWRITE 50;
SET SAVE SETTINGS AUTO;
SET SAVE BPS AUTO FILE WALBUGA.DBGTOOL.SAVEBPS;
SET SAVE MONITORS AUTO;
SET SCROLL DISPLAY ON;
SET SUFFIX ON;
SET WARNING ON;
WINDOW SIZE 3 LOG;
WINDOW SIZE 28 SOURCE;
WINDOW SIZE 8 MONITOR;
SET SCREEN ON;
SET SCREEN 1 MONITOR SOURCE LOG;
SET KEYS ON 12;
SET MONITOR COLUMN ON;
//SYSUT2 DD DSN=WALBUGA.DBGTOOL.SAVESETS,
// DISP=(OLD,CATLG,DELETE),
// UNIT=SYSDA,SPACE=(CYL,(20,10)),
// DCB=(LRECL=3204,BLKSIZE=0,DSORG=PS,RECFM=VB)
//
//*
SET SAVE SETTINGS AUTO ;
SET SAVE BPS AUTO ;
SET SAVE MONITORS AUTO ;
SET RESTORE SETTINGS AUTO ;
SET RESTORE BPS AUTO ;
SET RESTORE MONITORS AUTO ;
SET AUTO ON;
WINDOW SIZE 30 SOURCE; window size 3 log;
//WALBUGA1 JOB R8,'BUGA',MSGLEVEL=(1,1),CLASS=K,MSGCLASS=1,RD=NC
//*---------------------------------------------------------------------
//*
//* PROCEDIMENTO PARA RECALL DE TODOS OS DATASETS DE UM USUARIO
//*
//*---------------------------------------------------------------------
/*NOTIFY WALBUGA ** ME NOTIFIQUE
/*XEQ ECA ** RODAR EM SECA
//*---------------------------------------------------------------------
// EXPORT SYMLIST=(USUARIO,ESTRELA)
// SET USUARIO=&SYSUID
// SET ESTRELA='*'
//*---------------------------------------------------------------------
//* SCRATCH TODOS OS ARQUIVOS DE SAIDA
//*---------------------------------------------------------------------
//STEP#001 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *,DLM=FIM,SYMBOLS=JCLONLY
DELETE &USUARIO..LISTCAT.OUTPUT
FIM
//*---------------------------------------------------------------------
//* SOLICITA RECALL DOS ARQUIVOS --- OPS NAO PODE
//*---------------------------------------------------------------------
//STEP#002 EXEC PGM=IKJEFT01
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *,SYMBOLS=JCLONLY
HRECALL &USUARIO..&ESTRELA NOWAIT
//*---------------------------------------------------------------------
//* Entra em ação o plano 'B'
//* LISTA TODOS OS DATASETS DO USUARIO
//*---------------------------------------------------------------------
//STEP#003 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *,SYMBOLS=JCLONLY
LISTCAT LEVEL(&USUARIO) -
OUTFILE(OUTDD)
//OUTDD DD DSN=&USUARIO..LISTCAT.OUTPUT,
// DCB=(RECFM=VBA,LRECL=125,BLKSIZE=629),UNIT=DASD,
// SPACE=(CYL,(1,1)),
// DISP=(NEW,CATLG)
//*---------------------------------------------------------------------
//* COPIA PARA ARQUIVO TEMPORARIO
//*---------------------------------------------------------------------
//STEP#004 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD DUMMY
//SYSUT1 DD DSN=&USUARIO..LISTCAT.OUTPUT,DISP=SHR
//SYSUT2 DD DSN=&&TMP1,
// DCB=(RECFM=VBA,LRECL=125,BLKSIZE=629),UNIT=DASD,
// SPACE=(CYL,(1,1)),
// DISP=(MOD,PASS)
//*---------------------------------------------------------------------
//* EXTRAI DO RELATORIO DO IDCAMS QUE LISTOU OS ARQUIVOS O NOME DOS
//* DATASETS QUE SERÃO RECUPERADOSLOGO NA SEQUENCIA
//*---------------------------------------------------------------------
//STEP#005 EXEC PGM=SORT ,COND=(0,NE)
//SORTIN DD DSN=&&TMP1,DISP=(OLD,DELETE)
//SORTOUT DD DSN=&&TMP2,
// RECFM=FB,LRECL=00060,
// SPACE=(CYL,(10,10),RLSE),
// DISP=(MOD,PASS)
//SORTIN DD SYSOUT=*
//SYSIN DD *,SYMBOLS=JCLONLY
SORT FIELDS=COPY
INCLUDE COND=(22,7,EQ,C'&USUARIO'),FORMAT=CH *** 4 BYTES DO RDW
OUTFIL FNAMES=SORTOUT,VTOF,
OUTREC=(C' HRECALL ',22,44,C' NOWAIT')
//SYSOUT DD SYSOUT=*
//SORTMSG DD SYSOUT=*
//*---------------------------------------------------------------------
//* REALIZA O HRECALL DOS MEMBROS DO USUARIO
//*---------------------------------------------------------------------
//STEP#006 EXEC PGM=IKJEFT01
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
/* Vai que alguem resolveu customizar */
PROFILE NOPREFIX
// DD DSN=&&TMP2,DISP=(OLD,DELETE)
//*
//*---------------------------------------------------------------------
//* ENVIA MENSAGEM INFORMANDO O FINAL DO PROCESSAMENTO
//*---------------------------------------------------------------------
//STEP#007 EXEC PGM=IKJEFT01
//SYSPRINT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *,SYMBOLS=JCLONLY
SEND 'Processo de Recall de arquivos finalizado! ' USER(&USUARIO)
/*
terça-feira, 2 de maio de 2017
IBM Debug Tool perdendo os break points a cada execução e não guarda a configuração da tela
JCL para Recuperar Configuração do Debug Tool no Mainframe
No mainframe, o Debug Tool utiliza dois arquivos de controle: um para salvar os breakpoints e outro para guardar suas configurações personalizadas. Como no ambiente em que trabalho os arquivos são deletados automaticamente sem aviso, já perdi minhas preferências algumas vezes. Para não passar mais por isso, montei um JCL que recria tudo de forma automática. Agora, sempre que entro no sistema, rodo junto com o HRECALL e mantenho minha configuração do jeito que gosto!
//C001BUGA JOB BUGA,BUGA,CLASS=K RESTART=STEP#002
/*NOTIFY WALBUGA
//*--------------------------------------------------------------------
//* Aloca arquivos utilizados pelo debug tool no z/OS
//*--------------------------------------------------------------------
//STEP#001 EXEC PGM=IEFBR14
//SAVINGS DD DSN=WALBUGA.DBGTOOL.SAVESETS,
// DISP=(NEW,CATLG,DELETE),
// UNIT=SYSDA,SPACE=(CYL,(20,10)),
// DCB=(LRECL=3204,BLKSIZE=0,DSORG=PS,RECFM=VB)
//SETTINGS DD DSN=WALBUGA.DBGTOOL.SAVEBPS,
// DISP=(NEW,CATLG,DELETE),
// UNIT=SYSDA,SPACE=(CYL,(20,10)),
// DCB=(LRECL=3204,BLKSIZE=0,DSORG=PO,RECFM=VB),
// DSNTYPE=LIBRARY
//*--------------------------------------------------------------------
//* Carrega configuracoes que o Buga gosta!
//*--------------------------------------------------------------------
//STEP#002 EXEC PGM=IEBGENER
//SYSIN DD DUMMY
//SYSPRINT DD SYSOUT=X
//SYSUT1 DD *
COMMENT YES - DO NOT MODIFY THIS LINE 12/18/2018 10:50:06 AM;
SET ASSEMBLER OFF;
SET ASSEMBLER STEPOVER EXTONLY;
SET AUTOMONITOR ON NOLOG CURRENT;
SET CHANGE STATEMENT;
SET COLOR TURQUOISE NONE HIGH TITLE HEADERS;
SET COLOR GREEN NONE LOW TITLE FIELDS;
SET COLOR TURQUOISE REVERSE LOW MONITOR AREA;
SET COLOR TURQUOISE REVERSE LOW MONITOR LINES;
SET COLOR WHITE REVERSE LOW SOURCE AREA;
SET COLOR TURQUOISE REVERSE LOW SOURCE PREFIX;
SET COLOR YELLOW REVERSE LOW SOURCE SUFFIX;
SET COLOR RED REVERSE HIGH SOURCE CURRENT;
SET COLOR GREEN NONE LOW SOURCE BREAKPOINTS;
SET COLOR TURQUOISE NONE HIGH PROGRAM OUTPUT;
SET COLOR YELLOW NONE LOW TEST INPUT;
SET COLOR GREEN NONE HIGH TEST OUTPUT;
SET COLOR BLUE REVERSE HIGH LOG LINES;
SET COLOR WHITE NONE HIGH COMMAND LINE;
SET COLOR GREEN REVERSE HIGH WINDOW HEADERS;
SET COLOR BLUE REVERSE HIGH TOFEOF MARKER;
SET COLOR RED NONE HIGH TARGET FIELD;
SET DEFAULT LISTINGS;
SET DEFAULT DBG;
SET DEFAULT MDBG;
SET DEFAULT SCROLL PAGE;
SET DEFAULT VIEW STANDARD;
SET DEFAULT WINDOW SOURCE;
SET DISASSEMBLY OFF;
SET DYNDEBUG ON;
SET ECHO ON;
SET EXECUTE ON;
SET EXPLICITDEBUG OFF;
SET FIND BOUNDS 1 *;
SET HISTORY ON 100;
SET IGNORELINK OFF;
SET LDD SINGLE;
SET LIST TABULAR OFF;
SET LIST BY SUBSCRIPT OFF;
SET LOG OFF;
SET LOG KEEP 1000;
SET LOG NUMBERS ON;
SET LONGCUNAME ON;
SET MONITOR DATATYPE OFF;
SET MONITOR LIMIT 1000;
SET MONITOR NUMBERS ON;
SET MONITOR WRAP ON;
SET MSGID OFF;
SET PACE 2;
SET PF1 "?"... = ?;
SET PF2 "STEP" = STEP;
SET PF3 "QUIT" = QUIT;
SET PF4 "LIST" = LIST;
SET PF5 "FIND" = IMMEDIATE FIND;
SET PF6 "AT/CLEAR" =AT TOGGLE;
SET PF7 "UP" = IMMEDIATE UP;
SET PF8 "DOWN" = IMMEDIATE DOWN;
SET PF9 "GO" = GO;
SET PF10 "ZOOM" = IMMEDIATE ZOOM;
SET PF11 "ZOOM LOG" =IMMEDIATE ZOOM LOG;
SET PF12 "RETRIEVE" =IMMEDIATE RETRIEVE;
SET PF13 "?"... = ?;
SET PF14 "STEP" = STEP;
SET PF15 "QUIT" = QUIT;
SET PF16 "LIST" = LIST;
SET PF17 "FIND" = IMMEDIATE FIND;
SET PF18 "AT/CLEAR" =AT TOGGLE;
SET PF19 "UP" = IMMEDIATE UP;
SET PF20 "DOWN" = IMMEDIATE DOWN;
SET PF21 "GO" = GO;
SET PF22 "ZOOM" = IMMEDIATE ZOOM;
SET PF23 "ZOOM LOG" =IMMEDIATE ZOOM LOG;
SET PF24 "RETRIEVE" =IMMEDIATE RETRIEVE;
SET POPUP 15;
SET PROMPT LONG;
SET REFRESH OFF;
SET RESTORE SETTINGS AUTO;
SET RESTORE BPS AUTO;
SET RESTORE MONITORS AUTO;
SET REWRITE 50;
SET SAVE SETTINGS AUTO;
SET SAVE BPS AUTO FILE WALBUGA.DBGTOOL.SAVEBPS;
SET SAVE MONITORS AUTO;
SET SCROLL DISPLAY ON;
SET SUFFIX ON;
SET WARNING ON;
WINDOW SIZE 3 LOG;
WINDOW SIZE 28 SOURCE;
WINDOW SIZE 8 MONITOR;
SET SCREEN ON;
SET SCREEN 1 MONITOR SOURCE LOG;
SET KEYS ON 12;
SET MONITOR COLUMN ON;
//SYSUT2 DD DSN=WALBUGA.DBGTOOL.SAVESETS,
// DISP=(OLD,CATLG,DELETE),
// UNIT=SYSDA,SPACE=(CYL,(20,10)),
// DCB=(LRECL=3204,BLKSIZE=0,DSORG=PS,RECFM=VB)
//
Dica: Usando esse JCL, você nunca mais perde suas configurações do Debug Tool, mesmo que o sistema delete seus arquivos sem aviso. Personalize o nome dos datasets conforme sua necessidade!
Figura 1: Debug Tool iniciando o debug de um programa
Labels:
automação,
backup,
batch,
breakpoint,
configuração,
debug tool,
dicas,
JCL,
job control,
mainframe,
personalização,
produtividade,
programação,
recuperação,
rotina,
settings,
storage,
sysprog,
tools,
zOS
Assinar:
Postagens (Atom)