segunda-feira, agosto 10, 2026

Identificando os Jobs com Maior Número de Linhas pelo TSO

No TSO, temos recursos que permitem identificar quais são os jobs mais pesados que estão na fila do SPOOL. Essa informação pode ser bastante útil para quem trabalha com operação e administração do ambiente mainframe, principalmente quando existe uma grande quantidade de jobs aguardando processamento ou quando o SPOOL começa a apresentar um volume elevado de informações. Ao analisar os jobs, podemos identificar aqueles que geraram uma quantidade maior de saída, seja por possuírem muitos relatórios, mensagens, listagens ou arquivos de spool. Esses jobs podem ocupar uma quantidade significativa de espaço no SPOOL e, dependendo da situação, contribuir para o aumento de sua utilização. Essa consulta também é importante durante uma análise operacional. Quando percebemos que o SPOOL está crescendo rapidamente, por exemplo, podemos verificar quais jobs estão gerando a maior quantidade de saída e, a partir dessas informações, investigar o motivo desse comportamento. Neste post, vamos mostrar como utilizar o TSO para localizar os jobs que possuem maior volume de linhas no SPOOL e como interpretar essas informações para auxiliar no monitoramento do ambiente - Opção ST

  Display  Filter  View  Print  Options  Help                                  
-------------------------------------------------------------------------------
HQX7730 -----------------  SDSF PRIMARY OPTION MENU  --------------------------
                                                                               
DA    Active users                      INIT  Initiators                       
I     Input queue                       PR    Printers                         
O     Output queue                      PUN   Punches                          
H     Held output queue                 RDR   Readers                          
ST    Status of jobs                    LINE  Lines                            
                                        NODE  Nodes                            
LOG   System log                        SO    Spool offload                    
SR    System requests                   SP    Spool volumes                    
MAS   Members in the MAS                                                       
JC    Job classes                       RM    Resource monitor                 
SE    Scheduling environments           CK    Health checker                   
RES   WLM resources                                                            
ENC   Enclaves                          ULOG  User session log                 
PS    Processes                                                                
                                                                               
END   Exit SDSF                                                                
                                                                               
                                                                               
COMMAND INPUT ===> st                                         SCROLL ===> PAGE
 F1=HELP      F2=SPLIT     F3=END       F4=RETURN    F5=IFIND     F6=BOOK      
 F7=UP        F8=DOWN      F9=SWAP     F10=LEFT     F11=RIGHT    F12=RETRIEVE  

Comandos que temos que dar em COMMAND INPUT

PREFIX *
SORT TGNum D 

PF11 para ver os jobs mais pesados

   Display  Filter  View  Print  Options  Help                                  
 -------------------------------------------------------------------------------
 SDSF STATUS DISPLAY ALL CLASSES                        LINE 1-35 (3752)        
 PREFIX=*  DEST=(ALL)  OWNER=*  SORT=TGNum/D  SYSNAME=                          
 NP   JOBNAME  JobID    Owner    Prty Queue      C  Pos  SAff  ASys Status      
      AAFSMTP  STC09610 AAFSMTP    15 EXECUTION          CPAC  CPAC             
      AAFCINIP STC04102 COMPP      15 EXECUTION          CPAC  CPAC             
      AAFBC240 STC08826 BROKER     15 EXECUTION          CPAC  CPAC             
      AAFBC240 STC08829 BROKER     15 EXECUTION          CPAC  CPAC             
      AAFBC240 STC08830 BROKER     15 EXECUTION          CPAC  CPAC             
      AAFBC240 STC08831 BROKER     15 EXECUTION          CPAC  CPAC             
      AAFBC240 STC08832 BROKER     15 EXECUTION          CPAC  CPAC             
      AAFBC240 STC08833 BROKER     15 EXECUTION          CPAC  CPAC             
      AAFBC240 STC08835 BROKER     15 EXECUTION          CPAC  CPAC             
      AAFBC240 STC08836 BROKER     15 EXECUTION          CPAC  CPAC             
      AAFBC240 STC08839 BROKER     15 EXECUTION          CPAC  CPAC             
      AAFANATU STC08605 NATUNLD     1 PRINT          757                        
      AAFANATU STC06072 NATUNLD     1 PRINT         2728                        
      AAFBE240 STC09860 BROKER     15 EXECUTION          CPAC  CPAC             
      AAFCINID STC04647 COMPD      15 EXECUTION          CPAC  CPAC             
      AABVSCPS JOB09661 AA97066     1 PRINT      Z  3074                        
      AABVSCPS JOB09662 AA97066     1 PRINT      Z  3075                        
      AABVSCPS JOB09663 AA97066     1 PRINT      Z  3076                        
      AABVSCPS JOB09660 AA97066     1 PRINT      Z  3073                        
      AABVSCPS JOB09665 AA97066     1 PRINT      Z  3077                        
      AAFBK080 STC08559 AAFBK080   15 EXECUTION          CPAC  CPAC             
      AAFBK080 STC08560 AAFBK080   15 EXECUTION          CPAC  CPAC             
      AAFBR240 STC03771 BROKER     15 EXECUTION          CPAC  CPAC             
      AAFBR240 STC03775 BROKER     15 EXECUTION          CPAC  CPAC             
      SYSLOG   STC09538 +MASTER+   15 EXECUTION          CPAC  CPAC             
      AECPA037 JOB00446 AESUB01     1 PRINT      X  3183                        
      AAFBR244 STC03818 BROKER     15 EXECUTION          CPAC  CPAC             
      AAFBR244 STC03821 BROKER     15 EXECUTION          CPAC  CPAC             
      AAFBR244 STC03834 BROKER     15 EXECUTION          CPAC  CPAC             
      AAFBR244 STC03836 BROKER     15 EXECUTION          CPAC  CPAC             
      AAFBR244 STC03837 BROKER     15 EXECUTION          CPAC  CPAC             
      AAFBR244 STC03832 BROKER     15 EXECUTION          CPAC  CPAC             
      AAFBR244 STC03833 BROKER     15 EXECUTION          CPAC  CPAC             
      AAFBR244 STC03835 BROKER     15 EXECUTION          CPAC  CPAC             
      AAFBR244 STC03839 BROKER     15 EXECUTION          CPAC  CPAC             
 COMMAND INPUT ===>                                            SCROLL ===> PAGE
  F1=HELP      F2=SPLIT     F3=END       F4=RETURN    F5=IFIND     F6=BOOK      
  F7=UP        F8=DOWN      F9=SWAP     F10=LEFT     F11=RIGHT    F12=RETRIEVE   

Digite PF11 para a tela ir para a direita - Observe a coluna TGNum - essa é a coluna que mostra os jobs mais pesados

   Display  Filter  View  Print  Options  Help                                  
 -------------------------------------------------------------------------------
 SDSF STATUS DISPLAY ALL CLASSES                        LINE 1-35 (3752)        
 PREFIX=*  DEST=(ALL)  OWNER=*  SORT=TGNum/D  SYSNAME=                          
 NP   JOBNAME        PrtDest            SecLabel TGNum  TGPct OrigNode ExecNode 
      AAFSMTP        LOCAL                         495   0.74 LOCAL    LOCAL   
      AAFCINIP       LOCAL                         399   0.59 LOCAL    LOCAL   
      AAFBC240       LOCAL                         281   0.42 LOCAL    LOCAL   
      AAFBC240       LOCAL                         281   0.42 LOCAL    LOCAL   
      AAFBC240       LOCAL                         281   0.42 LOCAL    LOCAL   
      AAFBC240       LOCAL                         281   0.42 LOCAL    LOCAL   
      AAFBC240       LOCAL                         281   0.42 LOCAL    LOCAL   
      AAFBC240       LOCAL                         281   0.42 LOCAL    LOCAL   
      AAFBC240       LOCAL                         281   0.42 LOCAL    LOCAL   
      AAFBC240       LOCAL                         281   0.42 LOCAL    LOCAL   
      AAFBC240       LOCAL                         281   0.42 LOCAL    LOCAL   
      AAFANATU       LOCAL                         171   0.25 LOCAL    LOCAL   
      AAFANATU       LOCAL                         171   0.25 LOCAL    LOCAL   
      AAFBE240       LOCAL                         137   0.20 LOCAL    LOCAL   
      AAFCINID       LOCAL                         133   0.19 LOCAL    LOCAL   
      AABVSCPS       LOCAL                         109   0.16 LOCAL    LOCAL   
      AABVSCPS       LOCAL                         109   0.16 LOCAL    LOCAL   
      AABVSCPS       LOCAL                         109   0.16 LOCAL    LOCAL   
      AABVSCPS       LOCAL                         108   0.16 LOCAL    LOCAL   
      AABVSCPS       LOCAL                         108   0.16 LOCAL    LOCAL   
      AAFBK080       LOCAL                          84   0.12 LOCAL    LOCAL   
      AAFBK080       LOCAL                          84   0.12 LOCAL    LOCAL   
      AAFBR240       LOCAL                          58   0.08 LOCAL    LOCAL   
      AAFBR240       LOCAL                          58   0.08 LOCAL    LOCAL   
      SYSLOG         LOCAL              SYSHIGH     49   0.07 LOCAL    LOCAL   
      AECPA037       LOCAL                          46   0.06 LOCAL    LOCAL   
      AAFBR244       LOCAL                          40   0.05 LOCAL    LOCAL   
      AAFBR244       LOCAL                          39   0.05 LOCAL    LOCAL   
      AAFBR244       LOCAL                          39   0.05 LOCAL    LOCAL   
      AAFBR244       LOCAL                          39   0.05 LOCAL    LOCAL   
      AAFBR244       LOCAL                          39   0.05 LOCAL    LOCAL   
      AAFBR244       LOCAL                          38   0.05 LOCAL    LOCAL   
      AAFBR244       LOCAL                          38   0.05 LOCAL    LOCAL   
      AAFBR244       LOCAL                          38   0.05 LOCAL    LOCAL   
      AAFBR244       LOCAL                          38   0.05 LOCAL    LOCAL   
 COMMAND INPUT ===>                                            SCROLL ===> PAGE
  F1=HELP      F2=SPLIT     F3=END       F4=RETURN    F5=IFIND     F6=BOOK      
  F7=UP        F8=DOWN      F9=SWAP     F10=LEFT     F11=RIGHT    F12=RETRIEVE   

