Se você trabalha como Administrador de Banco de Dados ou desenvolvedor no ecossistema Mainframe/Adabas, sabe que a estabilidade do ambiente depende da gestão impecável dos arquivos de sistema. Entre eles, o arquivo de Checkpoint desempenha um papel vital no registro de eventos do Nucleus, sincronizações de transações (SYN1, SYN2, SYN4) e histórico de execução de utilitários como ADALOD, ADAINV e ADAORD. Porém, existe uma tarefa de manutenção preventiva que às vezes passa despercebida até que um problema aconteça: a deletação periódico dos registros do Checkpoint. A Regra de Ouro: Alinhamento com a Política de Recovery - Um registro de checkpoint só é útil enquanto você possuir os backups e logs de proteção (PLOGs) correspondentes àquele período. Registros de checkpoints de seis meses atrás raramente têm utilidade prática para um processo de Disaster Recovery, pois os backups de dados daquela época já caducaram. A boa prática recomenda alinhar a retenção do arquivo de Checkpoint à janela de recovery da organização (por exemplo, mantendo apenas os últimos 30 a 90 dias).
Listando o checkpoint pelo SYSAOS
05/07/2026 - É a data mais antiga que temos no checkpoint
Temos um jcl para deletar pela data, vamos deletar os registros até a data 15/07/2026 - vai ficar no checkpoing os registros depois de 16/07/2026
Job rodou ok
Deletou 416 registros no checkpoint
Listando no checkpoint - vamos ver a data mais antiga
A data mais antiga é 16/07/2026
Como temos alguns bancos, criei um programa em Natural para submeter um job que saia deletando dos bancos o checkpoint
Esse é o programa natural criado
Conclusão - A limpeza periódica do arquivo de Checkpoint é um investimento pequeno em automação que evita grandes dores de cabeça em produção. Manter o arquivo enxuto garante previsibilidade, reduz o tempo de busca durante recuperações de emergência e evita paradas desnecessárias no Adabas. Seu ambiente Adabas já possui um job agendado para o expurgo do Checkpoint ou essa manutenção ainda é feita sob demanda? Deixe seu comentário e compartilhe como é a rotina no seu mainframe!
Listando o checkpoint pelo SYSAOS
14:24:38 ***** A D A B A S BASIC SERVICES ***** 2026-08-15
- Checkpoint Maintenance - PCP0002
Code Service
---- -----------------------
C List checkpoints
D Delete checkpoints
? Help
. Exit
---- -----------------------
Code ............. c
Date(YYYY-MM-DD) . 0000-00-00
Ext. CP-list ..... N
Checkpoint Name .. ALL
Database ID ...... 240 (DB.P240.PRODASUL)
Command ==>
PF1----- PF2------ PF3------ PF4------ PF6----- PF7----- PF8----- PF12-----
Help Exit Menu
05/07/2026 - É a data mais antiga que temos no checkpoint
14:24:53 ***** A D A B A S BASIC SERVICES ***** 2026-08-15
DBID 240 - List Checkpoints - PCPC002
CP CP Date Time PLOG Block Vol/Ser User Job Name
Name Type Number Number Number Type
---- ---- ---------- -------- ------ ---------- -------- ---- --------
SYNS 5B 2026-07-05 00:15:14 5501 8250488 MULTI EXU ADAEND
SYNV 28 2026-07-05 00:15:52 AAFAP240
SYNP 28 2026-07-05 00:15:52 AAFAP240
SYNP 06 2026-07-05 00:19:15 AAFABMES
SYNV 0A 2026-07-05 02:07:59 AAFABMES
SYNV 0A 2026-07-05 02:07:59 AAFABMES
SYNV 0A 2026-07-05 02:07:59 AAFABMES
SYNV 0A 2026-07-05 02:07:59 AAFABMES
SYNV 0A 2026-07-05 02:07:59 AAFABMES
SYNV 0A 2026-07-05 02:07:59 AAFABMES
SYNV 0A 2026-07-05 02:07:59 AAFABMES
SYNC 01 2026-07-05 02:08:08 AAFABMES
SYNS 5B 2026-07-05 02:08:10 EXU ADAEND
SYNC 01 2026-07-05 02:10:23 5530 1 MULTI AAFAI240
SYNS 60 2026-07-05 03:13:18 5530 9505 MULTI ADABAS
PF1----- PF2------ PF3------ PF4------ PF6----- PF7 ----- PF8----- PF12-----
Help Exit Top - + Menu
Temos um jcl para deletar pela data, vamos deletar os registros até a data 15/07/2026 - vai ficar no checkpoing os registros depois de 16/07/2026
//AAFSNATB JOB (AAFP,DIBD),CLAU,CLASS=S,MSGCLASS=A TYPRUN=HOLD //*UQ ALLOW //* --------------------------------------------------------------- //* EXCLUIR REGISTROS DA CHECKPOINT - YYYYMMDD //* --------------------------------------------------------------- //ADADBS EXEC AAFAU240 //DDCARD DD * ADARUN PROG=ADADBS,DBID=240 //DDPRINT DD SYSOUT=A //DDKARTE DD * ADADBS DELCP TODATE=20260715 /*
Job rodou ok
1 J E S 2 J O B L O G -- S Y S T E M C P A C -- N O D E J E S 2 0 14.25.07 JOB01121 ---- SATURDAY, 15 AUG 2026 ---- 14.25.07 JOB01121 ICH70001I AA01055 LAST ACCESS AT 14:21:33 ON SATURDAY, AUGUST 15, 2026 14.25.07 JOB01121 $HASP373 AAFSNATB STARTED - INIT K - CLASS S - SYS CPAC 14.25.07 JOB01121 IEF403I AAFSNATB - STARTED - TIME=14.25.07 14.25.09 JOB01121 - --TIMINGS (MINS.)-- -----PAGING COUNTS---- 14.25.09 JOB01121 -STEPNAME PROCSTEP RC EXCP CONN TCB SRB CLOCK SERV WORKLOAD PAGE SWAP VIO SWAPS 14.25.09 JOB01121 -ADADBS AAFAU240 00 91 25 .00 .00 .0 2362 SYSTEM 0 0 0 0 14.25.09 JOB01121 IEF404I AAFSNATB - ENDED - TIME=14.25.09 14.25.09 JOB01121 -AAFSNATB ENDED. NAME-CLAU TOTAL TCB CPU TIME= .00 TOTAL ELAPSED TIME= .0 14.25.09 JOB01121 $HASP395 AAFSNATB ENDED 0------ JES2 JOB STATISTICS ------ - 15 AUG 2026 JOB EXECUTION DATE - 14 CARDS READ - 762 SYSOUT PRINT RECORDS - 0 SYSOUT PUNCH RECORDS - 33 SYSOUT SPOOL KBYTES - 0.04 MINUTES EXECUTION TIME UQS0009 - END OF DATA SET.
Deletou 416 registros no checkpoint
1
A D A D B S V7.4 SM4 DBID = 00240 Started 2026-08-15 14:25:06
Parameters:
-----------
ADADBS DELCP TODATE=20260715
---> 416 checkpoints deleted; TODATE=20260715 (YYYYMMDD)
A D A D B S Terminated normally 2026-08-15 14:25:08
UQS0009 - END OF DATA SET.
Listando no checkpoint - vamos ver a data mais antiga
14:25:03 ***** A D A B A S BASIC SERVICES ***** 2026-08-15
- Checkpoint Maintenance - PCP0002
Code Service
---- -----------------------
C List checkpoints
D Delete checkpoints
? Help
. Exit
---- -----------------------
Code ............. c
Date(YYYY-MM-DD) . 0000-00-00
Ext. CP-list ..... N
Checkpoint Name .. ALL
Database ID ...... 240 (DB.P240.PRODASUL)
ECPC02 : 'List Checkpoints' function interrupted
Command ==>
PF1----- PF2------ PF3------ PF4------ PF6----- PF7----- PF8----- PF12-----
Help Exit Menu
A data mais antiga é 16/07/2026
14:26:07 ***** A D A B A S BASIC SERVICES ***** 2026-08-15
DBID 240 - List Checkpoints - PCPC002
CP CP Date Time PLOG Block Vol/Ser User Job Name
Name Type Number Number Number Type
---- ---- ---------- -------- ------ ---------- -------- ---- --------
SYN1 06 2026-07-16 00:12:15 5530 3402148 MULTI UTI AAFABDIA
SYNP 06 2026-07-16 00:12:16 5530 3402170 MULTI UTI AAFABDIA
SYNS 60 2026-07-16 00:19:05 5530 3403776 MULTI ADABAS
SYNS 60 2026-07-16 01:22:00 5530 3426248 MULTI ADABAS
SYNS 60 2026-07-16 02:24:55 5530 3439925 MULTI ADABAS
SYN2 06 2026-07-16 02:28:20 5530 3440354 MULTI UTI AAFABDIA
SYNV 0A 2026-07-16 02:28:22 5530 3440355 MULTI UTI AAFABDIA
SYNV 0A 2026-07-16 02:28:22 5530 3440356 MULTI UTI AAFABDIA
SYNV 0A 2026-07-16 02:28:22 5530 3440357 MULTI UTI AAFABDIA
SYNV 0A 2026-07-16 02:28:22 5530 3440358 MULTI UTI AAFABDIA
SYNV 0A 2026-07-16 02:28:22 5530 3440359 MULTI UTI AAFABDIA
SYNV 0A 2026-07-16 02:28:22 5530 3440360 MULTI UTI AAFABDIA
SYNV 0A 2026-07-16 02:28:22 5530 3440361 MULTI UTI AAFABDIA
SYNS 60 2026-07-16 03:27:50 5530 3443329 MULTI ADABAS
SYNS 60 2026-07-16 04:30:45 5530 3447522 MULTI ADABAS
PF1----- PF2------ PF3------ PF4------ PF6----- PF7 ----- PF8----- PF12-----
Help Exit Top - + Menu
Como temos alguns bancos, criei um programa em Natural para submeter um job que saia deletando dos bancos o checkpoint
------------------------------------------------------------------------------
AA01055 SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS DBAPJ879
14:28:05 ------------------------------------------------------------ 15/08/26
SUPORTE2
------------------------------------------------------------
DIA : 15 MES: 7_ ANO: 2026
------------------------------------------------------------
TECLE PF3 PARA VOLTAR
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
MENU
Esse é o programa natural criado
* ------------------------------------------------------------------- *
* FUNCAO: DELETAR DADOS DO CHECKPOINT DOS BANCOS ADABAS *
* AUTOR: CLAUDEMAR MARTINS *
* ------------------------------------------------------------------- *
DEFINE DATA LOCAL
1 #CALLER (A4) INIT <'NAT '>
1 #JOBNUM (A8)
1 REDEFINE #JOBNUM
2 #JOBA (A3)
2 #JOBN (N5)
1 #I (P3)
1 #RC (B4)
1 #TOT (B2)
1 #DBID (N3)
1 #FILE (N3)
1 #Y2K (A1) INIT <'N'>
1 #DIA (N8)
1 REDEFINE #DIA
2 #YYP (N4)
2 #MMP (N2)
2 #DDP (N2)
1 #C01 (A80) INIT
<'//AAFSNATB JOB (AAFS,OSB),XXXXXXX,CLASS=S,MSGCLASS=A,TYPRUN=HOLD'>
1 REDEFINE #C01
2 FILLER 2X
2 #JOBNAME (A8)
2 #FIL1 (A06)
2 #ACC (A04)
2 #FIL2 (A06)
2 #USER (A07)
1 #C02 (A80) INIT <'//*UQ ALLOW'>
1 #C03 (A80) INIT <'//* -------------------------------------------- '>
1 #C04 (A80) INIT <'//* DELETA REGISTROS DO CHECKPOINT ADABAS 230 '>
1 #C05 (A80) INIT <'//* -------------------------------------------- '>
1 #C06 (A80) INIT <'//ADADBS EXEC AAFAU230'>
1 #C07 (A80) INIT <'//DDCARD DD *'>
1 #C08 (A80) INIT <'ADARUN PROG=ADADBS,DBID=230'>
1 #C09 (A80) INIT <'//DDPRINT DD SYSOUT=A'>
1 #C10 (A80) INIT <'//DDKARTE DD *'>
1 #C11 (A80)
1 #C12 (A80) INIT <'/*'>
1 #C13 (A80) INIT <'//* -------------------------------------------- '>
1 #C14 (A80) INIT <'//* DELETA REGISTROS DO CHECKPOINT ADABAS 240 '>
1 #C15 (A80) INIT <'//* -------------------------------------------- '>
1 #C16 (A80) INIT <'//ADADBS EXEC AAFAU240'>
1 #C17 (A80) INIT <'//DDCARD DD *'>
1 #C18 (A80) INIT <'ADARUN PROG=ADADBS,DBID=240'>
1 #C19 (A80) INIT <'//DDPRINT DD SYSOUT=A'>
1 #C20 (A80) INIT <'//DDKARTE DD *'>
1 #C21 (A80)
1 #C22 (A80) INIT <'/*'>
1 #C23 (A80) INIT <'//* -------------------------------------------- '>
1 #C24 (A80) INIT <'//* DELETA REGISTROS DO CHECKPOINT ADABAS 100 '>
1 #C25 (A80) INIT <'//* -------------------------------------------- '>
1 #C26 (A80) INIT <'//ADADBS EXEC AAFAU100 '>
1 #C27 (A80) INIT <'//DDCARD DD * '>
1 #C28 (A80) INIT <'ADARUN PROG=ADADBS,DBID=100'>
1 #C29 (A80) INIT <'//DDPRINT DD SYSOUT=A '>
1 #C30 (A80) INIT <'//DDKARTE DD * '>
1 #C31 (A80)
1 #C32 (A80) INIT <'/*'>
1 #C33 (A80) INIT <'//* -------------------------------------------- '>
1 #C34 (A80) INIT <'//* DELETA REGISTROS DO CHECKPOINT ADABAS 110 '>
1 #C35 (A80) INIT <'//* -------------------------------------------- '>
1 #C36 (A80) INIT <'//ADADBS EXEC AAFAU110 '>
1 #C37 (A80) INIT <'//DDCARD DD * '>
1 #C38 (A80) INIT <'ADARUN PROG=ADADBS,DBID=110'>
1 #C39 (A80) INIT <'//DDPRINT DD SYSOUT=A '>
1 #C40 (A80) INIT <'//DDKARTE DD * '>
1 #C41 (A80)
1 #C42 (A80) INIT <'/* '>
1 #C43 (A80) INIT <'//* -------------------------------------------- '>
1 #C44 (A80) INIT <'//* DELETA REGISTROS DO CHECKPOINT ADABAS 120 '>
1 #C45 (A80) INIT <'//* -------------------------------------------- '>
1 #C46 (A80) INIT <'//ADADBS EXEC AAFAU120 '>
1 #C47 (A80) INIT <'//DDCARD DD * '>
1 #C48 (A80) INIT <'ADARUN PROG=ADADBS,DBID=120'>
1 #C49 (A80) INIT <'//DDPRINT DD SYSOUT=A '>
1 #C50 (A80) INIT <'//DDKARTE DD * '>
1 #C51 (A80)
1 #C52 (A80) INIT <'/* '>
1 #C53 (A80) INIT <'//* -------------------------------------------- '>
1 #C54 (A80) INIT <'//* DELETA REGISTROS DO CHECKPOINT ADABAS 130 '>
1 #C55 (A80) INIT <'//* -------------------------------------------- '>
1 #C56 (A80) INIT <'//ADADBS EXEC AAFAU130 '>
1 #C57 (A80) INIT <'//DDCARD DD * '>
1 #C58 (A80) INIT <'ADARUN PROG=ADADBS,DBID=130'>
1 #C59 (A80) INIT <'//DDPRINT DD SYSOUT=A '>
1 #C60 (A80) INIT <'//DDKARTE DD * '>
1 #C61 (A80)
1 #C62 (A80) INIT <'/* '>
1 #C63 (A80) INIT <'//* -------------------------------------------- '>
1 #C64 (A80) INIT <'//* DELETA REGISTROS DO CHECKPOINT ADABAS 140 '>
1 #C65 (A80) INIT <'//* -------------------------------------------- '>
1 #C66 (A80) INIT <'//ADADBS EXEC AAFAU140 '>
1 #C67 (A80) INIT <'//DDCARD DD * '>
1 #C68 (A80) INIT <'ADARUN PROG=ADADBS,DBID=140'>
1 #C69 (A80) INIT <'//DDPRINT DD SYSOUT=A '>
1 #C70 (A80) INIT <'//DDKARTE DD * '>
1 #C71 (A80)
1 #C72 (A80) INIT <'/* '>
1 #C73 (A80) INIT <'//* -------------------------------------------- '>
1 #C74 (A80) INIT <'//* DELETA REGISTROS DO CHECKPOINT ADABAS 141 '>
1 #C75 (A80) INIT <'//* -------------------------------------------- '>
1 #C76 (A80) INIT <'//** ADADBS EXEC AAFAU141 '>
1 #C77 (A80) INIT <'//** DDCARD DD * '>
1 #C78 (A80) INIT <'//** ADARUN PROG=ADADBS,DBID=141'>
1 #C79 (A80) INIT <'//** DDPRINT DD SYSOUT=A '>
1 #C80 (A80) INIT <'//** DDKARTE DD * '>
1 #C81 (A80)
1 #C82 (A80) INIT <'/* '>
1 #C83 (A80) INIT <'//* -------------------------------------------- '>
1 #C84 (A80) INIT <'//* DELETA REGISTROS DO CHECKPOINT ADABAS 150 '>
1 #C85 (A80) INIT <'//* -------------------------------------------- '>
1 #C86 (A80) INIT <'//ADADBS EXEC AAFAU150 '>
1 #C87 (A80) INIT <'//DDCARD DD * '>
1 #C88 (A80) INIT <'ADARUN PROG=ADADBS,DBID=150'>
1 #C89 (A80) INIT <'//DDPRINT DD SYSOUT=A '>
1 #C90 (A80) INIT <'//DDKARTE DD * '>
1 #C91 (A80)
1 #C92 (A80) INIT <'/* '>
1 #C93 (A80) INIT <'//* -------------------------------------------- '>
1 #C94 (A80) INIT <'//* DELETA REGISTROS DO CHECKPOINT ADABAS 160 '>
1 #C95 (A80) INIT <'//* -------------------------------------------- '>
1 #C96 (A80) INIT <'//ADADBS EXEC AAFAU160 '>
1 #C97 (A80) INIT <'//DDCARD DD * '>
1 #C98 (A80) INIT <'ADARUN PROG=ADADBS,DBID=160'>
1 #C99 (A80) INIT <'//DDPRINT DD SYSOUT=A '>
1 #C100(A80) INIT <'//DDKARTE DD * '>
1 #C101(A80)
1 #C102(A80) INIT <'/* '>
1 #C103(A80) INIT <'//* -------------------------------------------- '>
1 #C104(A80) INIT <'//* DELETA REGISTROS DO CHECKPOINT ADABAS 170 '>
1 #C105(A80) INIT <'//* -------------------------------------------- '>
1 #C106(A80) INIT <'//ADADBS EXEC AAFAU170 '>
1 #C107(A80) INIT <'//DDCARD DD * '>
1 #C108(A80) INIT <'ADARUN PROG=ADADBS,DBID=170'>
1 #C109(A80) INIT <'//DDPRINT DD SYSOUT=A '>
1 #C110(A80) INIT <'//DDKARTE DD * '>
1 #C111(A80)
1 #C112(A80) INIT <'/* '>
1 #C113(A80) INIT <'//* -------------------------------------------- '>
1 #C114(A80) INIT <'//* DELETA REGISTROS DO CHECKPOINT ADABAS 180 '>
1 #C115(A80) INIT <'//* -------------------------------------------- '>
1 #C116(A80) INIT <'//ADADBS EXEC AAFAU180 '>
1 #C117(A80) INIT <'//DDCARD DD * '>
1 #C118(A80) INIT <'ADARUN PROG=ADADBS,DBID=180'>
1 #C119(A80) INIT <'//DDPRINT DD SYSOUT=A '>
1 #C120(A80) INIT <'//DDKARTE DD * '>
1 #C121(A80)
1 #C122(A80) INIT <'/* '>
1 #C123(A80) INIT <'//* -------------------------------------------- '>
1 #C124(A80) INIT <'//* DELETA REGISTROS DO CHECKPOINT ADABAS 190 '>
1 #C125(A80) INIT <'//* -------------------------------------------- '>
1 #C126(A80) INIT <'//ADADBS EXEC AAFAU190 '>
1 #C127(A80) INIT <'//DDCARD DD * '>
1 #C128(A80) INIT <'ADARUN PROG=ADADBS,DBID=190'>
1 #C129(A80) INIT <'//DDPRINT DD SYSOUT=A '>
1 #C130(A80) INIT <'//DDKARTE DD * '>
1 #C131(A80)
1 #C132(A80) INIT <'/* '>
1 #C133(A80) INIT <'//* -------------------------------------------- '>
1 #C134(A80) INIT <'//* DELETA REGISTROS DO CHECKPOINT ADABAS 020 '>
1 #C135(A80) INIT <'//* -------------------------------------------- '>
1 #C136(A80) INIT <'//ADADBS EXEC AAFAU020 '>
1 #C137(A80) INIT <'//DDCARD DD * '>
1 #C138(A80) INIT <'ADARUN PROG=ADADBS,DBID=020'>
1 #C139(A80) INIT <'//DDPRINT DD SYSOUT=A '>
1 #C140(A80) INIT <'//DDKARTE DD * '>
1 #C141(A80)
1 #C142(A80) INIT <'/* '>
1 #C143(A80) INIT <'//* -------------------------------------------- '>
1 #C144(A80) INIT <'//* DELETA REGISTROS DO CHECKPOINT ADABAS 030 '>
1 #C145(A80) INIT <'//* -------------------------------------------- '>
1 #C146(A80) INIT <'//ADADBS EXEC AAFAU030 '>
1 #C147(A80) INIT <'//DDCARD DD * '>
1 #C148(A80) INIT <'ADARUN PROG=ADADBS,DBID=030'>
1 #C149(A80) INIT <'//DDPRINT DD SYSOUT=A '>
1 #C150(A80) INIT <'//DDKARTE DD * '>
1 #C151(A80)
1 #C152(A80) INIT <'/* '>
1 #C153(A80) INIT <'//* -------------------------------------------- '>
1 #C154(A80) INIT <'//* DELETA REGISTROS DO CHECKPOINT ADABAS 040 '>
1 #C155(A80) INIT <'//* -------------------------------------------- '>
1 #C156(A80) INIT <'//ADADBS EXEC AAFAU040 '>
1 #C157(A80) INIT <'//DDCARD DD * '>
1 #C158(A80) INIT <'ADARUN PROG=ADADBS,DBID=040'>
1 #C159(A80) INIT <'//DDPRINT DD SYSOUT=A '>
1 #C160(A80) INIT <'//DDKARTE DD * '>
1 #C161(A80)
1 #C162(A80) INIT <'/* '>
1 #C163(A80) INIT <'//* -------------------------------------------- '>
1 #C164(A80) INIT <'//* DELETA REGISTROS DO CHECKPOINT ADABAS 050 '>
1 #C165(A80) INIT <'//* -------------------------------------------- '>
1 #C166(A80) INIT <'//ADADBS EXEC AAFAU050 '>
1 #C167(A80) INIT <'//DDCARD DD * '>
1 #C168(A80) INIT <'ADARUN PROG=ADADBS,DBID=050'>
1 #C169(A80) INIT <'//DDPRINT DD SYSOUT=A '>
1 #C170(A80) INIT <'//DDKARTE DD * '>
1 #C171(A80)
1 #C172(A80) INIT <'/* '>
1 #C173(A80) INIT <'//* -------------------------------------------- '>
1 #C174(A80) INIT <'//* DELETA REGISTROS DO CHECKPOINT ADABAS 060 '>
1 #C175(A80) INIT <'//* -------------------------------------------- '>
1 #C176(A80) INIT <'//ADADBS EXEC AAFAU060 '>
1 #C177(A80) INIT <'//DDCARD DD * '>
1 #C178(A80) INIT <'ADARUN PROG=ADADBS,DBID=060'>
1 #C179(A80) INIT <'//DDPRINT DD SYSOUT=A '>
1 #C180(A80) INIT <'//DDKARTE DD * '>
1 #C181(A80)
1 #C182(A80) INIT <'/* '>
1 #C183(A80) INIT <'//* -------------------------------------------- '>
1 #C184(A80) INIT <'//* DELETA REGISTROS DO CHECKPOINT ADABAS 070 '>
1 #C185(A80) INIT <'//* -------------------------------------------- '>
1 #C186(A80) INIT <'//ADADBS EXEC AAFAU070 '>
1 #C187(A80) INIT <'//DDCARD DD * '>
1 #C188(A80) INIT <'ADARUN PROG=ADADBS,DBID=070'>
1 #C189(A80) INIT <'//DDPRINT DD SYSOUT=A '>
1 #C190(A80) INIT <'//DDKARTE DD * '>
1 #C191(A80)
1 #C192(A80) INIT <'/* '>
1 #C193(A80) INIT <'//* -------------------------------------------- '>
1 #C194(A80) INIT <'//* DELETA REGISTROS DO CHECKPOINT ADABAS 080 '>
1 #C195(A80) INIT <'//* -------------------------------------------- '>
1 #C196(A80) INIT <'//ADADBS EXEC AAFAU080 '>
1 #C197(A80) INIT <'//DDCARD DD * '>
1 #C198(A80) INIT <'ADARUN PROG=ADADBS,DBID=080'>
1 #C199(A80) INIT <'//DDPRINT DD SYSOUT=A '>
1 #C200(A80) INIT <'//DDKARTE DD * '>
1 #C201(A80)
1 #C202(A80) INIT <'/* '>
1 #C203(A80) INIT <'//* -------------------------------------------- '>
1 #C204(A80) INIT <'//* DELETA REGISTROS DO CHECKPOINT ADABAS 082 '>
1 #C205(A80) INIT <'//* -------------------------------------------- '>
1 #C206(A80) INIT <'//ADADBS EXEC AAFAU082 '>
1 #C207(A80) INIT <'//DDCARD DD * '>
1 #C208(A80) INIT <'ADARUN PROG=ADADBS,DBID=082'>
1 #C209(A80) INIT <'//DDPRINT DD SYSOUT=A '>
1 #C210(A80) INIT <'//DDKARTE DD * '>
1 #C211(A80)
1 #C212(A80) INIT <'/* '>
1 #C213(A80) INIT <'//* -------------------------------------------- '>
1 #C214(A80) INIT <'//* DELETA REGISTROS DO CHECKPOINT ADABAS 241 '>
1 #C215(A80) INIT <'//* -------------------------------------------- '>
1 #C216(A80) INIT <'//ADADBS EXEC AAFAU241 '>
1 #C217(A80) INIT <'//DDCARD DD * '>
1 #C218(A80) INIT <'ADARUN PROG=ADADBS,DBID=241'>
1 #C219(A80) INIT <'//DDPRINT DD SYSOUT=A '>
1 #C220(A80) INIT <'//DDKARTE DD * '>
1 #C221(A80)
1 #C222(A80) INIT <'/* '>
1 #C223(A80) INIT <'//* -------------------------------------------- '>
1 #C224(A80) INIT <'//* DELETA REGISTROS DO CHECKPOINT ADABAS 242 '>
1 #C225(A80) INIT <'//* -------------------------------------------- '>
1 #C226(A80) INIT <'//ADADBS EXEC AAFAU242 '>
1 #C227(A80) INIT <'//DDCARD DD * '>
1 #C228(A80) INIT <'ADARUN PROG=ADADBS,DBID=242'>
1 #C229(A80) INIT <'//DDPRINT DD SYSOUT=A '>
1 #C230(A80) INIT <'//DDKARTE DD * '>
1 #C231(A80)
1 #C232(A80) INIT <'/* '>
1 #C233(A80) INIT <'//* -------------------------------------------- '>
1 #C234(A80) INIT <'//* DELETA REGISTROS DO CHECKPOINT ADABAS 210 '>
1 #C235(A80) INIT <'//* -------------------------------------------- '>
1 #C236(A80) INIT <'//ADADBS EXEC AAFAU210 '>
1 #C237(A80) INIT <'//DDCARD DD * '>
1 #C238(A80) INIT <'ADARUN PROG=ADADBS,DBID=210'>
1 #C239(A80) INIT <'//DDPRINT DD SYSOUT=A '>
1 #C240(A80) INIT <'//DDKARTE DD * '>
1 #C241(A80)
1 #C242(A80) INIT <'/* '>
1 #DATA-AUX (D)
END-DEFINE
* ==================================================================== *
FORMAT KD=ON
SET CONTROL 'U'
SET KEY PF3 NAMED 'MENU'
PF8 NAMED ' ' PF9 NAMED ' '
MOVE *INIT-USER TO #USER
* ==================================================================== *
REPEAT
* RESET #ARQ
RESET INITIAL #Y2K
MOVE *DATN TO #DIA /* PEGA DATA ATUAL (YYYYMMDD)
IF #MMP = 01 /* SE JANEIRO
COMPUTE #YYP = #YYP - 1 /* VOLTA O ANO
MOVE 12 TO #MMP /* MUDA PARA DEZEMBRO
ELSE
COMPUTE #MMP = #MMP - 1 /* APENAS VOLTA UM MES
END-IF
* ==================================================================== *
INPUT (IP=OFF SG=OFF AD=MIL'_')
02T '-' (78)
/ 02T *USER
20T 'SUPERINTENDENCIA DA GESTAO DA INFORMACAO' (I)
72T *PROGRAM
/ 02T *TIME(AL=8)
11T '-' (60)
72T *DATE
/
72T *LIBRARY-ID
//
11T '-' (60)
//
27T 'DIA :' #DDP
2X 'MES:' #MMP 2X 'ANO:' #YYP
//
11T '-' (60)
* ==================================================================== *
//28T'TECLE PF3 PARA VOLTAR'(I)
IF *PF-KEY EQ 'PF3'
FETCH 'DBAPMENU'
END-IF
* ==================================================================== *
IF #DIA = *DATN
REINPUT ' DIGITE UMA DATA DIFERENTE DE HOJE ' MARK *#DBID ALARM
END-IF
COMPRESS 'ADADBS DELCP TODATE=' #DIA INTO #C11 LEAVING NO
COMPRESS 'ADADBS DELCP TODATE=' #DIA INTO #C21 LEAVING NO
COMPRESS 'ADADBS DELCP TODATE=' #DIA INTO #C31 LEAVING NO
COMPRESS 'ADADBS DELCP TODATE=' #DIA INTO #C41 LEAVING NO
COMPRESS 'ADADBS DELCP TODATE=' #DIA INTO #C51 LEAVING NO
COMPRESS 'ADADBS DELCP TODATE=' #DIA INTO #C61 LEAVING NO
COMPRESS 'ADADBS DELCP TODATE=' #DIA INTO #C71 LEAVING NO
COMPRESS '//* ADADBS DELCP TODATE=' #DIA INTO #C81 LEAVING NO
COMPRESS 'ADADBS DELCP TODATE=' #DIA INTO #C91 LEAVING NO
COMPRESS 'ADADBS DELCP TODATE=' #DIA INTO #C101 LEAVING NO
COMPRESS 'ADADBS DELCP TODATE=' #DIA INTO #C111 LEAVING NO
COMPRESS 'ADADBS DELCP TODATE=' #DIA INTO #C121 LEAVING NO
COMPRESS 'ADADBS DELCP TODATE=' #DIA INTO #C131 LEAVING NO
COMPRESS 'ADADBS DELCP TODATE=' #DIA INTO #C141 LEAVING NO
COMPRESS 'ADADBS DELCP TODATE=' #DIA INTO #C151 LEAVING NO
COMPRESS 'ADADBS DELCP TODATE=' #DIA INTO #C161 LEAVING NO
COMPRESS 'ADADBS DELCP TODATE=' #DIA INTO #C171 LEAVING NO
COMPRESS 'ADADBS DELCP TODATE=' #DIA INTO #C181 LEAVING NO
COMPRESS 'ADADBS DELCP TODATE=' #DIA INTO #C191 LEAVING NO
COMPRESS 'ADADBS DELCP TODATE=' #DIA INTO #C201 LEAVING NO
COMPRESS 'ADADBS DELCP TODATE=' #DIA INTO #C211 LEAVING NO
COMPRESS 'ADADBS DELCP TODATE=' #DIA INTO #C221 LEAVING NO
COMPRESS 'ADADBS DELCP TODATE=' #DIA INTO #C231 LEAVING NO
COMPRESS 'ADADBS DELCP TODATE=' #DIA INTO #C241 LEAVING NO
* ==================================================================== *
COMPUTE #TOT = 242 * 80
CALL 'RJE' #RC #C01 #TOT
CALL 'GETJOB' #JOBNUM #CALLER
* ==================================================================== *
FORMAT KD=OFF
DEFINE WINDOW NUMJOB
SIZE 08 * 50 BASE 07/17 TITLE ' NUMERO DO JOB '
FRAMED ON
INPUT WINDOW = 'NUMJOB'
01/01 'FOI SUBMETIDO O JOB: ' #JOBNAME (AD=IO)
02/01 'COM O NUMERO ......:' #JOBN (AD=IO)
03/01 ' '
04/11 'TECLE ENTER PARA VOLTAR'(I)
* ==================================================================== *
* FETCH 'DBAPMENU'
END-REPEAT
END
Conclusão - A limpeza periódica do arquivo de Checkpoint é um investimento pequeno em automação que evita grandes dores de cabeça em produção. Manter o arquivo enxuto garante previsibilidade, reduz o tempo de busca durante recuperações de emergência e evita paradas desnecessárias no Adabas. Seu ambiente Adabas já possui um job agendado para o expurgo do Checkpoint ou essa manutenção ainda é feita sob demanda? Deixe seu comentário e compartilhe como é a rotina no seu mainframe!



0 Comments:
Enviar um comentário