Ao reorganizar um arquivo que extendeu, durante a preparação do REORFILE, precisava informar o tamanho da alocação em blocos. Porém, na hora de preencher o parâmetro, acabei informando o tamanho em cilindros, que representa uma quantidade de espaço bem menor do que a necessária para aquela reorganização. Naquele momento, parecia apenas um detalhe de configuração, mas o resultado foi bem diferente do esperado. Quando o job iniciou o processo de reorganização, o espaço disponível não foi suficiente para realizar a operação e o job acabou dando ABEND justamente no momento em que iria reorganizar o arquivo. Como a reorganização poderia deixar o arquivo em uma situação inconsistente, foi necessário tomar alguns cuidados antes de tentar novamente. Primeiro, restaurei o backup anterior à reorganização, garantindo que o arquivo voltasse ao estado original e íntegro. Somente depois disso, corrigi o parâmetro de tamanho do REORFILE e iniciei novamente o processo de reorganização. No final, o problema foi causado por uma diferença aparentemente simples: informar o tamanho em cilindros quando o esperado era em blocos. É um daqueles erros que servem como lembrete de que, em ambiente Mainframe, pequenos detalhes em parâmetros de JCL ou de utilitários podem provocar consequências grandes.
A lição que ficou foi simples: antes de executar uma reorganização, principalmente em arquivos importantes, é fundamental conferir cuidadosamente a unidade de medida utilizada, o espaço necessário, os parâmetros de alocação e, principalmente, garantir que exista um backup válido para recuperação. Foi um daqueles momentos em que alguns segundos conferindo o parâmetro poderiam ter evitado um bom tempo de trabalho depois.
Aqui esta o erro, simples, mas que vai causar um grande problema, no lugar de blocos foi colocado o tamanho em cilindros (160B) - tinha que ser 9905B
O job sofreu ABEND após ultrapassar o ponto de não retorno. Como não havia espaço suficiente para concluir a reorganização, o processo não conseguiu ser finalizado corretamente e o arquivo acabou ficando corrompido. Nesse ponto, a única alternativa segura é restaurar o file anterior à reorganização e, somente depois, realizar novamente o procedimento com os parâmetros de alocação corrigidos.
Restaurando do backup que foi feito desse file.
JCL da segunda reorganização - o valor do DS agora é 9905 blocos
Reorganizado de novo terminou ok
A lição que ficou foi simples: antes de executar uma reorganização, principalmente em arquivos importantes, é fundamental conferir cuidadosamente a unidade de medida utilizada, o espaço necessário, os parâmetros de alocação e, principalmente, garantir que exista um backup válido para recuperação. Foi um daqueles momentos em que alguns segundos conferindo o parâmetro poderiam ter evitado um bom tempo de trabalho depois.
07:00:41 ***** A D A B A S BASIC SERVICES ***** 2010-06-25
DBID 230 - Display File Layout - PDRF022
File 176
I Dev LiI Space allocated I From To I Unused
I Type TyI Blocks / Cyls. I RABN RABN I BLOCKS / Cyls.
-----I--------I-------------------I ------------------------I------------------
I I I I
ASSO I 8391 ACI 146 0 I 186774 - 186919 I 0 0
I 8391 ACI 37 0 I 258077 - 258113 I 0 0
I 8391 ACI 46 0 I 151716 - 151761 I 0 0
I 8391 ACI 57 0 I 151762 - 151818 I 0 0
I 8391 ACI 71 0 I 151819 - 151889 I 0 0
I 8391 UII 110 0 I 190120 - 190229 I 66 0
I 8391 NII 3200 17 I 186920 - 190119 I 0 0
I 8391 NII 5540 30 I 265551 - 271090 I 807 4
I I I I
DATA I 8391 DSI 3175 42 I 318634 - 321808 I 0 0
I 8391 DSI 789 10 I 424305 - 425093 I 0 0
I 8391 DSI 2309 30 I 281722 - 284030 I 0 0
I 8391 DSI 3532 47 I 439498 - 443029 I 891 11
Aqui esta o erro, simples, mas que vai causar um grande problema, no lugar de blocos foi colocado o tamanho em cilindros (160B) - tinha que ser 9905B
ADAORD REORFILE ADAORD FILE=176 ADAORD DSSIZE=160B ADAORD MAXISN=600000
O job sofreu ABEND após ultrapassar o ponto de não retorno. Como não havia espaço suficiente para concluir a reorganização, o processo não conseguiu ser finalizado corretamente e o arquivo acabou ficando corrompido. Nesse ponto, a única alternativa segura é restaurar o file anterior à reorganização e, somente depois, realizar novamente o procedimento com os parâmetros de alocação corrigidos.
1 J E S 2 J O B L O G -- S Y S T E M C P A C -- N O
0
07.03.30 JOB00079 ---- FRIDAY, 25 JUN 2010 ----
07.03.30 JOB00079 TSS7000I DBAP055 Last-Used 25 Jun 10 06:59 System=CPAC Facil
07.03.30 JOB00079 TSS7001I Count=50978 Mode=Fail Locktime=None Name=CLAUDEMAR
07.03.30 JOB00079 $HASP373 AAFPREOR STARTED - INIT K - CLASS S - SYS CPAC
07.03.30 JOB00079 IEF403I AAFPREOR - STARTED - TIME=07.03.30
07.04.01 JOB00079 ADAU40 00230 Point of No Return reached
07.04.01 JOB00079 ADAU41 00230 ADAORD invoked from job AAFPREOR
07.04.21 JOB00079 IEA995I SYMPTOM DUMP OUTPUT 571
571 USER COMPLETION CODE=0034
571 TIME=07.04.20 SEQ=34616 CPU=0000 ASID=0446
571 PSW AT TIME OF ERROR 078D1000 800192C4 ILC 2 INTC 0D
571 ACTIVE LOAD MODULE ADDRESS=00015F50 OFFSET=000
571 NAME=ADAIOS
571 DATA AT PSW 000192BE - 00181610 0A0D0A0D 0000C96D
571 GR 0: 00000000_80000000 1: 00000000_80000022
571 2: 00000000_00046A00 3: 00000000_0000000C
571 4: 00000000_1710ABA0 5: 00000000_00094F3F
571 6: 00000000_00055430 7: 00000000_00043FE4
571 8: 00000000_00043FE4 9: 00000000_0004EEE0
571 A: 00000000_00019250 B: 00000000_00044A00
571 C: 00000000_8000EDB0 D: 00000000_00012950
571 E: 00000000_8001927C F: 00000004_00019250
571 END OF SYMPTOM DUMP
07.04.21 JOB00079 IEF450I AAFPREOR AAFAUTID ORDFILE - ABEND=S000 U0034 REASON=
572 TIME=07.04.21
07.04.21 JOB00079 - --TIMINGS (MI
07.04.21 JOB00079 -STEPNAME PROCSTEP RC EXCP CONN TCB SRB CLOCK
07.04.21 JOB00079 -ORDFILE AAFAUTID U0034 9415 29292 .10 .00 .8
07.04.21 JOB00079 IEF404I AAFPREOR - ENDED - TIME=07.04.21
07.04.21 JOB00079 -AAFPREOR ENDED. NAME-GERMANO TOTAL TCB CPU TI
07.04.21 JOB00079 $HASP395 AAFPREOR ENDED
0------ JES2 JOB STATISTICS ------
- 25 JUN 2010 JOB EXECUTION DATE
- 23 CARDS READ
- 10,731 SYSOUT PRINT RECORDS
- 0 SYSOUT PUNCH RECORDS
- 1,141 SYSOUT SPOOL KBYTES
- 0.86 MINUTES EXECUTION TIME
UQS0009 - END OF DATA SET.
--------------------------------------------------------------------------------
OP=S CL=ALL IN=ALL JB=AAFPREOR,00079 DS=1 SI=SM LR=22 LL=80 PP=0 DC=
RL=999999 AD=J DE= SC= PT= SQ=C RR=0 OC= SD=2000
Restaurando do backup que foi feito desse file.
MEMBER=REST230 000015 REC SAVE:25.06.2010 07:15 BY USERID DBAP055 R=00000001 DSN=AAB.DIBD.JCLS LIB=S3 VOL=PRL303 UNIT=1024 ....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8 //ABBPREST JOB (AAFA,DIBD),GER,CLASS=S,MSGCLASS=A //*UQ ALLOW //* --------------------------------------------------------- //* RESTORE DB OFF-LINE //* --------------------------------------------------------- //RESTORE EXEC AAFAU230,TIME=1440 //DDREST1 DD DSN=ADABAS.C.SAVE.ALL.D.G0463V00, // DISP=OLD,UNIT=TP35,VOL=SER=TP0644 //* --------------------------------------------------------- //DDCARD DD * ADARUN PROG=ADASAV,DBID=230,MODE=SINGLE //DDKARTE DD * ADASAV RESTORE FMOVE=176 ADASAV OVERWRITE /*
JCL da segunda reorganização - o valor do DS agora é 9905 blocos
MEMBER=REORFILE 000021 REC SAVE:25.06.2010 11:39 BY USERID DBAP055 R=00000001 DSN=AAB.DIBD.JCLS LIB=S3 VOL=PRL303 UNIT=1024 ....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8 //AAFPREOR JOB (AAFP,OSB),GERMANO,CLASS=S,MSGCLASS=A TYPRUN=HOLD //*UQ ALLOW //* --------------------------------------------------------------- //* REORGANIZA O FILE DE UM BANCO //* --------------------------------------------------------------- //ORDFILE EXEC AAFAU230,TIME=1440 //DDFILEA DD DSN=&&DDFILEA,DISP=(,PASS), // UNIT=SYSDA,VOL=SER=WRK22A,SPACE=(CYL,(1000,2)) //* --------------------------------------------------------------- //DDCARD DD * ADARUN PROG=ADAORD,DBID=230 //DDKARTE DD * ADAORD REORFILE ADAORD FILE=176 ** ADAORD ISNSIZE=3 ** ADAORD INDEXCOMPRESSION=YES ** ADAORD NISIZE=300B ** ADAORD UISIZE=500B ADAORD DSSIZE=9905B ADAORD MAXISN=600000 /*
Reorganizado de novo terminou ok
12:19:00 ***** A D A B A S BASIC SERVICES ***** 2010-06-25
DBID 230 - Display File Layout - PDRF022
File 176
I Dev LiI Space allocated I From To I Unused
I Type TyI Blocks / Cyls. I RABN RABN I BLOCKS / Cyls.
-----I--------I-------------------I ------------------------I------------------
I I I I
ASSO I 8391 ACI 436 2 I 186774 - 187209 I 0 0
I 8391 UII 110 0 I 151716 - 151825 I 77 0
I 8391 NII 8740 48 I 265551 - 274290 I 3482 19
I I I I
DATA I 8391 DSI 9905 132 I 439498 - 449402 I 1050 14



0 Comments:
Enviar um comentário