Com o nome do job vou no complete e faço a exclução - AAFANATU - Deixei um somente

                                                                                                                                    
 JOB     NUMBER     Q J O SYST  DEST     PRI  ST      LINES  FORM  FCB  FLASH                                                       
AAFANATU S.06072    O S A                  1  H     242.988  STD                                                                    
AAFANATU S.08605    O S A                  1  H     242.996  STD                                                                    
 ... 25 PERCENT SPOOL UTILIZATION.                                                                                                  
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
---------------------------------------------------------------------------------------- JOBS       2  TOTAL RECORDS      485.984   
OP=Q CL=ALL IN=ALL JB=AAFANATU DS=1 SI=CC LR=1 LL=132 PP=0 DC= RL=999999 AD=S DE= SC= PT= SQ=C RR=0 OC= SD=2000                     
16.02.2026, 10:22:55                                                                                                                 
Leia Mais

Monitorando o Consumo de CPU no Mainframe pelo TSO

Uma informação bastante útil para quem trabalha com mainframe é acompanhar o percentual de utilização da CPU. E o TSO oferece recursos que permitem consultar esse consumo diretamente no ambiente, sem a necessidade de utilizar uma ferramenta externa. Além de verificar o percentual de utilização da CPU, também é possível analisar quais jobs, tarefas ou aplicações estão consumindo mais recursos do processador. Essa informação é muito importante para identificar situações de alto consumo e ajudar na investigação de possíveis problemas de desempenho. Neste post, vamos mostrar como consultar pelo TSO o uso da CPU do mainframe e como identificar qual aplicação ou tarefa está sendo responsável pelo maior consumo de processamento.

No TSO esses foram os comandos realizados;

SD.DA
PREFIX *
SORT CPU% D
pf11 (uma vez)

Acessando o TSO - Opção SD.DA

                 CUSTOMPAC MASTER APPLICATION MENU                              
 OPTION ===> sd.da                                     SCROLL ===> PAGE         
                                                                                
                                                    USERID - AA01055            
                                                    TIME   - 13:47              
                                                                                
   IS  ISMF     - Interactive Storage Management Facility                       
   P   PDF      - ISPF/Program Development Facility                             
   IP  IPCS     - Interactive Problem Control Facility                          
   DI  DITTO    - Data Interfile Transfer, Testing and Operations               
   SD  SDSF     - System Display and Search Facility                            
   IC  ICSF     - Integrated Cryptographic Service Facility                     
   HC  HCD      - Hardware Configuration Definition                             
   BMR BMR READ - BookManager Read (Read Online Documentation)                  
   BMI BMR INDX - BookManager Read (Create Bookshelf Index)                     
   S   SORT     - DF/SORT Dialogs                                               
   OU  USER     - z/OS ISPF User Options                                        
   RV  RVS5     - RVSMVS FILE TRANSFER SYSTEM                                   
   TL  TLMS     - TLMS Tape Management                                          
   TS  TSS      - TOP SECRET                                                    
   OS  SUPPORT  - z/OS ISPF System Support Options                              
                                                                                
  F1=HELP      F2=SPLIT     F3=END       F4=RETURN    F5=RFIND     F6=RCHANGE   
  F7=UP        F8=DOWN      F9=SWAP     F10=LEFT     F11=RIGHT    F12=RETRIEVE  

PREFIX *

   Display  Filter  View  Print  Options  Help                                  
 -------------------------------------------------------------------------------
 SDSF DA CPAC  CPAC     PAG    0  CPU/L    70/ 70       LINE 1-19 (133)         
 NP   JOBNAME  StepName ProcStep JobID    Owner    C Pos DP Real Paging    SIO  
      *MASTER*                   STC00383 +MASTER+   NS  FF 107T   0.00   0.00  
      PCAUTH   PCAUTH                                NS  FF  253   0.00   0.00  
      RASP     RASP                                  NS  FF  330   0.00   0.00  
      TRACE    TRACE                                 NS  FF 2289   0.00   0.00  
      DUMPSRV  DUMPSRV  DUMPSRV                      NS  FF  414   0.00   0.00  
      XCFAS    XCFAS    IEFPROC                      NS  FF 2501   0.00   0.00  
      GRS      GRS                                   NS  FF 5918   0.00   0.00  
      SMSPDSE  SMSPDSE                               NS  FF  844   0.00   0.00  
      SMSPDSE1 SMSPDSE1                              NS  FF 3812   0.00   0.00  
      SMSVSAM  SMSVSAM  IEFPROC                      NS  FF 3271   0.00   0.00  
      CONSOLE  CONSOLE                               NS  FF 9575   0.00   0.00  
      WLM      WLM      IEFPROC                      NS  FF 2313   0.00   0.00  
      ANTMAIN  ANTMAIN  IEFPROC                      NS  FF 1188   0.00   0.00  
      ANTAS000 ANTAS000 IEFPROC                      NS  FE 1202   0.00   0.00  
      DEVMAN   DEVMAN   IEFPROC                      NS  FF  157   0.00   0.00  
      OMVS     OMVS     OMVS                         NS  FF  27T   0.00   0.00  
      JESXCF   JESXCF   IEFPROC                      NS  FF  530   0.00   0.00  
 COMMAND INPUT ===> PREFIX *                                   SCROLL ===> PAGE 
  F1=HELP      F2=SPLIT     F3=END       F4=RETURN    F5=IFIND     F6=BOOK      
  F7=UP        F8=DOWN      F9=SWAP     F10=LEFT     F11=RIGHT    F12=RETRIEVE  

SORT CPU% D

   Display  Filter  View  Print  Options  Help                                  
 -------------------------------------------------------------------------------
 SDSF DA CPAC  CPAC     PAG    0  CPU/L    87/ 87       LINE 1-17 (134)         
 NP   JOBNAME  StepName ProcStep JobID    Owner    C Pos DP Real Paging    SIO  
      *MASTER*                   STC00383 +MASTER+   NS  FF 107T   0.00   0.12  
      PCAUTH   PCAUTH                                NS  FF  253   0.00   0.00  
      RASP     RASP                                  NS  FF  330   0.00   0.00  
      TRACE    TRACE                                 NS  FF 2289   0.00   0.00  
      DUMPSRV  DUMPSRV  DUMPSRV                      NS  FF  414   0.00   0.00  
      XCFAS    XCFAS    IEFPROC                      NS  FF 2501   0.00   1.23  
      GRS      GRS                                   NS  FF 5918   0.00   0.00  
      SMSPDSE  SMSPDSE                               NS  FF  844   0.00   0.00  
      SMSPDSE1 SMSPDSE1                              NS  FF 3812   0.00   0.00  
      SMSVSAM  SMSVSAM  IEFPROC                      NS  FF 3271   0.00   0.00  
      CONSOLE  CONSOLE                               NS  FF 9584   0.00   0.17  
      WLM      WLM      IEFPROC                      NS  FF 2313   0.00   0.00  
      ANTMAIN  ANTMAIN  IEFPROC                      NS  FF 1188   0.00   0.00  
      ANTAS000 ANTAS000 IEFPROC                      NS  FE 1202   0.00   0.00  
      DEVMAN   DEVMAN   IEFPROC                      NS  FF  157   0.00   0.00  
      OMVS     OMVS     OMVS                         NS  FF  27T   0.00   0.00  
      JESXCF   JESXCF   IEFPROC                      NS  FF  530   0.00   0.00  
 COMMAND INPUT ===> SORT CPU% D                                SCROLL ===> PAGE 
  F1=HELP      F2=SPLIT     F3=END       F4=RETURN    F5=IFIND     F6=BOOK      
  F7=UP        F8=DOWN      F9=SWAP     F10=LEFT     F11=RIGHT    F12=RETRIEVE  

Tecle PF11 uma vez

   Display  Filter  View  Print  Options  Help                                  
 -------------------------------------------------------------------------------
 SDSF DA CPAC  CPAC     PAG    0  CPU/L    85/ 85       LINE 1-17 (133)         
 NP   JOBNAME  StepName ProcStep JobID    Owner    C Pos DP Real Paging    SIO  
      AAFAI240 AAFAI240 ADAV744  STC04936 ADABASP    NS  FE  52T   0.00 957.32  
      AAFCINIP AAFCINIP AAFCINIP STC07353 COMPP      NS  FE  81T   0.00  68.12  
      AEKPA001 GERAREM  NATURAL  JOB03961 AESUB01  X IN  FE 1133   0.00   0.00  
      AAFAI080 AAFAI080 ADAV744  STC04752 AADEFSTC   NS  FE 5389   0.00 106.64  
      AAFCINID AAFCINID AAFCINID STC08332 COMPD      NS  FE  35T   0.00   2.60  
      AAFBIDET AAFBIDET BROKER   STC02677 AADEFSTC   NS  FE  50T   0.00  65.27  
      AAFTICS  AAFTICS  TCPIP    STC00434 TCPICS     NS  FE 9243   0.00   0.06  
      ABBPA073 ABBPB87B NATSIAF  JOB03960 ABSUB01  Z IN  E8 1077   0.00   1.14  
      AAFAI230 AAFAI230 ADAV744  STC00945 ADABASD    NS  FE 3351   0.00  18.38  
      RMFGAT   RMFGAT   IEFPROC  STC00490 RMFGAT     NS  FE  11T   0.00   0.00  
      AAFBR244 AAFBR244 NATURAL  STC02743 AADEFSTC   IN  FE 1054   0.00   9.38  
      AAFBR244 AAFBR244 NATURAL  STC02715 AADEFSTC   IN  FE 1053   0.00   9.38  
      AAFBINIT AAFBINIT BROKER   STC00444 BROKER     NS  FE  50T   0.00  16.22  
      CATALOG  CATALOG  IEFPROC                      NS  FF 1134   0.00   5.13  
      AAFBINID AAFBINID BROKER   STC00443 BROKER     NS  FE  50T   0.00  35.17  
      AAFTESF  AAFTESF  IEFPROC  STC06351 CASPOOL    NS  FE 8385   0.00  11.41  
      AAFCENTP AAFCENTP EBVEXEC  STC03717 APPCP      NS  FE 9335   0.00   0.00  
 COMMAND INPUT ===>                                            SCROLL ===> PAGE 
  F1=HELP      F2=SPLIT     F3=END       F4=RETURN    F5=IFIND     F6=BOOK      
  F7=UP        F8=DOWN      F9=SWAP     F10=LEFT     F11=RIGHT    F12=RETRIEVE  

