sábado, agosto 15, 2026

Reorganização do banco de dados Adabas

Se você atua na administração ou no desenvolvimento em ambientes mainframe com Adabas, sabe que a eficiência do banco de dados depende diretamente do bom uso do espaço físico em disco. Conforme as aplicações realizam atualizações, inserções massivas e exclusões diárias, a estrutura interna das tabelas passa a sofrer com um fenômeno inevitável: a fragmentação. Para manter o desempenho das consultas em alto nível e otimizar o uso da ASSO e da DATA, o procedimento de reorganização é uma das rotinas de manutenção mais cruciais no ciclo de vida do ambiente. Hoje os espaços não utilizados estão bem fragmentado.

  13:19:59          ***** A D A B A S  BASIC  SERVICES *****       2026-08-14 
  DBID 230                  - Display Unused Storage -                PDRU012 
                                                                              
         I Device I     Total Number of      I Extent           in Blk.   I   
         I Type   I   Blocks     /  Cyls.    I from        -      until   I   
   ------I--------I------------------------- I----------------------------I   
   DATA  I  8391  I         780          10  I     1008562 -     1009341  I   
         I  8391  I          70           0  I     1033052 -     1033121  I   
         I  8391  I           1           0  I     1100108 -     1100108  I   
         I  8391  I         120           1  I     1107062 -     1107181  I   
         I  8391  I         193           2  I     1112313 -     1112505  I   
         I  8391  I    11508869      153451  I     1119927 -    12628795  I   
   ------I--------I------------------------- I----------------------------I   
   ASSO  I  8391  I          19           0  I      457493 -      457511  I   
         I  8391  I          23           0  I      476280 -      476302  I   
         I  8391  I           4           0  I      476325 -      476328  I   
         I  8391  I          12           0  I      476341 -      476352  I   
         I  8391  I         330           1  I      538034 -      538363  I   
         I  8391  I           8           0  I      539027 -      539034  I 
   ASSO  I  8391  I    12406943       68927  I      553046 -    12959988  I  
                                                                              
  PF1----- PF2------ PF3------ PF4------ PF6----- PF7----- PF8----- PF12----- 
  Help               Exit                                           Menu      

