sábado, outubro 26, 2013

Adabas - ERROR-110, SORT dataset too small

Um super descritor é como um campo descritor nos bancos relacionais, o(s) campo(s) que vão fazer parte do super descritor terão um índice para os seus registros ficando assim mais rápida a consulta nele, este post vou colocar um problema que ocorreu na hora de criar um super descritor para um file muito grande - os tamanhos de sort que já estava definido para o banco não suportavam essa quantidade de registro; Rodando o jcl de criação do super descritor;
//AAFSNATB JOB (ALAD,OSB),CLAUD,CLASS=S,MSGCLASS=A TYPRUN=HOLD
//*UQ ALLOW                                                      
//INVERT    EXEC AAFAUTIP,TIME=1440                                            
//DDCARD    DD *                                                                
ADARUN PROG=ADAINV,DBID=240                                                    
//DDKARTE   DD *                                                                
ADAINV INVERT FILE=106                                                          
ADAINV SUPDE='SE=AC(1,3),BC(1,14)'                                              
ADAINV        TEMPSIZE=1000,SORTSIZE=1000
Ocorreu o erro de falta de espaço do SORT do Adabas
A D A I N V:  Error occurred during execution:                                                                                          
ERROR-110, SORT dataset too small                                              
                                                                                
            Supply a larger SORT dataset.                                      
            See the ADABAS Utilities Manual for instructions how                
            to calculate the SORT dataset size.                                
                                                                                
                                                                                
A D A I N V  Terminated                                   2009-12-06  15:19:52
UQS0009 - END OF DATA SET.

                                                                                
--------------------------------------------------------------------------------
OP=S CL=ALL IN=ALL JB=AAFSNATB,06773 DS=1 SI=SO LR=12 LL=80 PP=0 DC=            
RL=999999 AD=J DE= SC= PT= SQ=C RR=0 OC= SD=2000
Neste banco temos duas procedures é uma delas tem a area de TEMP/SORT maior rodamos a criação do super descritor nela também
//AAFSNATB JOB (ALAD,OSB),CLAUD,CLASS=S,MSGCLASS=A TYPRUN=HOLD
//*UQ ALLOW                                                      
//INVERT    EXEC AAFAU240,TIME=1440      
//DDCARD    DD *                        
ADARUN PROG=ADAINV,DBID=240              
//DDKARTE   DD *                        
ADAINV INVERT FILE=106                  
ADAINV SUPDE='SE=AC(1,3),BC(1,14)'      
ADAINV        TEMPSIZE=3000,SORTSIZE=1600
Ainda não deu certo, a saida é criar uma área maior - Formatar um SORT maior (3000 cilindros)
MEMBER=ADAFRMST 000023 REC SAVE:06.12.2009 16:37 BY   USERID AA01055  R=00000001
DSN=AAB.DIBD.JCLS                                LIB=S3 VOL=PRL303 UNIT=1024    
....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8​
//AAFAFRMS  JOB (AAFA,DIBD),CLAUD,CLASS=S,MSGCLASS=X                        
//*UQ ALLOW                                                                    
//* ---------------------------------------------------------------            
//*            FORMATA AREAS PARA O ADABAS - SORT                              
//* ---------------------------------------------------------------            
//FORMAT    EXEC PGM=ADARUN                                                    
//* ---------------------------------------------------------------            
//DDSORTR1  DD   DISP=(NEW,CATLG),DSN=ADABAS.DBP.SORTR3,   <=== SORT1          
// SPACE=(CYL,(3000)),UNIT=SYSDA,VOL=SER=ADAH31                                
//* ---------------------------------------------------------------            
//* DDSORTR2  DD   DISP=(NEW,CATLG),DSN=ADABAS.DBP.SORTR2,   <=== SORT2        
//*  SPACE=(CYL,(1600)),UNIT=SYSDA,VOL=SER=ADAW06                              
//* ---------------------------------------------------------------            
//SYSUDUMP  DD   SYSOUT=A                                                      
//DDDRUCK   DD   SYSOUT=A                                                      
//DDPRINT   DD   SYSOUT=A                                                      
//DDCARD    DD   *                                                              
ADARUN PROG=ADAFRM,DBID=240                                                    
//DDKARTE   DD   *                                                              
ADAFRM SORTFRM SIZE=3000,DEVICE=8391,NUMBER=1
Alteramos a procedure AAFAU240 colocamos este novo dataset do SORT3 com 3000 cilindros
MEMBER=AAFAU240 000021 REC SAVE:06.12.2009 16:29 BY   USERID AA01055  R=00000005
DSN=AAB.PROCLIB                                  LIB=PP VOL=PRL303 UNIT=1024    
....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8​
//DDTEMPR1  DD   DISP=OLD,DSN=ADABAS.DBP.TEMPR1    <===== TEMP AREA            
//DDSORTR1  DD   DISP=OLD,DSN=ADABAS.DBP.SORTR1    <===== SORT AREA 1          
//DDSORTR2  DD   DISP=OLD,DSN=ADABAS.DBP.SORTR2    <===== SORT AREA 2          
//DDSORTR3  DD   DISP=OLD,DSN=ADABAS.DBP.SORTR3    <===== SORT AREA 3          
//SYSUDUMP  DD   SYSOUT=Z                                                      
//DDDRUCK   DD   SYSOUT=A                                                      
//DDPRINT   DD   SYSOUT=A                                                      
//DDCARD    DD   DDNAME=DDCARD                                                  
//DDKARTE   DD   DDNAME=DDKARTE
Submetido de novo o job do invert para ver se ele vai pegar a SORT3 maior
ID       JOBNAME  STEPNAME PROCSTEP ST DP STORE       CPU  EXCP  ASID DM RP    
                                                                                
J0006808 AAFSNATB INVERT   AAFAU240    F6  2856K   154,80 23390  0097 00
E deu certo, foi criado o super descritor
2 //INVERT    EXEC AAFAU240,TIME=1440                        
        3 XXAAFAU240  EXEC PGM=ADARUN,REGION=0M                      
IEF142I AAFSNATB AAFAU240 INVERT - STEP WAS EXECUTED - COND CODE 0000
Criou o super
Processing Statistics:                                                        
  ----------------------                                                        
                                                                                
               0 Blocks used on TEMP dataset  (0%)                              
           46844 Blocks used on SORT Part 1   (69%)                            
           47032 Blocks used on SORT Part 2   (69%)                            
                                                                                
                                                                                
--------------------------------------------------------------------------------
OP=S CL=ALL IN=ALL JB=AAFSNATB,06808 DS=1 SI=SO LR=8 LL=80 PP=0 DC= RL=999999  
AD=J DE= SC= PT= SQ=C RR=0 OC= SD=2000   06.12.2009, 17:30:00


0 comentários:

Enviar um comentário