Agora vai mostrar quem esta consumindo mais CPU% pela ordem - neste dia foi o banco AAFAI240 que estava mais consumindo (normal)

   Display  Filter  View  Print  Options  Help                                  
 -------------------------------------------------------------------------------
 SDSF DA CPAC  CPAC     PAG    0  CPU/L    38/ 38       LINE 1-17 (135)         
 NP   JOBNAME   CPU% ASID ASIDX  EXCP-Cnt   CPU-Time SR Status SysName  SPag SCP
      AAFAI240 16.10 1002  03EA 947M       526492.74           CPAC        0    
      AAFCINIP 10.31 1042  0412 4,503,667    7372.48           CPAC        0    
      AAFTICS   1.35   71  0047 345M       670032.82           CPAC        0    
      AAFBIDET  1.26  317  013D   1B       350194.71           CPAC        0    
      RMFGAT    0.89  103  0067   744,134  624193.92           CPAC        0    
      ABAPNATL  0.78 1077  0435     2,031     136.14           CPAC        0    
      AAFBINIT  0.66   79  004F 820M       619824.64           CPAC        0    
      AAFBINID  0.63   78  004E   1B       450948.66           CPAC        0    
      AAFTESF   0.60  218  00DA  93M       106049.86           CPAC        0    
      AAFAI080  0.53 1024  0400  29M        16108.80           CPAC        0    
      AAFCENTP  0.42 1085  043D     1,736    2302.17           CPAC        0    
      AAFBR244  0.31  770  0302    43,135     141.18           CPAC        0    
      AAFTVTAM  0.26   33  0021    69,919   79318.73           CPAC        0    
      AAFBR244  0.26 1021  03FD    49,696     152.85           CPAC        0    
      AAFCINID  0.25  839  0347  19M        57463.07           CPAC        0    
      WLM       0.24   12  000C        11  172508.38           CPAC        0    
      AECPNATB  0.22  567  0237       535       2.20           CPAC        0    
 COMMAND INPUT ===>                                            SCROLL ===> PAGE 
  F1=HELP      F2=SPLIT     F3=END       F4=RETURN    F5=IFIND     F6=BOOK      
  F7=UP        F8=DOWN      F9=SWAP     F10=LEFT     F11=RIGHT    F12=RETRIEVE  

Ocorreu uma vez de ficar lento - estava rodando a proc do SMF

   Display  Filter  View  Print  Options  Help                                  
 -------------------------------------------------------------------------------
 SDSF DA CPAC  CPAC     PAG    0  CPU/L    95/ 95       LINE 1-17 (157)         
 NP   JOBNAME   CPU% ASID ASIDX  EXCP-Cnt   CPU-Time SR Status SysName  SPag SCP
      AAASMF   48.49 1359  054F    90,270    1046.34           CPAC        0    
      AAFAI240 19.54 1071  042F 294M       162068.50           CPAC        0    
      AAFCINIP  5.07 1320  0528 1,013,673    3027.33           CPAC        0    
      AAFAI080  3.10 1127  0467 8,613,725    4732.44           CPAC        0    
      AEKPNATB  1.39 1295  050F       538      35.70           CPAC        0    
      AAFBINIT  1.27 1133  046D   374,247     330.29           CPAC        0    
      AEAPMIG2  1.26 1076  0434     2,139      17.03           CPAC        0    
      ABBPA073  1.24 1293  050D       634      12.78           CPAC        0    
      RMFGAT    1.15  103  0067   878,974  739906.72           CPAC        0    
      AAFTICS   1.09 1091  0443    60,156     593.75           CPAC        0    
      ABAPA007  1.06 1148  047C       533     165.76           CPAC        0    
      ABGPA006  0.84 1300  0514     8,738      29.33           CPAC        0    
      AAFBIDET  0.79 1308  051C   462,560     306.30           CPAC        0    
      AAFBINID  0.74 1213  04BD   455,156     273.05           CPAC        0    
      AAFCINID  0.66 1243  04DB    70,690     159.03           CPAC        0    
      AAFBR244  0.48 1316  0524    18,994      58.75           CPAC        0    
      ABAPNATL  0.42 1302  0516     1,486      46.24           CPAC        0    
 COMMAND INPUT ===>                                            SCROLL ===> PAGE 
  F1=HELP      F2=SPLIT     F3=END       F4=RETURN    F5=IFIND     F6=BOOK      
  F7=UP        F8=DOWN      F9=SWAP     F10=LEFT     F11=RIGHT    F12=RETRIEVE  

Ocorreu outra vez do complete estar usando muito a CPU, foi reciclado o complete e melhorou a performance

   Display  Filter  View  Print  Options  Help                                  
 -------------------------------------------------------------------------------
 SDSF DA CPAC  CPAC     PAG    0  CPU/L   100/ 98       LINE 1-17 (132)         
 NP   JOBNAME   CPU% ASID ASIDX  EXCP-Cnt   CPU-Time SR Status SysName  SPag SCP
      AAFCINIP 62.56  280  0118 3,052,642   81918.28           CPAC        0    
      AAFAI240 18.93  286  011E 278M       146226.79           CPAC        0    
      AAFBR244  2.42  231  00E7    76,517     293.78           CPAC        0    
      AAFBINIT  2.12  189  00BD 2,417,642    2317.54           CPAC        0    
      AA01055   2.12  376  0178       394       2.02           CPAC        0    
      AAFBA240  0.91  175  00AF   316,451     459.77           CPAC        0    
      AAFBINID  0.91  196  00C4 5,724,276    1694.06           CPAC        0    
      AEAPMIG1  0.61  149  0095     1,292       4.76           CPAC        0    
      AAFBIDET  0.61  220  00DC 4,477,260    3143.82           CPAC        0    
      AADPA045  0.61  350  015E       530       0.95           CPAC        0    
      ABIPA010  0.61  352  0160       543     171.78           CPAC        0    
      AEAPMIG3  0.61  353  0161   104,819     973.66           CPAC        0    
      AEMPNATB  0.61  362  016A       539      26.05           CPAC        0    
      AEAPMIG2  0.61  366  016E    53,793     329.29           CPAC        0    
      WLM       0.45   12  000C        21   20245.61           CPAC        0    
      AAFTICS   0.45  339  0153 1,276,231    2221.62           CPAC        0    
      ABPPA002  0.45  347  015B       619       5.53           CPAC        0    
 COMMAND INPUT ===>                                            SCROLL ===> PAGE 
  F1=HELP      F2=SPLIT     F3=END       F4=RETURN    F5=IFIND     F6=BOOK      
  F7=UP        F8=DOWN      F9=SWAP     F10=LEFT     F11=RIGHT    F12=RETRIEVE  
Leia Mais

Como Localizar uma Palavra em uma Biblioteca no TSO