Backup e Reorganização - Esse é o JCL
//AAFAREDB  JOB (AABS,OSB),DBA,CLASS=S,MSGCLASS=A TYPRUN=HOLD
//*UQ ALLOW 
//* --------------------------------------------------------    
//*                BACKUP OFFLINE DO BANCO 220                  
//* --------------------------------------------------------    
//SAVE     EXEC AAFAU230,TIME=1440                              
//DDSAVE1   DD DSN=CSA.C.SAVE.DB230.OFFLINE,                    
//         DISP=(NEW,CATLG),UNIT=CVRT,LABEL=(,SL)               
//* --------------------------------------------------------    
//DDCARD    DD *                                                
ADARUN PROG=ADASAV,DBID=230,MODE=SINGLE,PLOGRQ=NO
//DDKARTE   DD *                                                
ADASAV   SAVE                                                   
//* ---------------------------------------------------------
//*             REORGANIZA O DATA E O ASSO DO BANCO          
//* ---------------------------------------------------------
//REORDB   EXEC AAFAU230,TIME=1440                           
//DDFILEA  DD DSN=ADABAS.C.REORDB.DB230,                     
//         DISP=(NEW,KEEP),UNIT=CVRT,LABEL=(1,SL)            
//* ---------------------------------------------------------
//DDCARD    DD *                                             
ADARUN PROG=ADAORD,MODE=SINGLE,DBID=230,PLOGRQ=NO            
ADARUN LP=10000,LWKP2=1200                                   
//DDKARTE   DD *                                             
ADAORD    REORDB                                             
/*                                                           

Tirar o banco do ar - Importante - Depois job submetido
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                                                                                                                       
 07.50.34 JOB00421 ---- SATURDAY,  15 AUG 2026 ----                                                                     
 07.50.34 JOB00421  ICH70001I DBAP055  LAST ACCESS AT 07:14:50 ON SATURDAY, AUGUST 15, 2026                             
 07.50.34 JOB00421  $HASP373 AAFAREDB STARTED - INIT K    - CLASS S - SYS CPAC                                          
 07.50.34 JOB00421  IEF403I AAFAREDB - STARTED - TIME=07.50.34                                                          
 07.50.34 JOB00421 *IEF233A M 0892,PRIVAT,SL,AAFAREDB,AAFAUTID,  513                                                    
    513                     ADABAS.C.SAVE.DB230.A2026227                                                                
 07.50.37 JOB00421  IEC705I TAPE ON 0892,VC0373,SL,COMP,AAFAREDB,AAFAUTID.SAVE,ADABAS.C.SAVE.DB230.A2026227,MEDIA4      
 07.50.37 JOB00421  ADAU14 00230 ADASAV-Run with save tape 639                                                          
 07.52.38 JOB00421  IEC205I DDSAVE1,AAFAREDB,AAFAUTID,FILESEQ=1, COMPLETE VOLUME LIST,  574                             
    574             DSN=ADABAS.C.SAVE.DB230.A2026227,VOLS=VC0373,TOTALBLOCKS=35035                                      
 07.52.38 JOB00421  IEF234E K 0892,VC0373,PVT,AAFAREDB,AAFAUTID                                                         
 07.52.38 JOB00421  -                                              --TIMINGS (MINS.)--            -----PAGING COUNTS----
 07.52.38 JOB00421  -STEPNAME PROCSTEP    RC   EXCP   CONN    TCB    SRB  CLOCK   SERV  WORKLOAD  PAGE  SWAP   VIO SWAPS
 07.52.38 JOB00421  -SAVE     AAFAUTID    00  54152  85820    .50    .07    2.0  3913K  SYSTEM       0     0     0     0
 07.52.38 JOB00421 *IEF233A M 089E,PRIVAT,SL,AAFAREDB,AAFAUTID,  579                                                    
    579                     ADABAS.C.REORDB.DB230.A2026227                                                              
 07.52.39 JOB00421  ADAN02 00230 Nucleus run without protection log                                                     
 07.52.39 JOB00421  ADAL01 00230 2026-08-15 07:52:38 CLOG not active                                                    
 07.52.39 JOB00421  ADAN03 00230 ADABAS coming up                                                                       
 07.52.40 JOB00421  ADAN01 00230 A D A B A S  V7.4.4  is active                                                         
 07.52.40 JOB00421  ADAN01 00230 MODE = SINGLE                                                                          
 07.52.40 JOB00421  ADAN01 00230 Running without recovery log                                                           
 07.52.44 JOB00421  $HASP375 AAFAREDB ESTIMATED  LINES EXCEEDED                                                         
 07.52.49 JOB00421  IEC705I TAPE ON 089E,VC0580,SL,COMP,AAFAREDB,AAFAUTID.REORDB,ADABAS.C.REORDB.DB230.A2026227,MEDIA4  
 07.59.23 JOB00421  IEC205I DDFILEA,AAFAREDB,AAFAUTID,FILESEQ=1, COMPLETE VOLUME LIST,  918                             
    918             DSN=ADABAS.C.REORDB.DB230.A2026227,VOLS=VC0580,TOTALBLOCKS=36218                                    
 07.59.23 JOB00421  ADAU40 00230 Point of No Return reached                                                             
 07.59.23 JOB00421  ADAU41 00230 ADAORD invoked from job AAFAREDB                                                       
 08.08.12 JOB00421  $HASP375 AAFAREDB ESTIMATE EXCEEDED BY               6,000  LINES                                   
 08.16.26 JOB00421  $HASP375 AAFAREDB ESTIMATE EXCEEDED BY              12,000  LINES                                   
 08.16.35 JOB00421  IEF234E K 089E,VC0580,PVT,AAFAREDB,AAFAUTID                                                         
 08.16.35 JOB00421  -REORDB   AAFAUTID    00  1718K   449K   7.75    .51   23.9 71417K  SYSTEM       0     0     0     0
 08.16.35 JOB00421  IEF404I AAFAREDB - ENDED - TIME=08.16.35                                                            
 08.16.35 JOB00421  -AAFAREDB ENDED.  NAME-DBAP055              TOTAL TCB CPU TIME=   8.25 TOTAL ELAPSED TIME=  26.0    
 08.16.35 JOB00421  $HASP395 AAFAREDB ENDED                                                                             
0------ JES2 JOB STATISTICS ------                                                                                      
-  15 AUG 2026 JOB EXECUTION DATE                                                                                       
-           27 CARDS READ                                                                                               
-       26,134 SYSOUT PRINT RECORDS                                                                                     
-            0 SYSOUT PUNCH RECORDS                                                                                     
-        1,072 SYSOUT SPOOL KBYTES                                                                                      
-        26.01 MINUTES EXECUTION TIME                                                                                   
UQS0009 - END OF DATA SET.                                                                                              

Banco Online
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                                                                                                          
 08.17.32 STC00572 ---- SATURDAY,  15 AUG 2026 ----                                                        
 08.17.32 STC00572  IEF695I START AAFAI230 WITH JOBNAME AAFAI230 IS ASSIGNED TO USER ADABASD , GROUP STCGRP
 08.17.32 STC00572  $HASP373 AAFAI230 STARTED                                                              
 08.17.32 STC00572  IEF403I AAFAI230 - STARTED - TIME=08.17.32                                             
 08.17.34 STC00572  +ADAN02 00230 Nucleus run without protection log                                       
 08.17.34 STC00572  +ADAL04 00230 2026-08-15 08:17:32 W A R N I N G                                        
 08.17.34 STC00572  +             Now it is too late to copy DDCLOGR2                                      
 08.17.34 STC00572  +ADAL02 00230 2026-08-15 08:17:32 CLOGR2 is active                                     
 08.17.34 STC00572  +ADAN03 00230 ADABAS coming up                                                         
 08.17.34 STC00572  +ADAN19 00230 Buffer flush is  a s y n c h r o n o u s                                 
 08.17.34 STC00572  +ADAN01 00230 A D A B A S  V7.4.4  is active                                           
 08.17.34 STC00572  +ADAN01 00230 MODE = MULTI                                                             
 08.17.34 STC00572  +ADAN01 00230 Running without recovery log                                             
 08.19.28 STC00572  +TRIMX4 00230 TRIMV832    STARTUP IN PROGRESS FIX D                                    
 08.19.28 STC00572  +TRIMX4 00230 TRIMV832    ADABAS LBP - ABOVE THE 16 MEG LINE                           
 08.19.28 STC00572  +TRIMX4 00230 TRIMV832    TRIM IS ACTIVE                                               
UQS0009 - END OF DATA SET.                                                                                 

Reorganizado o banco
                                                                                                                                    
                                                                                                                                    
  08:25:48          ***** A D A B A S  BASIC  SERVICES *****       2026-08-15                                                       
  DBID 230                  - Display Unused Storage -                PDRU012                                                       
                                                                                                                                    
         I Device I     Total Number of      I Extent           in Blk.   I                                                         
         I Type   I   Blocks     /  Cyls.    I from        -      until   I                                                         
   ------I--------I------------------------- I----------------------------I                                                         
   DATA  I  8391  I    11509942      153465  I     1118854 -    12628795  I                                                         
   ------I--------I------------------------- I----------------------------I                                                         
   ASSO  I  8391  I    12407339       68929  I      552650 -    12959988  I                                                         
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
  PF1----- PF2------ PF3------ PF4------ PF6----- PF7----- PF8----- PF12-----                                                       
  Help               Exit                                           Menu

Leia Mais

Adabas - A Importância da Limpeza Periódica do Arquivo de Checkpoint

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
  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 DE SISTEMAS CORPORATIVOS' (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!
Leia Mais

sexta-feira, agosto 14, 2026

Adabas - Um Erro no REORFILE entre Cilindros e Blocos

Ao reorganizar um arquivo que extendeu, durante a preparação do REORFILE, precisava informar o tamanho da alocação em blocos. Porém, na hora de preencher o parâmetro, acabei informando o tamanho em cilindros, que representa uma quantidade de espaço bem menor do que a necessária para aquela reorganização. Naquele momento, parecia apenas um detalhe de configuração, mas o resultado foi bem diferente do esperado. Quando o job iniciou o processo de reorganização, o espaço disponível não foi suficiente para realizar a operação e o job acabou dando ABEND justamente no momento em que iria reorganizar o arquivo. Como a reorganização poderia deixar o arquivo em uma situação inconsistente, foi necessário tomar alguns cuidados antes de tentar novamente. Primeiro, restaurei o backup anterior à reorganização, garantindo que o arquivo voltasse ao estado original e íntegro. Somente depois disso, corrigi o parâmetro de tamanho do REORFILE e iniciei novamente o processo de reorganização. No final, o problema foi causado por uma diferença aparentemente simples: informar o tamanho em cilindros quando o esperado era em blocos. É um daqueles erros que servem como lembrete de que, em ambiente Mainframe, pequenos detalhes em parâmetros de JCL ou de utilitários podem provocar consequências grandes.

A lição que ficou foi simples: antes de executar uma reorganização, principalmente em arquivos importantes, é fundamental conferir cuidadosamente a unidade de medida utilizada, o espaço necessário, os parâmetros de alocação e, principalmente, garantir que exista um backup válido para recuperação. Foi um daqueles momentos em que alguns segundos conferindo o parâmetro poderiam ter evitado um bom tempo de trabalho depois.

07:00:41          ***** A D A B A S  BASIC  SERVICES *****       2010-06-25
  DBID 230                   - Display File Layout -                  PDRF022
  File 176

     I Dev  LiI  Space allocated  I      From         To    I Unused
     I Type TyI  Blocks   / Cyls. I      RABN         RABN  I BLOCKS  /  Cyls.
-----I--------I-------------------I ------------------------I------------------
     I        I                   I                         I
ASSO I 8391 ACI      146        0 I     186774 -     186919 I        0        0
     I 8391 ACI       37        0 I     258077 -     258113 I        0        0
     I 8391 ACI       46        0 I     151716 -     151761 I        0        0
     I 8391 ACI       57        0 I     151762 -     151818 I        0        0
     I 8391 ACI       71        0 I     151819 -     151889 I        0        0
     I 8391 UII      110        0 I     190120 -     190229 I       66        0
     I 8391 NII     3200       17 I     186920 -     190119 I        0        0
     I 8391 NII     5540       30 I     265551 -     271090 I      807        4
     I        I                   I                         I
DATA I 8391 DSI     3175       42 I     318634 -     321808 I        0        0
     I 8391 DSI      789       10 I     424305 -     425093 I        0        0
     I 8391 DSI     2309       30 I     281722 -     284030 I        0        0
     I 8391 DSI     3532       47 I     439498 -     443029 I      891       11

Aqui esta o erro, simples, mas que vai causar um grande problema, no lugar de blocos foi colocado o tamanho em cilindros (160B) - tinha que ser 9905B

ADAORD    REORFILE
ADAORD    FILE=176
ADAORD    DSSIZE=160B
ADAORD    MAXISN=600000

O job sofreu ABEND após ultrapassar o ponto de não retorno. Como não havia espaço suficiente para concluir a reorganização, o processo não conseguiu ser finalizado corretamente e o arquivo acabou ficando corrompido. Nesse ponto, a única alternativa segura é restaurar o file anterior à reorganização e, somente depois, realizar novamente o procedimento com os parâmetros de alocação corrigidos.

1                       J E S 2  J O B  L O G  --  S Y S T E M  C P A C  --  N O
0
07.03.30 JOB00079 ---- FRIDAY,    25 JUN 2010 ----
07.03.30 JOB00079  TSS7000I DBAP055 Last-Used 25 Jun 10 06:59 System=CPAC Facil
07.03.30 JOB00079  TSS7001I Count=50978 Mode=Fail Locktime=None Name=CLAUDEMAR
07.03.30 JOB00079  $HASP373 AAFPREOR STARTED - INIT K    - CLASS S - SYS CPAC
07.03.30 JOB00079  IEF403I AAFPREOR - STARTED - TIME=07.03.30
07.04.01 JOB00079  ADAU40 00230 Point of No Return reached
07.04.01 JOB00079  ADAU41 00230 ADAORD invoked from job AAFPREOR
07.04.21 JOB00079  IEA995I SYMPTOM DUMP OUTPUT  571
    571               USER COMPLETION CODE=0034
    571              TIME=07.04.20  SEQ=34616  CPU=0000  ASID=0446
    571              PSW AT TIME OF ERROR  078D1000   800192C4  ILC 2  INTC 0D
    571                ACTIVE LOAD MODULE           ADDRESS=00015F50  OFFSET=000
    571                NAME=ADAIOS
    571                DATA AT PSW  000192BE - 00181610  0A0D0A0D  0000C96D
    571                GR 0: 00000000_80000000   1: 00000000_80000022
    571                   2: 00000000_00046A00   3: 00000000_0000000C
    571                   4: 00000000_1710ABA0   5: 00000000_00094F3F
    571                   6: 00000000_00055430   7: 00000000_00043FE4
    571                   8: 00000000_00043FE4   9: 00000000_0004EEE0
    571                   A: 00000000_00019250   B: 00000000_00044A00
    571                   C: 00000000_8000EDB0   D: 00000000_00012950
    571                   E: 00000000_8001927C   F: 00000004_00019250
    571              END OF SYMPTOM DUMP
07.04.21 JOB00079  IEF450I AAFPREOR AAFAUTID ORDFILE - ABEND=S000 U0034 REASON=
    572                     TIME=07.04.21
07.04.21 JOB00079  -                                              --TIMINGS (MI
07.04.21 JOB00079  -STEPNAME PROCSTEP    RC   EXCP   CONN    TCB    SRB  CLOCK
07.04.21 JOB00079  -ORDFILE  AAFAUTID U0034   9415  29292    .10    .00     .8
07.04.21 JOB00079  IEF404I AAFPREOR - ENDED - TIME=07.04.21
07.04.21 JOB00079  -AAFPREOR ENDED.  NAME-GERMANO              TOTAL TCB CPU TI
07.04.21 JOB00079  $HASP395 AAFPREOR ENDED
0------ JES2 JOB STATISTICS ------
-  25 JUN 2010 JOB EXECUTION DATE
-           23 CARDS READ
-       10,731 SYSOUT PRINT RECORDS
-            0 SYSOUT PUNCH RECORDS
-        1,141 SYSOUT SPOOL KBYTES
-         0.86 MINUTES EXECUTION TIME
UQS0009 - END OF DATA SET.
--------------------------------------------------------------------------------
OP=S CL=ALL IN=ALL JB=AAFPREOR,00079 DS=1 SI=SM LR=22 LL=80 PP=0 DC=
RL=999999 AD=J DE= SC= PT= SQ=C RR=0 OC= SD=2000

Restaurando do backup que foi feito desse file.

MEMBER=REST230  000015 REC SAVE:25.06.2010 07:15 BY   USERID DBAP055  R=00000001
DSN=AAB.DIBD.JCLS                                LIB=S3 VOL=PRL303 UNIT=1024
....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
//ABBPREST  JOB (AAFA,DIBD),GER,CLASS=S,MSGCLASS=A
//*UQ ALLOW
//* ---------------------------------------------------------
//*                   RESTORE DB OFF-LINE
//* ---------------------------------------------------------
//RESTORE  EXEC AAFAU230,TIME=1440
//DDREST1   DD   DSN=ADABAS.C.SAVE.ALL.D.G0463V00,
//         DISP=OLD,UNIT=TP35,VOL=SER=TP0644
//* ---------------------------------------------------------
//DDCARD    DD *
ADARUN PROG=ADASAV,DBID=230,MODE=SINGLE
//DDKARTE   DD *
ADASAV RESTORE FMOVE=176
ADASAV         OVERWRITE
/*

JCL da segunda reorganização - o valor do DS agora é 9905 blocos

MEMBER=REORFILE 000021 REC SAVE:25.06.2010 11:39 BY   USERID DBAP055  R=00000001
DSN=AAB.DIBD.JCLS                                LIB=S3 VOL=PRL303 UNIT=1024
....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
//AAFPREOR JOB (AAFP,OSB),GERMANO,CLASS=S,MSGCLASS=A TYPRUN=HOLD
//*UQ ALLOW
//* ---------------------------------------------------------------
//*                   REORGANIZA O FILE DE UM BANCO
//* ---------------------------------------------------------------
//ORDFILE  EXEC  AAFAU230,TIME=1440
//DDFILEA   DD   DSN=&&DDFILEA,DISP=(,PASS),
//          UNIT=SYSDA,VOL=SER=WRK22A,SPACE=(CYL,(1000,2))
//* ---------------------------------------------------------------
//DDCARD    DD *
ADARUN PROG=ADAORD,DBID=230
//DDKARTE   DD *
ADAORD    REORFILE
ADAORD    FILE=176
** ADAORD    ISNSIZE=3
** ADAORD    INDEXCOMPRESSION=YES
** ADAORD    NISIZE=300B
** ADAORD    UISIZE=500B
ADAORD    DSSIZE=9905B
ADAORD    MAXISN=600000
/*

Reorganizado de novo terminou ok

12:19:00          ***** A D A B A S  BASIC  SERVICES *****       2010-06-25
  DBID 230                   - Display File Layout -                  PDRF022
  File 176

     I Dev  LiI  Space allocated  I      From         To    I Unused
     I Type TyI  Blocks   / Cyls. I      RABN         RABN  I BLOCKS  /  Cyls.
-----I--------I-------------------I ------------------------I------------------
     I        I                   I                         I
ASSO I 8391 ACI      436        2 I     186774 -     187209 I        0        0
     I 8391 UII      110        0 I     151716 -     151825 I       77        0
     I 8391 NII     8740       48 I     265551 -     274290 I     3482       19
     I        I                   I                         I
DATA I 8391 DSI     9905      132 I     439498 -     449402 I     1050       14


Leia Mais

quinta-feira, agosto 13, 2026

Criando Sistemas em Natural/Adabas - RMM

Neste post, apresento a estrutura inicial de um sistema desenvolvido em Natural/Adabas, criado com o objetivo de tornar mais simples, rápida e eficiente a consulta e o gerenciamento de informações relacionadas aos cartuchos no ambiente de grande porte. A aplicação no mainframe que gerencia os cartuchos é o RMM (Removable Media Manager), responsável pelo controle, inventário, movimentação e retenção de mídias utilizadas no ambiente mainframe. A ideia surgiu de uma necessidade bastante prática: embora o TSO seja uma ferramenta extremamente importante e que faz parte da rotina de administração do mainframe, algumas consultas poderiam ser realizadas de maneira muito mais rápida e amigável por meio de uma aplicação desenvolvida em Natural. Um dos exemplos é justamente a consulta de cartuchos. No dia a dia, muitas vezes precisamos localizar rapidamente um volume, verificar seu status, consultar informações da mídia ou simplesmente confirmar alguma informação relacionada ao armazenamento. Fazer esse tipo de consulta diretamente pelo TSO funciona, mas nem sempre oferece a praticidade necessária para uma consulta operacional rápida. Foi pensando nisso que surgiu a proposta deste sistema: utilizar os recursos do Natural/Adabas para criar uma interface simples, objetiva e rápida, permitindo que a equipe técnica tenha acesso às principais informações dos cartuchos sem a necessidade de executar diversos comandos ou navegar por diferentes processos. A solução foi desenvolvida com uma estrutura enxuta, aproveitando a integração direta entre o Natural e o Adabas. Dessa forma, é possível realizar consultas de forma praticamente imediata, utilizando os próprios recursos disponíveis no ambiente de grande porte. Mais do que criar uma aplicação complexa, a proposta é demonstrar como uma ferramenta relativamente simples pode resolver uma necessidade operacional do dia a dia. O Natural permite construir interfaces bastante funcionais, enquanto o Adabas oferece o suporte necessário para armazenar e consultar essas informações com excelente desempenho. Ao longo deste post, apresento a arquitetura inicial da solução, os principais programas envolvidos, a estrutura das consultas, o fluxo de navegação e a forma como o sistema foi organizado para facilitar o trabalho da equipe responsável pela administração das mídias. A ideia é mostrar, na prática, que mesmo utilizando tecnologias consideradas antigas, como Natural e Adabas, ainda é possível desenvolver soluções rápidas, eficientes e perfeitamente adequadas às necessidades atuais de um ambiente mainframe.

AADPA000

Tela do menu inicial
                                                                                
  ------------------------------------------------------------------------------
  DBAP055           SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS           AADPA000
  09:41:53 ------------------------------------------------------------ 13/08/26
                                                                        RMM
                                                                                
  ------------------------------------------------------------------------------
                              01 - Pesquisa de Cartucho          
                              02 - Pesquisa de Label             
                              03 - Pesquisa de Data              
                              04 - Pesquisa de OWNER             
  ------------------------------------------------------------------------------
                                                                                
                           DIGITE A OPCAO DESEJADA 0__                          
                                                                                
                              TECLE PF3 PARA SAIR                               
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
                   MENU                                                         

Programa Natural
* ==================================================================== *
* FUNCAO: SUBMETE JOBS PARA PESQUISAR OS CARTUCHOS DO RMM              *
*  AUTOR: CLAUDEMAR MARTINS DE SA                                      *
* CRIADO: 01/12/2022                                                   *
* ==================================================================== *
DEFINE DATA LOCAL                                                       
1 #ARQ1 (N3)                                                            
END-DEFINE                                                              
* ==================================================================== *
FORMAT KD=ON                                                            
SET CONTROL 'U'                                                         
* SET KEY PF3 = 'AABP300M' NAMED 'MENU'                                   
REPEAT                                                                  
* ==================================================================== *
  INPUT (IP=OFF SG=OFF AD=MIL'_')                                       
    02T '-' (78)                                                        
    / 02T *USER                                                         
    20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)72T *PROGRAM      
    / 02T *TIME(AL=8) 11T '-' (60) 72T  *DATE                           
    /72T *LIBRARY-ID                                                    
    //                                               
    02T '-' (78)                                        /                                                
    29T '01 - Pesquisa de Cartucho ' (I)                /                                                
    29T '02 - Pesquisa de Label    ' (I)                /                                                
    29T '03 - Pesquisa de Data     ' (I)                /                                                
    29T '04 - Pesquisa de OWNER    ' (I)                /                                                
    29T '-' (78)                                     
    //27T'DIGITE A OPCAO DESEJADA'(YE) #ARQ1(AD=MIL'_')                 
    //30T'TECLE PF3 PARA SAIR'(I)                                       
* ==================================================================== *
  DECIDE ON FIRST VALUE OF #ARQ1                                        
    VALUE 01 FETCH 'AADPA001'                                           
    VALUE 02 FETCH 'AADPA002'                                           
    VALUE 03 FETCH 'AADPA003'                                           
    VALUE 04 FETCH 'AADPA004'                                           
    NONE VALUE REINPUT ' OPCAO INVALIDA'                                
  END-DECIDE                                                            
* ==================================================================== *
END                                                                     

AADPA002

Pesquisa pelo nome do dataset (label) do cartucho;
                                                                                
  ------------------------------------------------------------------------------
  DBAP055           SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS            AADPA002
  09:55:43 ------------------------------------------------------------ 13/08/26
                            PESQUISA LABEL DE CARTUCHO                  RMM
                                                                                
           ------------------------------------------------------------         
                                                                                
                 LABEL : RMM_________________________________________           
                                                                                
           ------------------------------------------------------------         
                                                                                
                              TECLE PF3 PARA SAIR                               
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
                   EXIT                                                          

Resultado da pesquisa
                                                                                
 09:56:29                  CARTUCHO DO TLMS                            13/08/26 
                    DATASET                     CART   OWNER      DATA    SEQ   
 --------------------------------------------- ------ -------- ---------- ---   
                                                                                
 RMM.C.BACKUP.DIARIO.G0078V00                  VC1108          01/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0080V00                  VC1110          03/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0081V00                  VC1029          04/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0082V00                  VC1121          05/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0083V00                  VC1125          06/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0084V00                  VC1133          07/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0085V00                  VC1135          08/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0086V00                  VC1058          09/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0087V00                  VC1137          10/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0088V00                  VC1064          11/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0089V00                  VC1140          12/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0090V00                  VC1142          13/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0091V00                  VC1147          14/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0092V00                  VC1153          15/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0093V00                  VC0987          16/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0094V00                  VC1075          17/10/2025 1     
                                                                                
 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
                   EXIT                                                         

Programa Natural
* -------------------------------------------------------------------- *
* FUNCAO .: PESQUISA CARTUCHO NO TLMS USANDO O NOME DO LABEL           *
* AUTOR ..: CLAUDEMAR MARTINS                                          *
* -------------------------------------------------------------------- *
DEFINE DATA                                                             
LOCAL                                                                   
01 #DIRECTION (A1) INIT <'D'>   /* 'A' = ASCENDING                      
01 MONITORAMENTO VIEW OF AAFU-FITOTECA-RMM                              
  02 AAF-DATASET                                                        
  02 AAF-CARTUCHO                                                       
  02 AAF-OWNER                                                          
  02 AAF-DATA                                                           
  02 AAF-SEQUENCIA                                                      
01 #LABEL (A44) /* INIT <'ADABAS.C.SAVE.DB240.MES.G0199V00'>            
* -------------------------------------------------------------------- *
END-DEFINE                                                              
FORMAT LS=180 PS=20 KD=ON                                               
* -------------------------------------------------------------------- *
FORMAT KD=ON                                                            
SET KEY                                                                 
PF3  = PGM  NAMED 'EXIT'                                                
* -------------------------------------------------------------------- *
INPUT (IP=OFF SG=OFF AD=MIL'_')                                         
  02T '-' (78)                                                          
  /       02T *USER                                                     
  20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)                    
  72T  *PROGRAM                                                         
  /       02T  *TIME(AL=8)                                              
  11T '-' (60)                                                          
  72T  *DATE                                                            
  /    28T 'PESQUISA LABEL DE CARTUCHO'(I) 72T *LIBRARY-ID /            
* -------------------------------------------------------------------- *
  /                                                                     
  11T '-' (60)                                                          
  /                                                                     
  /14T'   LABEL :' #LABEL (AD=MIL'_')                                   
  //                                                                    
  11T '-' (60)                                                          
* -------------------------------------------------------------------- *
  //30T'TECLE PF3 PARA SAIR' (I)                                        
* -------------------------------------------------------------------- *
IF *PF-KEY EQ 'PF3'                                                     
  FETCH 'AADPA000'                                                      
END-IF                                                                  
* -------------------------------------------------------------------- *
READ MONITORAMENTO BY AAF-DATASET = #LABEL                              
* -------------------------------------------------------------------- *
DISPLAY                                                               
'DATASET' AAF-DATASET                                                   
'CART'    AAF-CARTUCHO                                                  
'OWNER'   AAF-OWNER                                                     
'DATA'    AAF-DATA                                                      
'SEQ'     AAF-SEQUENCIA                                                 
* -------------------------------------------------------------------- *
  WRITE TITLE LEFT JUSTIFIED                                            
    *TIME(AL=8) 27T 'CARTUCHO DO RMM' (I) 71T *DATE                    
  AT END OF PAGE                                                        
    INPUT ' '                                                           
    IF *PF-KEY EQ 'PF3'                                                 
      FETCH 'AADPA000'                                                  
    END-IF                                                              
  END-ENDPAGE                                                           
* -------------------------------------------------------------------- *
END-READ                                                                
FETCH 'AADPA002'                                                        
END                                                                     

AADPA003

Busca pelo dia, interessante pra gente saber o que rodou em um dia especifico no mainframe
                                                                                
  ------------------------------------------------------------------------------
  DBAP055           SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS            AADPA003
  10:02:30 ------------------------------------------------------------ 13/08/26
                      PESQUISA CARTUCHO - DATA DE GRAVACAO              RMM
                                                                                
           ------------------------------------------------------------         
                                                                                
                       DATA DE GRAVACAO .....: 13/08/2026                       
                                                                                
           ------------------------------------------------------------         
                                                                                
                              TECLE PF3 PARA SAIR                               
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
                   EXIT                                                         

Resultado
 MORE                                                                           
 10:03:43                  CARTUCHO DO TLMS                            13/08/26 
                    DATASET                     CART    DONO      DATA    SEQ   
 --------------------------------------------- ------ -------- ---------- ---   
                                                                                
 AAA.C.ACCOUNT.DIARIO.G4307V00                 VC1393 AAASMFDB 13/08/2026 1     
 AAB.C.RACF.BACKUP.DIARIO.G0446V00             VC1155 AABSRA02 13/08/2026 1     
 ADABAS.C.DB240.PLOG.G8182V00                  VC1360 ADABA01  13/08/2026 1     
 ADABAS.C.SAVE.DB240.DIA.G5628V00              VC1189 ADABA01  13/08/2026 1     
 ADABAS.C.SAVE.DB240.DIA.G5628V00              VC1286 ADABA01  13/08/2026 1     
 ADABAS.C.SAVE.DB240.DIA.G5628V00              VC1356 ADABA01  13/08/2026 1     
 ADABAS.C.SAVE.DB240.DIA.G5628V00              VC1357 ADABA01  13/08/2026 1     
 ADABAS.C.SAVE.DB240.DIA.G5628V00              VC1358 ADABA01  13/08/2026 1     
 ADABAS.C.SAVE.DB240.DIA.G5628V00              VC1359 ADABA01  13/08/2026 1     
 ADABAS.C.SAVE.DB240.DIA.G5628V00              VC1392 ADABA01  13/08/2026 1     
 RMM.C.BACKUP.DIARIO.G0396V00                  VC1452 RMM00010 13/08/2026 1     
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
                   MENU                                                         

Programa Natural
* -------------------------------------------------------------------- *
* FUNCAO .: PESQUISA CARTUCHO CRIADOS NO DIA ESPECIFICADO              *
* AUTOR ..: CLAUDEMAR MARTINS                                          *
* -------------------------------------------------------------------- *
DEFINE DATA                                                             
LOCAL                                                                   
01 MONITORAMENTO VIEW OF AAFU-FITOTECA-RMM                              
02 AAF-DATASET                                                          
02 AAF-CARTUCHO                                                         
02 AAF-OWNER                                                            
02 AAF-DATA                                                             
02 AAF-SEQUENCIA                                                        
01 #DIA   (A10)                                                         
* -------------------------------------------------------------------- *
END-DEFINE                                                              
FORMAT LS=80 PS=20                                                      
* -------------------------------------------------------------------- *
MOVE *DAT4E TO #DIA                                                     
* -------------------------------------------------------------------- *
FORMAT KD=ON                                                            
SET KEY                                                                 
PF3  = PGM  NAMED 'EXIT'                                                
* -------------------------------------------------------------------- *
  INPUT (IP=OFF SG=OFF AD=MIL'_')                                       
    02T '-' (78)                                                        
    /       02T *USER                                                   
    20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)                  
    72T  *PROGRAM                                                       
    /       02T  *TIME(AL=8)                                            
    11T '-' (60)                                                        
    72T  *DATE                                                          
/    22T 'PESQUISA CARTUCHO - DATA DE GRAVACAO'(I) 72T *LIBRARY-ID /    
* -------------------------------------------------------------------- *
/                                                                       
11T '-' (60)                                                            
/                                                                       
/12T'           DATA DE GRAVACAO .....:' #DIA (AD=MIL'_')               
//                                                                      
11T '-' (60)                                                            
* -------------------------------------------------------------------- *
//30T'TECLE PF3 PARA SAIR' (I)                                          
* -------------------------------------------------------------------- *
   IF *PF-KEY EQ 'PF3'                                                  
   FETCH 'AADPA000'                                                     
   END-IF                                                               
* -------------------------------------------------------------------- *
* READ     MONITORAMENTO            BY AAF-DSN  = #DIA                  
* -------------------------------------------------------------------- *
  FIND  MONITORAMENTO WITH AAF-DATA  = #DIA                             
   SORTED BY AAF-DATASET   /* AAF-VOLSEQ  /* DESCENDING                 
   IF NO RECORDS FOUND                                                  
   REINPUT 'NAO TEM CARTUCHO GRAVADO NESTE DIA' /*  MARK #CARTUCHO      
   END-NOREC                                                            
* -------------------------------------------------------------------- *
 DISPLAY                                                                
'DATASET' AAF-DATASET                                                   
'CART'    AAF-CARTUCHO                                                  
'DONO'    AAF-OWNER                                                     
'DATA'    AAF-DATA                                                      
'SEQ'     AAF-SEQUENCIA                                                 
* -------------------------------------------------------------------- *
  WRITE TITLE LEFT JUSTIFIED                                            
  *TIME(AL=8) 27T 'CARTUCHO DO TLMS' (I) 71T *DATE                      
  AT END OF PAGE                                                        
     INPUT ' '                                                          
     IF *PF-KEY EQ 'PF3'                                                
        FETCH 'AADPA000'                                                
     END-IF                                                             
  END-ENDPAGE                                                           
* -------------------------------------------------------------------- *
  END-FIND                                                              
    FETCH 'AADPA003'                                                    
  END                                                                   

AADPA004

Pesquisando quem é o Owner
                                                                                
  ------------------------------------------------------------------------------
  DBAP055           SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS            AADPA004
  10:07:34 ------------------------------------------------------------ 13/08/26
                                PESQUISA OWNER                          RMM
                                                                                
           ------------------------------------------------------------         
                                                                                
                         DIGITE O OWNER ..: RMM_____                            
                                                                                
           ------------------------------------------------------------         
                                                                                
                              TECLE PF3 PARA SAIR                               
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
                   EXIT                                                         

Resultado
                                                                                
 10:07:51                 PESQUISANDO OS OWNER DO RMM                  13/08/26 
                                                                                
 ALA.C.AUT.L.BKP1.R111997.COM0                 CT0774 RMM      08/10/1998 2     
 ALA.C.AUT.L.BKP2.R111997.COM0                 CT0774 RMM      08/10/1998 3     
 ALA.C.AUT.L.BKP1.R131997.FOL0                 CT0774 RMM      08/10/1998 4     
 ALA.C.AUT.L.BKP2.R131997.FOL0                 CT0774 RMM      08/10/1998 5     
 ALA.C.AUT.L.BKP1.R131997.COM1                 CT0774 RMM      08/10/1998 6     
 ALA.C.AUT.L.BKP2.R131997.COM2                 CT0774 RMM      08/10/1998 7     
 ALA.C.AUT.L.BKP1.R121997.FOL2                 CT0774 RMM      08/10/1998 8     
 ALA.C.AUT.L.BKP2.R121997.FOL2                 CT0774 RMM      08/10/1998 9     
 ALA.C.AUT.L.BKP3.R121997.FOL2                 CT0774 RMM      08/10/1998 10    
 ALA.C.AUT.L.BKP1.R121997.COM0                 CT0774 RMM      08/10/1998 11    
 ALA.C.AUT.L.BKP2.R121997.COM0                 CT0774 RMM      08/10/1998 12    
 ADABAS.C.SAVE.RH.DATA.ALL210.MES.G0018V00     CT0775 RMM      13/11/2005 1     
 ALA.C.DIR.L.BKP.A1997                         CT0777 RMM      07/04/2010 1     
 ALA.C.DIR.L.BKP2.R061997.PRE0.SEFOP.PG02      CT0777 RMM      07/04/2010 2     
 ALA.C.DIR.L.BKP3.R061997.PRE0.SEFOP.PG02      CT0777 RMM      07/04/2010 3     
 AAH.C.SAVE.F2324.G0010V00                     CT0778 RMM      17/01/2001 1     
 ALA.C.DIR.S.BKP1.R011998.FOL2                 CT0779 RMM      10/03/1998 1     
 ALA.C.DIR.S.BKP2.R011998.FOL2                 CT0779 RMM      10/03/1998 2     
                                                                                
 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
                   EXIT                                                         

Programa Natural
* -------------------------------------------------------------------- *
* FUNCAO .: PESQUISA O OWNER NO TLMS USANDO O NUMERO DO CARTUCHO       *
* AUTOR ..: CLAUDEMAR MARTINS DE SA                                    *
* -------------------------------------------------------------------- *
DEFINE DATA                                                             
LOCAL                                                                   
01 TLMS VIEW OF AAFU-FITOTECA-RMM                                       
  02 AAF-DATASET                                                        
  02 AAF-CARTUCHO                                                       
  02 AAF-OWNER                                                          
  02 AAF-DATA                                                           
  02 AAF-SEQUENCIA                                                      
01 #CARTUCHO                      (A8)                                  
* -------------------------------------------------------------------- *
END-DEFINE                                                              
FORMAT LS=80 PS=20                                                      
* -------------------------------------------------------------------- *
FORMAT KD=ON                                                            
SET KEY                                                                 
PF3  = PGM  NAMED 'EXIT'                                                
* -------------------------------------------------------------------- *
INPUT (IP=OFF SG=OFF AD=MIL'_')                                         
  02T '-' (78)                                                          
  /       02T *USER                                                     
  20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)                    
  72T  *PROGRAM                                                         
  /       02T  *TIME(AL=8)                                              
  11T '-' (60)                                                          
  72T  *DATE                                                            
  /                                                                     
  32T 'PESQUISA OWNER'(I) 72T *LIBRARY-ID /                             
  /                                                                     
  11T '-' (60)                                                          
  /                                                                     
  /15T'          DIGITE O OWNER ..:'#CARTUCHO (AD=MIL'_')               
  //                                                                    
  11T '-' (60)                                                          
  /                                                                     
  /30T'TECLE PF3 PARA SAIR' (I)                                         
IF *PF-KEY EQ 'PF3'                                                     
  FETCH 'AADPA000'                                                      
END-IF                                                                  
* -------------------------------------------------------------------- *
* READ     MONITORAMENTO            BY AAF-CARTUCHO  = #CARTUCHO        
* -------------------------------------------------------------------- *
FIND  TLMS WITH AAF-OWNER     = #CARTUCHO                               
* -------------------------------------------------------------------- *
  WRITE                                                                 
    AAF-DATASET                                                         
    AAF-CARTUCHO                                                        
    AAF-OWNER                                                           
    AAF-DATA                                                            
    AAF-SEQUENCIA                                                       
* -------------------------------------------------------------------- *
  WRITE  TITLE LEFT                                                     
    *TIME(AL=8) 26T 'PESQUISANDO OS OWNER DO RMM' (I) 71T *DATE         
    /                                                                   
  AT END OF PAGE                                                        
    INPUT ' '                                                           
    IF *PF-KEY EQ 'PF3'                                                 
      FETCH 'AADPA000'                                                  
    END-IF                                                              
  END-ENDPAGE                                                           
* -------------------------------------------------------------------- *
END-FIND                                                                
FETCH   'AADPA004'                                                      
END                                                                     

View

Esses programas usaram a view abaixo
 09:31:20               ***** NATURAL LIST COMMAND *****              13/08/2026
 User DBAP055            - List DDM AAFU-FITOTECA-RMM -         Library RMM
                                                                                
 DDM DBID 0      DDM FNR 433   VSAM Name          Default Sequence     Page   1 
                                                                                
 T L  DB  Name                             F Leng  S D Remark                   
 - -  --  -------------------------------- - ----  - - ------------------------ 
 *        Generation started                                                    
 *        at 2025-12-29 09:09:11                                                
 *        by user DBAP055                                                       
 *                                                                              
   1  AA  AAF-DATASET                      A   45  N D                          
   1  AB  AAF-CARTUCHO                     A    6  N D                          
   1  AC  AAF-OWNER                        A    8  N D                          
   1  AD  AAF-DATA                         A   10  N D                          
   1  AE  AAF-SEQUENCIA                    A    3  N                            
   1  AF  AAF-LIBERADO                     A    7  N                            
                                                                                
                                                                                
                                                                                
 End of List.                                                                   
 Command ===>                                                                   
 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
       Help  Print Exit  Short       --    -     +     ++                Canc

Carga do RMM

Esse foi o JCL utilizado para fazer a carga dos dados do RMM para o Adabas
//AADPA001 JOB (AABS,DIST),CLAUDEMAR,CLASS=S,MSGCLASS=A,USER=AASUB06
//*UQ ALLOW                                                         
//* ----------------------------------------------------------------
//*       LISTAR OS CARTUCHOS DO RMM E SALVAR NO BANCO ADABAS       
//* ----------------------------------------------------------------
//  SET DSN1=AAF.S.TSSUSER.CLAU                                     
//  SET DSN2=AAF.S.BKP242                                           
//* ----------------------------------------------------------------
//*       DELETANDO REGISTROS DO FILE ANTES DE CARREGAR - 240       
//* ----------------------------------------------------------------
//STEP0105 EXEC NATURAL,PARM1='SYS=P,MT=0,STACK=(LOGON RMM)'   
//SYSPRINT DD SYSOUT=A                                              
//CMWKF01  DD SYSOUT=A                                              
//CMPRT01  DD DUMMY                                                 
//SYSIN    DD *                                                     
AADPA005                                                            
//* ----------------------------------------------------------------
//*               GERANDO DADOS DOS CARTUCHOS DO RMM                
//* ----------------------------------------------------------------
//STEP0205 EXEC PGM=IKJEFT01,REGION=4096K                           
//SYSTSPRT DD DISP=SHR,DSN=&DSN1                                    
//SYSPRINT DD SYSOUT=A                                              
//SYSTSIN  DD *                                                     
  RMM SEARCHDATASET OWNER(*) SINCE(91073) LIMIT(*)                  
//* ----------------------------------------------------------------
//*           FILTRO/CLASSFICACAO DOS CARTUCHOS RETIDOS             
//* ----------------------------------------------------------------
//STEP0305 EXEC PGM=SORT                                            
//SYSPRINT DD SYSOUT=Z                                              
//SYSOUT   DD SYSOUT=Z                                              
//SORTIN   DD DISP=SHR,DSN=&DSN1                                    
//SORTOUT  DD DISP=SHR,DSN=&DSN2                                    
//SORTWK1  DD DSN=&&TEMP01,DISP=(NEW,PASS),                         
//           SPACE=(CYL,2),UNIT=SYSDA,                              
//           DCB=(LRECL=133,BLKSIZE=1330,RECFM=FBA)                 
//* --------------------------------------------------------------  
//SYMNAMES  DD *                                                    
  LABEL;1,46,CH                                                     
  CT;47,2,CH                                                        
  CARTUCHO;49,4,CH                                                  
  DATA;63,10,CH                                                     
  SEQ;75,4,CH                                                       
//SYSIN    DD *                                                     
  SORT FIELDS=(CT,A,CARTUCHO,A,75,4,UFF,A)                          
  INCLUDE COND=(CT,EQ,C'CT',OR,CT,EQ,C'TP',OR,CT,EQ,C'VC')          
/*                                                                  
//* --------------------------------------------------------------- 
//*                      ICEGENER PARA A SYSOUT                     
//* --------------------------------------------------------------- 
//STEP0405 EXEC PGM=ICEGENER                                        
//SYSPRINT DD SYSOUT=A                                              
//SYSUT1   DD DISP=SHR,DSN=&DSN2                                    
//SYSUT2   DD SYSOUT=A                                              
//SYSIN    DD DUMMY                                                 
//* ----------------------------------------------------------------
//*                  GRAVANDO NO FILE 433 BANCO 240                 
//* ----------------------------------------------------------------
//STEP0505 EXEC NATURAL,PARM1='SYS=P,MT=0,STACK=(LOG RMM)'     
//CMWKF01  DD DISP=SHR,DSN=&DSN2                                    
//CMPRINT  DD SYSOUT=A                                              
//CMPRT01  DD SYSOUT=A,HOLD=YES
//SYSIN    DD *                
RMM0003                        
/*

AADPA005

Limpando os dados antes de fazer a carga no file onde estão os dados do RMM no Adabas
* -------------------------------------------------------------------- *
* FUNCAO: LIMPAR OS DADOS DO FILE 433 DO ADABAS ANTES DA RECARGA       *
* AUTOR : CLAUDEMAR MARTINS DE SA                                      *
* -------------------------------------------------------------------- *
DEFINE DATA LOCAL                                                       
01 RMM VIEW OF AAFU-FITOTECA-RMM                                        
  02 AAF-DATASET  /* CAMPO APENAS PARA REFERENCIA NA VIEW               
01 #TOTAL-DELETED (N7)                                                  
01 #CTR-COMMIT    (N7)                                                  
END-DEFINE                                                              
* -------------------------------------------------------------------- *
* LER TODOS OS REGISTROS DO ARQUIVO                                    *
* -------------------------------------------------------------------- *
READ RMM BY ISN                                                         
  DELETE (0140)                                                         
  ADD 1 TO #TOTAL-DELETED                                               
  ADD 1 TO #CTR-COMMIT                                                  
* -------------------------------------------------------------------- *
* QUANDO CHEGAR EM 500, ZERA O CONTADOR E FAZ O COMMIT                  
* -------------------------------------------------------------------- *
  IF #CTR-COMMIT GE 500                                                 
    END TRANSACTION                                                     
    RESET #CTR-COMMIT                                                   
  END-IF                                                                
END-READ                                                                
END TRANSACTION                                                         
* -------------------------------------------------------------------- *
WRITE 'PROCESSAMENTO CONCLUIDO.'                                        
WRITE 'TOTAL DE REGISTROS DELETADOS:' #TOTAL-DELETED                    
END                                                                     

RMM0003

Programa que faz a carga dos dados do RMM que estão em um dataset e grava em um file Adabas
* -------------------------------------------------------------------- *
*  FUNCAO: GRAVANDO OS DADOS DO RMM PARA UM FILE ADABAS                 
*  AUTOR : CLAUDEMAR MARTINS                                            
* -------------------------------------------------------------------- *
DEFINE DATA LOCAL                                                       
01 RMM VIEW OF AAFU-FITOTECA-RMM                                        
  02 AAF-DATASET                                                        
  02 AAF-CARTUCHO                                                       
  02 AAF-OWNER                                                          
  02 AAF-DATA                                                           
  02 AAF-SEQUENCIA                                                      
* -------------------------------------------------------------------- *
01 #DADOS-GENERICOS (A79)                                               
01 REDEFINE #DADOS-GENERICOS                                            
  02 FILLER                   1X                                        
  02 #DSN                     (A44)                                     
  02 FILLER                   1X                                        
  02 #VOLUME                  (A06)                                     
  02 FILLER                   1X                                        
  02 #OWNER                   (A08)                                     
  02 FILLER                   1X                                        
  02 #CREATE_DATE             (A11)                                     
  02 REDEFINE  #CREATE_DATE                                             
    03 #DIA                   (A02)                                     
    03 #SEPARATOR1            (A01)                                     
    03 #MES                   (A02)                                     
    03 #SEPARATOR2            (A01)                                     
    03 ANO                    (A04)                                     
  02 FILLER                   1X                                        
  02 #SEQ                     (N05)                                     
END-DEFINE                                                              
* -------------------------------------------------------------------- *
* GRAVANDO OS DADOS                                                     
* -------------------------------------------------------------------- *
READ WORK FILE 1 #DADOS-GENERICOS                                       
* -------------------------------------------------------------------- *
  IF   #SEPARATOR1 EQ '/'                                               
    AAF-DATASET     :=  #DSN                                            
    AAF-CARTUCHO    :=  #VOLUME                                         
    AAF-OWNER       :=  #OWNER                                          
    AAF-DATA        :=  #CREATE_DATE
    AAF-SEQUENCIA   :=  #SEQ        
  END-IF                            
* -------------------------------------------------------------------- *
* GRAVAR NO BANCO DE DADOS                                          
* -------------------------------------------------------------------- *
  STORE RMM                                                             
  END TRANSACTION                                                       
END-WORK                                                                
END
Leia Mais