Uma funcionalidade muito útil do TSO é a possibilidade de pesquisar uma determinada palavra ou expressão dentro de uma biblioteca. Esse recurso pode facilitar bastante o trabalho de quem atua diariamente no ambiente mainframe, principalmente quando precisamos localizar rapidamente onde determinada informação, comando, variável ou trecho de código está sendo utilizado. Em uma biblioteca no mainframe, normalmente temos diversos membros , e cada um deles pode conter programas, JCLs, procedimentos, parâmetros, configurações ou outras informações importantes para o ambiente. Quando precisamos descobrir em qual membro determinada palavra aparece, fazer essa pesquisa manualmente, abrindo um membro por vez, pode consumir bastante tempo. Imagine, por exemplo, que você tenha uma biblioteca com dezenas ou até centenas de membros e precise descobrir quais deles possuem uma determinada palavra. Em vez de abrir cada membro individualmente e utilizar a pesquisa dentro de cada arquivo, podemos utilizar os recursos disponíveis no TSO para realizar essa busca de forma muito mais rápida. Essa funcionalidade é especialmente interessante para tarefas de análise, manutenção e investigação, pois permite encontrar rapidamente todas as ocorrências de um determinado texto dentro dos membros de uma biblioteca. Neste post, vamos mostrar como realizar esse tipo de pesquisa no TSO, utilizando uma palavra como exemplo e verificando em quais membros da biblioteca ela está presente.

 L,S3(##CSA/PRL303                                                              
DSN:ADABAS.LIBRAR                                LIB:S3 VOL:PRL303 UNIT:1526    
SIZE(CYL): 46    PRIM.: 6     SEC.: 40    EXTENTS: 3   UTILIZATION: 38 %        
DCB: 6160/80/FB           DIR.BLKS: 180      USED: 124     MEMBERS: 750         
 ##CSA     A$SAVEFI  AAA501    AAFANAT2  AAFCUR20  AAFPU297  ADACM095  ADADBS14 
 @A1002    A$060     AABCSMFC  AAFANAVE  AAFCUR21  AAFPU299  ADACM096  ADADBS15 
 @A1003    A$080     AABSASM1  AAFARC99  AAFCUR22  AAFSA299  ADACM097  ADADBS2  
 @DDM1     A$210     AABSC104  AAFAU015  AAFNASML  AAFSEDUX  ADACM116  ADADBS3  
 @MANU001  A$240     AACCINIF  AAFAU038  AAFNDICA  AAFSNAT3  ADACM250  ADADBS9  
 @MANU002  A$241     AAFACUR2  AAFAU081  AAFNGBPM  AAFSNAT4  ADADBINC  ADADB01  
 @MANU003  AAASMFK   AAFACUR3  AAFAU160  AAFNLOAD  AAFSNSM1  ADADBRI   ADADB02  
 @MANU004  AAASMF1   AAFACUR4  AAFAU196  AAFNLOFF  AAFSNSTC  ADADBS    ADADB03  
 @MANU005  AAASMF9   AAFACUR5  AAFAU199  AAFNPAR   AAFSNST1  ADADBSD   ADADB04  
 @MANU006  AAAUSR    AAFADBAX  AAFAU20U  AAFNREST  AAFSZERA  ADADBSD1  ADADB05  
 @MANU007  AAAUSR1   AAFADBA2  AAFAU20X  AAFPCS00  ABABAN    ADADBSD9  ADADB10  
 @MANU009  AAA001    AAFADBA3  AAFAU20Y  AAFPCS01  ABACW106  ADADBSI   ADADB220 
 @SDSF     AAA001TS  AAFADBA4  AAFAU20Z  AAFPCS03  ADACDC    ADADBSP   ADADCK   
 A$ADASAV  AAA003JX  AAFAEXTB  AAFAU203  AAFPCS04  ADACMPCO  ADADBSRE  ADADEFW  
 A$INVERT  AAA004J   AAFAEX2   AAFAU216  AAFPL297  ADACMPP   ADADBSRF  ADADEFZ  
 A$NATLOA  AAA009    AAFAEX2T  AAFA199   AAFPL299  ADACMPPF  ADADBS1   ADADE020 
 A$NATUNL  AAA009J   AAFALHYP  AAFCCTES  AAFPREST  ADACMPX   ADADBS10  ADADE022 
 A$REORFI  AAA012    AAFANATI  AAFCDIC1  AAFPRES1  ADACMP01  ADADBS11  ADADE030 
 A$RESTOA  AAA020J   AAFANATK  AAFCDOC   AAFPSAVE  ADACMP1   ADADBS12  ADADE032 
 A$RESTOR  AAA500J   AAFANATZ  AAFCDSN   AAFPU033  ADACM050  ADADBS13  ADADE040 

Quero encontrar uma determinada palavra dentro dos membros de uma biblioteca. Em vez de abrir cada membro individualmente para verificar se a palavra está presente, podemos utilizar o recurso de pesquisa do TSO para realizar essa busca de forma rápida e identificar exatamente quais membros contêm a informação procurada.

MEMBER=WWWX14   000001 REC SAVE:10.08.2026 10:08 BY   USERID DBAP055  R=00000001
DSN=ADABAS.LIBRAR                                       VOL=PRL303 UNIT=1526    
....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
CLAUDEMAR - (67) 1414.324799                                                    
 COMPDS0400-D --- End of Data --- 

No TSO acesse o p.3.15

                CUSTOMPAC MASTER APPLICATION MENU                              
OPTION ===> p.3.15                                    SCROLL ===> PAGE        
                                                                               
                                                   USERID - DBAP055            
                                                   TIME   - 15:09              
                                                                               
  IS  ISMF     - Interactive Storage Management Facility                      
  P   PDF      - ISPF/Program Development Facility                            
  IP  IPCS     - Interactive Problem Control Facility                          
  DI  DITTO    - Data Interfile Transfer, Testing and Operations              
  SD  SDSF     - System Display and Search Facility                            
  IC  ICSF     - Integrated Cryptographic Service Facility                    
  HC  HCD      - Hardware Configuration Definition                            
  BMR BMR READ - BookManager Read (Read Online Documentation)                  
  BMI BMR INDX - BookManager Read (Create Bookshelf Index)                    
  S   SORT     - DF/SORT Dialogs                                              
  OU  USER     - z/OS ISPF User Options                                        
  RV  RVS      - RVSMVS File Transfer System                                  
  TL  TLMS     - TLMS Tape Management                                          
  TS  TSS      - TOP SECRET                                                    
  OS  SUPPORT  - z/OS ISPF System Support Options                              
                                                                               
 F1=HELP      F2=SPLIT     F3=END       F4=RETURN    F5=RFIND     F6=RCHANGE  
 F7=UP        F8=DOWN      F9=SWAP     F10=LEFT     F11=RIGHT    F12=RETRIEVE

CAPS

Iniciando a busca - Por uma palavra maiuscula

   Menu  Utilities  Options  Help                                               
 ¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢ 
                          Extended Search-For Utility                           
                                                                    More:     + 
 Search DS Name  . . 'ADABAS.LIBRAR'                                            
 PDS Member List . . *         (blank/pattern - member list, * - search all)    
                                                                                
 (Leave Search DSN "blank" for concatenated-uncataloged-password panel)         
                                                                                
 Enter Search Strings and Optional operands (WORD/PREFIX/SUFFIX,C)              
    Caps . . '324799'                                                           
    Caps . .                                                                    
    Caps . .                                                                    
    Asis . .                                                                    
    Asis . .                                                                    
                                                                                
 Listing DSN . . . . SRCHFOR.LIST                                               
 Process Options . .                                                            
 Statements Dsn  . .                                                            
                                                                                
 Enter "/" to select option      Execution Mode          Output Mode            
 Command ===>                                                                   
  F1=Help      F2=Split     F3=Exit      F7=Backward  F8=Forward   F9=Swap      
 F10=Actions  F12=Cancel                                                        

Encontrou - na biblioteca o membro com o nome WWWX14

   File  Edit  Edit_Settings  Menu  Utilities  Compilers  Test  Help            
 ¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢
 VIEW       DBAP055.SRCHFOR.LIST                            Columns 00001 00072 
 ****** ***************************** Top of Data ******************************
 000001 1  ISRSUPC   -   MVS/PDF FILE/LINE/WORD/BYTE/SFOR COMPARE UTILITY- ISPF 
 000002   LINE-#  SOURCE SECTION                    SRCH DSN: ADABAS.LIBRAR     
 000003                                                                         
 000004                                                                         
 000005   WWWX14                      --------- STRING(S) FOUND ----------------
 000006                                                                         
 000007        1  CLAUDEMAR - (67) 1414.324799                                  
 000008                                                                         
 000009 1  ISRSUPC   -   MVS/PDF FILE/LINE/WORD/BYTE/SFOR COMPARE UTILITY- ISPF 
 000010       SEARCH-FOR SUMMARY SECTION            SRCH DSN: ADABAS.LIBRAR     
 000011                                                                         
 000012  LINES-FOUND  LINES-PROC  MEMBERS-W/LNS  MEMBERS-WO/LNS  COMPARE-COLS  L
 000013          1        29137            1            849           1:80      
 000014                                                                         
 000015                                                                         
 000016  THE FOLLOWING PROCESS STATEMENTS (USING COLUMNS 1:72) WERE PROCESSED:  
 000017     SRCHFOR  '324799'                                                   
 Command ===>                                                  Scroll ===> PAGE 
  F1=Help      F2=Split     F3=Exit      F5=Rfind     F6=Rchange   F7=Up        
  F8=Down      F9=Swap     F10=Left     F11=Right    F12=Cancel                 

Asis

Iniciando a busca - Por uma palavra minuscula

   Menu  Utilities  Options  Help                                               
 ¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢ 
                          Extended Search-For Utility             Strings found 
                                                                    More:     + 
 Search DS Name  . . 'ADABAS.LIBRAR'                                            
 PDS Member List . . *         (blank/pattern - member list, * - search all)    
                                                                                
 (Leave Search DSN "blank" for concatenated-uncataloged-password panel)         
                                                                                
 Enter Search Strings and Optional operands (WORD/PREFIX/SUFFIX,C)              
    Caps . .                                                                    
    Caps . .                                                                    
    Caps . .                                                                    
    Asis . .                                                                    
    Asis . . 'Claudemar'                                                        
                                                                                
 Listing DSN . . . . SRCHFOR.LIST                                               
 Process Options . .                                                            
 Statements Dsn  . .                                                            
                                                                                
 Enter "/" to select option      Execution Mode          Output Mode            
 Command ===>                                                                   
  F1=Help      F2=Split     F3=Exit      F7=Backward  F8=Forward   F9=Swap      
 F10=Actions  F12=Cancel                                                        

Encontrou vários, agora é só dar PF8 e ver se encontra o membro

   File  Edit  Edit_Settings  Menu  Utilities  Compilers  Test  Help            
 ¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢
 VIEW       AA01055.SRCHFOR.LIST                            Columns 00001 00072 
 ****** ***************************** Top of Data ******************************
 000001 1  ISRSUPC   -   MVS/PDF FILE/LINE/WORD/BYTE/SFOR COMPARE UTILITY- ISPF 
 000002   LINE-#  SOURCE SECTION                    SRCH DSN: ADABAS.LIBRAR
 000003                                                                         
 000004                                                                         
 000005   ENVIA333                    --------- STRING(S) FOUND ----------------
 000006                                                                         
 000007       20  SUBJECT:teste Claudemar                                       
 000008       24  Claudemar Martins de Sa                                       
 000009                                                                         
 000010   SNG                         --------- STRING(S) FOUND ----------------
 000011                                                                         
 000012       37  Claudemar Martins de Sa                                       
 000013                                                                         
 000014 1  ISRSUPC   -   MVS/PDF FILE/LINE/WORD/BYTE/SFOR COMPARE UTILITY- ISPF 
 000015       SEARCH-FOR SUMMARY SECTION            SRCH DSN: ADABAS.LIBRAR
 000016                                                                         
 000017  LINES-FOUND  LINES-PROC  MEMBERS-W/LNS  MEMBERS-WO/LNS  COMPARE-COLS  L
 Command ===>                                                  Scroll ===> PAGE 
  F1=Help      F2=Split     F3=Exit      F5=Rfind     F6=Rchange   F7=Up        
  F8=Down      F9=Swap     F10=Left     F11=Right    F12=Cancel                 

Pesquisando via JOB

Uma outra forma bastante eficiente de pesquisar uma determinada palavra dentro de uma biblioteca é executar um JOB. Essa alternativa pode ser muito útil quando estamos trabalhando com bibliotecas que possuem uma grande quantidade de membros, tornando a pesquisa manual pelo TSO mais demorada. Por meio de um JOB, podemos automatizar essa tarefa e fazer com que o próprio ambiente percorra os membros da biblioteca em busca da palavra ou expressão informada. Ao final da execução, podemos analisar o resultado e identificar em quais membros a informação pesquisada foi encontrada. Além de agilizar o processo, essa abordagem é interessante porque permite realizar pesquisas de forma padronizada e repetir a operação sempre que necessário, principalmente em atividades de manutenção, análise de programas e investigação de informações no ambiente z/OS.

MEMBER=@CMD05   000011 REC SAVE:31.12.2022 12:05 BY   USERID DBAP055  R=00000001
DSN=AAB.DIST.JCLS                                LIB=S4 VOL=PRL303 UNIT=1526    
....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
//AAFSNATB JOB (AAF,TSS),'CLAU',CLASS=S,MSGCLASS=A             
//*UQ ALLOW                                                    
//* -----------------------------------------------------------
//*        PESQUISA DETERMINADA PALAVRA EM UMA BIBLIOTECA      
//* -----------------------------------------------------------
//SEARCH  EXEC PGM=ISRSUPC,PARM=(SRCHCMP,'FINDALL')            
//NEWDD  DD DISP=SHR,DSN=ADABAS.LIBRAR                        
//OUTDD  DD SYSOUT=*                                           
//SYSIN  DD *                                                  
 SRCHFOR '324799'

Resultado - Encontrou o membro WWWX14

1  ISRSUPC   -   MVS/PDF FILE/LINE/WORD/BYTE/SFOR COMPARE UTILITY- ISPF FOR z/OS
  LINE-#  SOURCE SECTION                    SRCH DSN: ADABAS.LIBRAR             
                                                                                
                                                                                
  WWWX14                      --------- STRING(S) FOUND -------------------     
                                                                                
       1  CLAUDEMAR - (67) 1414.324799                                          
                                                                                
1  ISRSUPC   -   MVS/PDF FILE/LINE/WORD/BYTE/SFOR COMPARE UTILITY- ISPF FOR z/OS
      SEARCH-FOR SUMMARY SECTION            SRCH DSN: ADABAS.LIBRAR             
                                                                                
 LINES-FOUND  LINES-PROC  MEMBERS-W/LNS  MEMBERS-WO/LNS  COMPARE-COLS  LONGEST-L
         1        29137            1            849           1:80           80 
                                                                                
 PROCESS OPTIONS USED: FINDALL                                                  
                                                                                
 THE FOLLOWING PROCESS STATEMENTS (USING COLUMNS 1:72) WERE PROCESSED:          
     SRCHFOR '324799'                                                           
                                                                                
UQS0009 - END OF DATA SET.                                                      
Leia Mais

Executando Comandos Longos no TSO

Em algumas situações do dia a dia no ambiente mainframe, precisamos executar comandos pelo TSO que acabam ficando muito grandes. Dependendo do tamanho do comando, digitá-lo diretamente no campo de comando pode se tornar trabalhoso ou até mesmo inviável, principalmente quando precisamos informar diversos parâmetros ou realizar operações mais complexas. Uma alternativa bastante útil está disponível no próprio TSO, através da opção **SD – LOG**. Essa opção permite trabalhar com comandos maiores de uma maneira mais prática, possibilitando inserir e executar o comando sem ficar limitado ao pequeno espaço disponível no campo tradicional de comandos. Neste post, vou mostrar como utilizar o **SD – LOG** para enviar comandos grandes pelo TSO, facilitando o trabalho de quem precisa executar operações mais extensas no ambiente z/OS. É uma dica simples, mas que pode economizar bastante tempo no dia a dia, principalmente para quem trabalha frequentemente com administração, operação e manutenção de ambientes mainframe.

 ------------------------------- TSO/E LOGON -----------------------------------
                                                                                
                                                                                
    Enter LOGON parameters below:                   RACF LOGON parameters:      
                                                                                
    Userid    ===> DBAP055                                                      
                                                                                
    Password  ===>                                  New Password ===>           
                                                                                
    Procedure ===> IKJACCN9                         Group Ident  ===>           
                                                                                
    Acct Nmbr ===> AACP                                                         
                                                                                
    Size      ===> 4096                                                         
                                                                                
    Perform   ===>                                                              
                                                                                
    Command   ===>                                                              
                                                                                
    Enter an 'S' before each option desired below:                              
            -Nomail         -Nonotice        -Reconnect        -OIDcard         
                                                                                
 PF1/PF13 ==> Help    PF3/PF15 ==> Logoff    PA1 ==> Attention    PA2 ==> Reshow
 You may request specific help information by entering a '?' in any entry field 

Opção SD

                   Custompac Master Application Menu                            
  OPCAO ===> sd                                      USUARIO - DBAP055          
                                                                                
                                                                                
   IS  - ISMF       - Interactive Storage Management Facility                   
   P   - PDF        - ISPF/Program Development Facility                         
   IP  - IPCS       - Interactive Problem Control Facility                      
   SD  - SDSF       - System Display and Search Facility                        
   IC  - ICSF       - Integrated Cryptographic Service Facility                 
   HC  - HCD        - Hardware Configuration Definition                         
   R   - RACF       - Resource Access Control Facility                          
   S   - SORT       - SORT Dialogs                                              
   OU  - USER       - z/OS ISPF User Options                                    
   RV  - RVS        - RVSMVS FILE TRANSFER SYSTEM                               
   RM  - RMM        - RMM  Tape Management                                      
   IN  - INFOPRINT  - Infoprint Server                                          
   OS  - SUPPORT    - z/OS ISPF System Support Options                          
   SM  - SMP/E      - SMP/E Dialogs                                             
   X   - EXIT       - Terminate ISPF using list/log defaults                    
                                                                                
                                                                                
                                                                                
  F1=HELP      F2=SPLIT     F3=END       F4=RETURN    F5=RFIND     F6=RCHANGE   
  F7=UP        F8=DOWN      F9=SWAP     F10=LEFT     F11=RIGHT    F12=RETRIEVE

Opção LOG

   Display  Filter  View  Print  Options  Help                                  
 -------------------------------------------------------------------------------
 HQX7730 -----------------  SDSF PRIMARY OPTION MENU  --------------------------
                                                                                
 DA    Active users                      INIT  Initiators                       
 I     Input queue                       PR    Printers                         
 O     Output queue                      PUN   Punches                          
 H     Held output queue                 RDR   Readers                          
 ST    Status of jobs                    LINE  Lines                            
                                         NODE  Nodes                            
 LOG   System log                        SO    Spool offload                    
 SR    System requests                   SP    Spool volumes                    
 MAS   Members in the MAS                                                       
 JC    Job classes                       RM    Resource monitor                 
 SE    Scheduling environments           CK    Health checker                   
 RES   WLM resources                                                            
 ENC   Enclaves                          ULOG  User session log                 
 PS    Processes                                                                
                                                                                
 END   Exit SDSF                                                                
                                                                                
 COMMAND INPUT ===> log                                        SCROLL ===> PAGE 
  F1=HELP      F2=SPLIT     F3=END       F4=RETURN    F5=IFIND     F6=BOOK      
  F7=UP        F8=DOWN      F9=SWAP     F10=LEFT     F11=RIGHT    F12=RETRIEVE  

Em COMMAND INPUT digitamos / (e enter)

   Display  Filter  View  Print  Options  Help                                  
 -------------------------------------------------------------------------------
 SDSF SYSLOG   4306.102 SUPP SUPP 09/13/2024 0W   12163      COLUMNS   1  80    
 COMMAND INPUT ===> /                                          SCROLL ===> PAGE 
DR                                        775 00000090    35    A   S18RS1  SYS1
DR                                        775 00000090    36        S18CAT  SYS1
DR                                        775 00000090    37        S18CAT  ISF.
DR                                        775 00000090    38        S18CAT  SYS1
DR                                        775 00000090    39    A   S18PL2  SYS1
DR                                        775 00000090    40    A   S18PL2  SYS1
DR                                        775 00000090    41    A   S18PL1  CAI.
DR                                        775 00000090    42        S18PL1  CAI.
ER                                        775 00000090    43        S18PL4  TCPI
M 0020000 SUPP     24257 13:28:03.79 STC04650 00000090  EZZ6034I TELNET CONN 000
E                                         776 00000090    IP..PORT: 15.5.7.20..6
M 0020000 SUPP     24257 13:28:03.92 STC04650 00000090  EZZ6034I TELNET CONN 000
E                                         777 00000090    IP..PORT: 15.5.7.20..6
NC0000000 SUPP     24257 13:28:03.96 INSTREAM 00000290  LOGON                   
M 0020000 SUPP     24257 13:28:03.97 STC04650 00000090  EZZ6034I TELNET CONN 000
E                                         779 00000090    IP..PORT: 15.5.7.20..6
N 0200000 SUPP     24257 13:28:11.31 TSU04672 00000090  $HASP100 DBAP055  ON TSO
N 4000000 SUPP     24257 13:28:11.40 TSU04672 00000281  $HASP373 DBAP055  STARTE
  F1=HELP      F2=SPLIT     F3=END       F4=RETURN    F5=IFIND     F6=BOOK      
  F7=UP        F8=DOWN      F9=SWAP     F10=LEFT     F11=RIGHT    F12=RETRIEVE 

No TSO, temos basicamente duas linhas que podem ser utilizadas para informar e executar comandos de console. Essas linhas ficam disponíveis na área destinada à entrada dos comandos e são bastante úteis para a operação diária do ambiente mainframe. Quando o comando é curto, normalmente não temos nenhuma dificuldade: basta digitá-lo diretamente no campo disponível e pressionar Enter para executá-lo. O problema aparece quando precisamos informar comandos mais extensos, que possuem muitos parâmetros ou uma grande quantidade de informações. Nesses casos, o espaço disponível nas linhas de comando pode não ser suficiente para acomodar todo o conteúdo. É justamente nesse momento que a opção SD – LOG se torna uma alternativa interessante, pois permite trabalhar com comandos maiores de uma forma mais prática e organizada. A seguir, vamos mostrar como utilizar esse recurso para inserir comandos de console que ultrapassam o tamanho normalmente disponível nas duas linhas de entrada.

   Display  Filter  View  Print  Options  Help                                  
 --+-----------------------------------------------------------------------+ --
 SD|                        System Command Extension                         |…   
 CO| …                                                                      …|E 
DR | Type or complete typing a system command, then press Enter.            …|S1
DR |…                                                                       …|S1
DR |… ===>                                                                  …|F.
DR |… ===>                                                                  …|S1
DR |…                                                                       …|S1
DR |… Place the cursor on a command and press Enter to retrieve it.         …|S1
DR |…                                                          More:     +  …|I.
DR |… =>  S COMPLETP                                                        …|I.
ER |… =>  D A,L                                                             …|PI
M 0|… =>  CANCEL U=DBAP169                                                  …|00
E  |… =>  F COMPLETD,EOJ,VER=@D                                             …|.6
M 0|… =>  $DPRT(123)                                                        …|00
E  |… =>  S DBAPI220                                                        …|.6
NC0|… =>  CANCEL COMPLETD                                                   …|  
M 0|…                                                                       …|00
E  |…    Wait 1 second to display responses (specify with SET DELAY)        …|.6
N 0|…    Do not save commands for the next SDSF session                     …|SO
N 4|…  F1=Help       F2=Split      F3=Cancel     F5=FullScr    F7=Backward  …|TE
  F|…  F8=Forward    F9=Swap      F11=ClearLst  F12=Cancel                  …|  
  F+-----------------------------------------------------------------------+
Leia Mais

quinta-feira, julho 16, 2026

IBM adquire StreamSets e webMethods da Software AG por R$ 11 bilhões

Se você trabalha no ecossistema de Adabas e Natural, com certeza acompanha de perto os passos e as decisões estratégicas da Software AG — afinal, estamos falando de uma gigante que, desde os anos 70, molda a forma como grandes corporações gerenciam seus bancos de dados mais críticos e de altíssima performance. Em dezembro de 2023, o mercado global de tecnologia foi sacudido por uma notícia de proporções gigantescas: a IBM fechou um acordo definitivo para adquirir as plataformas StreamSets e webMethods da Software AG, em uma transação bilionária avaliada em € 2,13 bilhões (aproximadamente R$ 11 bilhões). Para quem está na linha de frente da sustentação, desenvolvimento ou administração de dados em sistemas de missão crítica, essa movimentação não é apenas mais um negócio corporativo de páginas de economia. Ela mexe diretamente com as engrenagens de arquiteturas híbridas e com a forma como os dados transacionais pesados que residem no mainframe são entregues e consumidos pelo mundo externo. Mas o que essa verdadeira "dança das cadeiras" entre duas das maiores referências em tecnologia de mainframe e integração de sistemas realmente significa para o futuro do mercado? O que muda na prática para as empresas que dependem dessas pontes para fazer seu backend conversar com a nuvem moderna, microsserviços e até novos motores de Inteligência Artificial? Se você quer entender os impactos técnicos, os riscos que merecem sua atenção e as oportunidades que surgem a partir de agora, continue lendo. Vamos analisar de forma realista os bastidores dessa transação histórica.

O que a IBM está levando para casa?

Ao trazer para o seu portfólio as duas verdadeiras joias da coroa de integração da Software AG, a IBM deu um passo estratégico definitivo para dominar o fluxo de dados em ambientes híbridos ao adquirir o StreamSets e o webMethods. O primeiro se destaca como uma plataforma de DataOps nativa em nuvem ultraeficiente, projetada para desenhar pipelines de dados inteligentes e realizar a ingestão de fluxos complexos em tempo real a partir de qualquer origem para alimentar motores de análise e IA, enquanto o segundo opera como um gateway de integração e APIs líder de mercado, permitindo gerenciar, monitorar e expor de forma segura as regras de negócio de sistemas legados para que eles conversem agilmente com a nuvem moderna e parceiros externos. Juntas, essas soluções atendem a mais de 1.500 grandes corporações globais, incluindo muitas que mantêm o Adabas/Natural operando com máxima robustez no backend e dependem diretamente do webMethods para traduzir, expor e valorizar essa massa crítica de dados transacionais para o ecossistema externo em tempo real.

Objetivo da IBM

Não é segredo para ninguém: a Inteligência Artificial generativa e os modelos de machine learning têm uma fome insaciável por dados. Mas não serve qualquer dado de internet. Para fazer previsões de negócios reais, prever fraudes financeiras ou otimizar cadeias de suprimentos, a IA precisa de dados transacionais históricos, limpos e de altíssima fidelidade. E onde está a maior parte desse tesouro corporativo no planeta? No Mainframe. Mais do que uma simples aquisição de mercado, o movimento da IBM ao trazer o StreamSets e o webMethods para debaixo do seu teto é uma jogada de mestre para criar a via rápida da informação. Ao juntar essas ferramentas ao seu ecossistema atual — que já conta com a robustez do Red Hat OpenShift e o poder cognitivo do WatsonX - Facilitando a arquitetura de nuvem híbrida, permitindo que sistemas legados colaborem em tempo real com aplicações modernas em nuvem.

E a Software AG?

Para quem faz parte da comunidade Adabas e Natural, essa transação bilionária acende um holofote fascinante sobre o futuro da Software AG. À primeira vista, ver a empresa se desfazer de duas de suas ferramentas mais modernas de integração pode parecer um recuo. No entanto, quando analisamos os bastidores estratégicos, o cenário é oposto: esta foi uma jogada mestre de reposicionamento de mercado. Fundada nos anos 70 justamente com o lançamento pioneiro do banco de dados Adabas para mainframes IBM, a Software AG construiu um império global baseado em robustez, confiabilidade e processamento de missão crítica. No Brasil, essa presença é histórica e vital: gigantes como Petrobras, Banco do Brasil e Vale rodam suas operações mais pesadas e confiam seus dados diários a essa tecnologia. Com a venda do StreamSets e do webMethods, a Software AG capitalizou de forma extraordinária. Ao colocar € 2,13 bilhões (R$ 11 bilhões) em caixa, a empresa ganha um fôlego financeiro gigantesco e, mais importante, elimina a distração de tentar competir diretamente com os gigantes de nuvem no mercado de integração geral.

Livre desse desgaste, a Software AG agora pode direcionar 100% de seu foco, energia e investimentos para o seu verdadeiro "ganha-pão" e suas soluções mais consolidadas:

  • Aceleração e Modernização do Core (Adabas/Natural): Com o caixa cheio, a empresa tem recursos de sobra para investir pesado em pesquisa e desenvolvimento (R&D) na sua linha de produtos principal. Isso significa que podemos esperar atualizações mais rápidas, melhorias de performance, suporte ainda mais robusto e ferramentas oficiais para facilitar a conteinerização e a modernização do Adabas e do Natural (como a integração nativa com ambientes Docker e Kubernetes).
  • Foco Estratégico em Soluções Especializadas: Em vez de tentar abraçar o mundo da integração genérica, a Software AG agora foca em nichos onde ela já é líder indiscutível, como a modelagem e excelência de processos de negócios com o ARIS, além de soluções altamente específicas de IoT (Internet das Coisas).

A grande verdade: Para a Software AG, essa venda foi um divisor de águas estratégico. Ela deixa de gastar energia em mercados saturados de integração e volta às suas origens com força total e bolsos cheios, garantindo que a plataforma Adabas/Natural continue sendo a fundação mais segura, rápida e moderna do planeta para os dados transacionais das próximas décadas.



Insight para o DBA e Desenvolvedor

Para nós, técnicos que vivemos o dia a dia do CPD, essa movimentação bilionária deixa um recado claro como cristal: a integração de dados é o epicentro do mercado de tecnologia atual. O paradigma mudou. Hoje, o valor de um profissional de banco de dados não está mais medido apenas em sua capacidade de manter o ambiente no ar ou rodar utilitários de manutenção preventiva de forma isolada. O mercado agora busca, valoriza e paga muito mais por profissionais que atuam como pontes de inovação. Se você administra ou desenvolve em ambientes Adabas/Natural, dominar os conceitos e as ferramentas que extraem, replicam e integram essa massa gigantesca de dados transacionais para ambientes de nuvem híbrida, pipelines de ETL modernos e motores de Inteligência Artificial é, sem sombra de dúvidas, o caminho profissional de maior destaque e crescimento para os próximos anos. O futuro reserva um espaço de extremo prestígio para o "DBA de Integração". Longe de ser uma tecnologia que está encolhendo, o Adabas se consolida como a fundação ultraveloz onde residem os dados mais valiosos das maiores empresas do mundo. E quando você se capacita para abrir essas portas de forma performática — seja utilizando mensageria, gateways de APIs ou CDC (Change Data Capture) em tempo real —, você deixa de ser um executor de rotinas de sustentação para se tornar o arquiteto que viabiliza a transformação digital e a IA na sua empresa. O dado mais refinado do mercado já está sob o seu controle; o próximo passo é dominar as conexões que o levam ao futuro.

Pontos de Atenção

A transição de produtos complexos como o webMethods para a IBM traz alguns riscos típicos de grandes fusões e aquisições que merecem atenção. Um dos principais pontos está relacionado à transição do suporte e ao que muitos profissionais costumam chamar de “burocracia IBM”. Outro ponto de atenção é a pressão comercial e o custo de licenciamento. A IBM pagou cerca de R$ 11 bilhões pela Software AG e, naturalmente, existe uma expectativa de retorno sobre esse investimento. A empresa adote políticas de licenciamento mais agressivas ou passe a incentivar — os clientes a utilizarem combinações de seus próprios produtos, como soluções da Red Hat ou do WatsonX, em conjunto com o webMethods. Por isso, DBAs Adabas acompanhem de perto a evolução dessas duas ferramentas para não serem supreendidos no futuro.

Também existe uma dúvida importante em relação ao futuro da própria Software AG: a empresa ficará mais enxuta ou estará simplesmente encolhendo? Ao vender duas de suas marcas mais modernas e lucrativas na área de integração, a Software AG reduz significativamente o seu tamanho. O dinheiro obtido com a operação poderá ser utilizado para modernizar e fortalecer produtos tradicionais como o Adabas e o Natural. No entanto, caso esses recursos não sejam reinvestidos de forma consistente, o mercado poderá interpretar a venda como um sinal de enfraquecimento da companhia no longo prazo. Para quem trabalha diretamente com essas tecnologias, esse é um ponto que merece ser acompanhado com bastante atenção nos próximos anos.

Os pontos positivos

Nem tudo são espinhos. Há uma avenida de oportunidades técnicas que podem valorizar ainda mais o seu trabalho.

1. Integração "Nativa" com IA e Nuvem Híbrida

A Melhoria: A IBM é a dona do ecossistema Mainframe (z/OS). Com o webMethods e o StreamSets debaixo do mesmo teto da IBM, a tendência é que a integração entre o Adabas (da Software AG) e as soluções de nuvem/IA da IBM (WatsonX, Red Hat OpenShift, APIs) se torne absurdamente mais simples e performática.

O impacto para você: Extrair dados do Adabas e jogá-los em tempo real para um pipeline de IA ou microsserviço vai exigir menos "gambiarras" técnicas. Os conectores tendem a ficar muito mais robustos.

2. Sobrevivência Garantida do Adabas/Natural A Melhoria: Ao vender a divisão de integração, a Software AG encheu o caixa e agora tem um foco muito mais nichado. O Adabas e o Natural continuam sendo a "espinha dorsal" financeira da empresa. Sem a distração de ter que gerenciar plataformas gigantes de integração em nuvem, a tendência é que eles foquem em manter a plataforma Adabas moderna, segura e altamente compatível com os novos sistemas operacionais e contêineres (como rodar Adabas/Natural em Docker de forma cada vez mais oficial).

3. Valorização Profissional

A Melhoria: A IBM vai injetar força de vendas global nessas ferramentas de integração. Isso significa que mais empresas vão querer conectar seus sistemas legados. Se você é o profissional que entende o "banco de dados de origem" (Adabas) e sabe como ele conversa com o "mundo moderno", o seu perfil técnico se torna ainda mais escasso e disputado no mercado.

Devo me preocupar?

A resposta curta é: Fique ALERTA, mas não PREOCUPADO. O Mainframe e o Adabas não vão sumir. Pelo contrário: as grandes corporações já entenderam que reescrever sistemas complexos com dezenas de milhões de registros do zero é inviável financeiramente e um risco operacional gigantesco. A palavra de ordem do mercado hoje é INTEGRAR, não migrar. No entanto, quando uma ferramenta de integração como o webMethods muda de mãos (indo para a IBM), o DBA Adabas não pode ficar de braços cruzados esperando o impacto. Se você tem fluxos ativos integrando seu banco de dados ao mundo externo, o pulo do gato: O DBA que se limita a monitorar o banco de dados está sumindo. O DBA que entende como o dado sai do Adabas, passa pelo Broker/EntireX, atravessa o webMethods e chega na nuvem é o profissional que se torna indispensável. Use essa transição para se posicionar como a ponte técnica que garante que essa engrenagem continue rodando sem interrupções.
Leia Mais

quinta-feira, julho 02, 2026

Otimização do Buffer Pool

A garantia de alta disponibilidade e o tempo de resposta otimizado dos sistemas de produção exigem o acompanhamento constante dos ativos de memória. Recentemente, a monitoração proativa do ambiente de produção através do utilitário SYSBPM (Natural Buffer Pool Utility) acendeu um alerta de capacidade: os dados históricos acumulados revelaram que o Buffer Pool operava no limite de sua saturação. Para mitigar gargalos operacionais antes que houvesse impacto direto na experiência do usuário final, foi conduzida uma análise aprofundada em conjunto com o suporte do fabricante. Este documento apresenta o diagnóstico técnico inicial, as justificativas para a reestruturação e a solução adotada para expandir a capacidade do ambiente, assegurando a estabilidade das operações.

1. Diagnóstico Inicial do Ambiente

A análise estática realizada diretamente no painel do SYSBPM indicava o seguinte cenário de ocupação de memória: Até o momento da análise, a inicialização do Buffer Pool primário utilizava a seguinte parametrização de 25 MB via JCL:

//* -----------------------------------------------------------------
//*             INICIALIZA O GLOBAL BUFFER POOL DO NATURAL        
//* -----------------------------------------------------------------
//STARTNAT EXEC PGM=NATGBP41,                                        
//   PARM='BPN=NATGBP,S=NAT4,N=(25M,XA,2),R=N'                       
//STEPLIB  DD DSN=ADA8.LOADLIB,DISP=SHR                              
//SYSUDUMP DD SYSOUT=A                                               
//GBPPRINT DD SYSOUT=A                                               
//SYSPRINT DD SYSOUT=A

Buffer Pool hoje
  12:38:32             ***** NATURAL SYSBPM UTILITY *****             01/06/2026
  BPNAME NATGBP        - General Buffer Pool Statistics -        Type Global Nat
  BPPROP OFF                                                       Loc CPAC NAT4
                                                                                
 Buffer Pool Address ..... 13C63000      Buffer Pool Size (MB) ... 25,00        
  Directory Section ...... 00000400      Directory Entry Size .... 128          
  Text Record Section .... 001A5000      Text Record Size (KB) ... 2            
 Dataspace attached ......                                                      
                                                                                
 Initialization .......... 23:20:13    2025-12-06                               
 Last Refresh ............ 23:20:13    2025-12-06        by User .. NATBPMG4    
                                                                                
  _______________________________ Text Records ______________________________   
          Total          Used   in %      Max Used    Total Size  Avg Usage %   
         11,958        11,785  98,55        11,956    24,135,680        90,47   
               _____________________ Objects ________________________________   
  Space Used %         Loaded           Max Loaded    Total Size  Avg TR Used   
         89,16          2,301                2,777    21,836,723          5,1   
               SumOfUseCounts AvgLifetimeUsed(min)    AvgLifetimeReplace(min)   
                          880                4,643                        804   
                                                                                
 Command ===>                                                                   
 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
       Help        Exit  Last        Flip        Load                    Canc

2. Análise Técnica e Parecer do Suporte

A equipe de suporte da Software AG validou os dados e emitiu um parecer técnico que aponta para um cenário crítico de saturação em diferentes camadas. O ponto mais alarmante reside na gestão de Text Records, cujo consumo severo atingiu 98,55%, indicando que a área está praticamente esgotada. O fato de a métrica de uso máximo (Max Used) ter encostado no limite total, somado a uma ocupação média (Avg Usage) constantemente acima de 90%, evidencia que a sobrecarga não decorre de um pico pontual, mas sim de uma pressão operacional contínua. Em termos práticos, essa escassez de espaço força o Natural a descartar componentes em memória, desencadeando um efeito cascata de leituras físicas adicionais no banco de dados ADABAS. Como consequência direta, há uma degradação na performance geral do sistema e uma elevação no tempo de resposta das transações. Paralelamente, a ocupação de objetos também exige atenção, operando atualmente em 89,16%. Embora esse indicador ainda retenha uma margem mínima de manobra, a curva demonstra uma tendência clara de aproximação do seu limite máximo histórico de 2.777 objetos carregados — um fator de peso, considerando que cada objeto consome, em média, 5,1 Text Records. Ao cruzar esses dados com o comportamento dinâmico do ambiente, a análise combinada de Reuse e Lifetime revela que, embora o indicador SumOfUseCounts confirme a reutilização regular dos objetos, o tempo de vida médio antes de uma substituição (AvgLifetimeReplace) é extremamente longo, girando em torno de 13 horas. Em contrapartida, o tempo de uso ativo após a carga (AvgLifetimeUsed) é de apenas 4,6 minutos. Esse descompasso sugere que rotinas ou objetos obsoletos permanecem retidos na memória sem necessidade de uso imediato, estreitando ainda mais o espaço útil disponível e sufocando o ecossistema do Buffer Pool.

3. Plano de Ação e Recomendações

Como estratégia para mitigar a saturação identificada, a equipe de suporte da Software AG recomendou a expansão da capacidade do Buffer Pool em um patamar entre 20% e 50%, condicionada à disponibilidade de memória no ambiente z/OS. Adotando uma postura conservadora dentro dessa margem, optou-se por um acréscimo de 50% sobre os 25 MB originais, totalizando uma nova volumetria de 37 MB para o ambiente. Além do ganho de espaço físico, o parecer técnico sugeriu ações complementares para garantir a eficiência da estrutura, incluindo a revisão de parâmetros de inicialização adjacentes do Natural — como o BPI ou BPSFI — e uma análise detalhada dos padrões de carga das aplicações. Essa última medida visa rastrear o comportamento dos sistemas para identificar possíveis excessos na execução de programas dinâmicos ou o acesso a bibliotecas excessivamente pesadas que possam estar sobrecarregando o Buffer Pool. O que foi melhorado:
Critério Melhoria Aplicada
Fluidez Eliminou os marcadores de tópicos (bullet points).
Coesão Justificou a escolha dos 37 MB encaixando-a logo após a menção da regra de 20% a 50% sugerida pela Software AG.

4. Implementação e Nova Parametrização

Seguindo as diretrizes técnicas, a volumetria do Buffer Pool foi expandida de 25 MB para 37 MB. Vale ressaltar que a efetivação dessa nova configuração em subsistemas globais exige a execução de um IPL (Initial Program Load) ou o procedimento manual de exclusão e recriação do Buffer Pool na região correspondente.
Cenário Configuração do Buffer Pool
Antes da Alteração Configuração Antiga - 25MB
Após a Alteração Nova Otimização - 37MB

5. Próximos Passos e Critérios de Sucesso

Após a alteração do parâmetro de 25 MB para 37 MB no JCL de inicialização, a efetivação dessa nova valor no ambiente ativo dependerá obrigatoriamente da execução de um IPL ou do procedimento controlado de stop/start manual do Buffer Pool. Para efetivar vamos fazer a deletação e a recriação da buffer pool manualmente.

Stop Buffer Pool
//AAFSNATB JOB (AAAC,OSS),DIBD,CLASS=A,MSGCLASS=A                               
//*UQ ALLOW                                                                     
//* --------------------------------------------------------                    
//*               STOP NATURAL GLOBAL BUFFER POOL                               
//* --------------------------------------------------------                    
//STOPNAT  EXEC PGM=NATGBP41,PARM='CF=STOPNAT'                                  
//STEPLIB  DD DSN=ADA8.LOADLIB,DISP=SHR                                         
//SYSUDUMP DD SYSOUT=*                                                          
//STOPNAT  DD *                                                                 
F,BPN=NATGBP,S=NAT4                                                             
//*

Start Buffer Pool
//AAFSEGBP JOB (AAAC,OSS),DIBD,CLASS=A,MSGCLASS=A                               
//*UQ ALLOW                                                                     
//* --------------------------------------------------                          
//*         START EDITOR GLOBAL BUFFER POOL                                     
//* --------------------------------------------------                          
//STARTNAT EXEC PGM=NATGBP41,                                                   
//   PARM='BPN=NATGBP,S=NAT4,N=(37M,XA,2),R=N'                                  
//STEPLIB  DD DSN=ADA8.LOADLIB,DISP=SHR                                         
//SYSUDUMP DD SYSOUT=A                                                          
//GBPPRINT DD SYSOUT=A                                                          
//SYSPRINT DD SYSOUT=A

Display do Buffer Pool
//AAFSNATB JOB (AAFP,DIBD),CLAUD,CLASS=S,MSGCLASS=A,TYPRUN=HOLD                 
//*UQ ALLOW                                                                     
//* -----------------------------------------------------------                 
//*           VERIFICAR SE O BUFFER POOL ESTA NO AR                             
//* -----------------------------------------------------------                 
//STARTEDT EXEC PGM=NATGBP41,PARM='CF=STARTEDT'                                 
//STEPLIB  DD DSN=ADA8.LOADLIB,DISP=SHR                                         
//SYSUDUMP DD SYSOUT=*                                                          
//STARTEDT DD *                                                                 
SHOWBP
Leia Mais

terça-feira, junho 23, 2026

Entendendo o Funcionamento do ISN no Adabas

Entre os diversos conceitos que tornam o Adabas um banco de dados extremamente eficiente, o ISN (Internal Sequence Number) ocupa um papel fundamental. Embora muitas vezes passe despercebido pelos desenvolvedores e administradores iniciantes, o ISN é um dos principais responsáveis pela rapidez com que o Adabas localiza e recupera informações. Em vez de percorrer registros sequencialmente em busca de um dado específico, o Adabas utiliza o ISN como um identificador interno único, permitindo o acesso direto aos registros armazenados no Data Storage. Essa arquitetura, combinada com os índices invertidos do banco de dados, proporciona um desempenho excepcional, mesmo em ambientes que processam milhões de registros diariamente. Neste artigo, vamos entender o que é o ISN, como ele é atribuído, de que forma é utilizado pelo Adabas e por que ele é um dos pilares da alta performance que tornou o Adabas referência em sistemas de missão crítica.

Entendendo o ISN

No banco de dados Adabas, o ISN (Internal Sequence Number), ou Número de Sequência Interna, é um identificador numérico atribuído a cada registro armazenado dentro de um arquivo (file). Em termos práticos, ele funciona como um endereço interno que permite ao Adabas localizar e acessar um registro de forma rápida e eficiente. Cada registro dentro de um FILE possui um ISN único, ou seja, não pode existir dois registros com o mesmo ISN dentro do mesmo arquivo. No entanto, é importante destacar que essa unicidade vale apenas dentro do FILE. Em arquivos diferentes, o mesmo número de ISN pode existir sem qualquer conflito, pois a identificação do registro sempre é feita pela combinação FILE + ISN. O ISN é um elemento fundamental na arquitetura do Adabas, pois permite acesso direto aos dados. Em vez de percorrer registros sequencialmente, o sistema utiliza índices internos para localizar rapidamente os ISNs que atendem a uma determinada condição. Em seguida, com base nessa lista de ISNs, o Adabas acessa diretamente os registros correspondentes no Data Storage, reduzindo o tempo de resposta e aumentando a eficiência das consultas. Essa característica é uma das razões pelas quais o Adabas é reconhecido por seu alto desempenho, especialmente em ambientes corporativos que exigem processamento de grandes volumes de dados com rapidez, confiabilidade e alta disponibilidade.

Como o ISN funciona?

Cada registro armazenado em um arquivo do Adabas recebe um ISN exclusivo e irrepetível dentro desse arquivo. Isso significa que não podem existir dois registros compartilhando o mesmo ISN. De forma semelhante a um número de RG ou CPF para uma pessoa, o ISN identifica individualmente cada registro, permitindo que o Adabas o localize e o acesse diretamente, sem ambiguidades. Essa unicidade é um dos pilares da eficiência do banco de dados, pois garante uma referência precisa e rápida para a recuperação das informações.

Tamanho e Faixa de Valores

O ISN (Internal Sequence Number) é um valor numérico inteiro utilizado pelo Adabas para identificar de forma única cada registro dentro de um arquivo. Em termos práticos, ele funciona como um identificador interno do banco de dados, garantindo que cada registro possa ser localizado e acessado individualmente sem ambiguidades. Normalmente, o ISN é armazenado em 3 ou 4 bytes, dependendo da configuração do ambiente e do tamanho definido para o arquivo (RABNSIZE). Sua numeração geralmente se inicia em 1 e é incrementada sequencialmente conforme novos registros são inseridos no arquivo. Quando registros são excluídos, seus ISNs podem ser reutilizados futuramente, dependendo das políticas internas de gerenciamento do Adabas. A capacidade máxima de ISNs está diretamente relacionada ao tamanho do RABN/ISN, conforme demonstrado abaixo:

Formas de Atribuição do ISN

A definição do ISN pode ocorrer de diferentes maneiras, conforme a necessidade da aplicação e a configuração estabelecida pelo Administrador de Banco de Dados (DBA).
1. ISN atribuído pelo Adabas - O próprio banco de dados gera automaticamente o próximo ISN disponível, normalmente de forma sequencial.
2. ISN atribuído pela aplicação - O programa aplicativo, desenvolvido em linguagens como Natural, COBOL ou outra interface Adabas, define explicitamente qual ISN será utilizado ao inserir um novo registro.
3. Reutilização de ISNs - Quando um registro é excluído, o seu ISN pode ou não ser reaproveitado pelo sistema. Esse comportamento depende das configurações definidas para o arquivo e das políticas de administração adotadas.

Por que o ISN é tão importante?

Uma das principais características do Adabas é sua capacidade de realizar acesso extremamente rápido aos dados. Diferentemente de muitos bancos de dados relacionais, que frequentemente necessitam de pesquisas extensas e operações de junção entre tabelas, o Adabas utiliza o ISN como um ponteiro direto para a localização física do registro no Data Storage.

O processo ocorre da seguinte forma:

1. O Adabas utiliza seus índices invertidos para localizar os registros que atendem aos critérios da pesquisa.
2. O resultado da pesquisa é uma lista de ISNs correspondentes aos registros encontrados.
3. Com essa lista em mãos, o banco acessa diretamente os registros no Data Storage, sem a necessidade de percorrer todo o arquivo.

Benefícios do uso do ISN

Acesso Direto: localização imediata dos registros por meio de seus identificadores internos.
Alto Desempenho: minimiza leituras desnecessárias e reduz significativamente o tempo de resposta das consultas.
Eficiência na Recuperação de Dados: permite que grandes volumes de informações sejam acessados com rapidez e baixo custo de processamento.

É justamente essa arquitetura baseada em ISNs e índices invertidos que faz do Adabas um banco de dados reconhecido por sua elevada performance em ambientes de missão crítica e processamento de grandes volumes de dados.
Leia Mais