Introdução
O analista recebeu este erro no job que ele rodava - Excedeu o número de registros em "hold" permitidos pelo parm NISNHQ. Provavelmente algo na lógica do programa Natural não esta legal. Suponha que temos 5 milhões de registros no arquivo, mas apenas dez registros passem pelo IF. Você pode pensar que está deixando apenas em "hold" dez registros; ERRADO; você estaria mantendo todos os recordes em "hold" por isso que ocorre este erro.1Logon accepted to library PROSOE. 1NEXT AECP413E MS 1PAG 1 22-05-15 19:02:45 0ERRO 3047 LINHA 4876 #EXTRATO: FC000197506599 AECP413E 5450 NAT3047 Maximum value for Adabas parm NISNHQ exceeded. DB/FNR 240 1NAT9978 Error occurred during execution/compilation. UQS0009 - END OF DATA SET. -------------------------------------------------------------------------------- OP=S CL=ALL IN=ALL JB=AECPA037,08631 DS=1 SI=SO LR=1 LL=80 PP=0 DC= RL=999999 AD=J DE= SC= PT= SQ=C RR=0 OC= SD=2000 16.05.2022, 8:05:09
NAT3047
Acessando o Natural para ver o significado do erro 3047;08:11:31 TID 65 COM641/D User DBAP045 16.05.22 -- COM-PASS -- USTS Suspended Programs Program Services --------------------------------- --------------------------------------- Programs Name C Level PF Service Description Programs ID PF -------- -------- - ----- -- -------------------- -------- -- -- NCF414 SYSAOS L 1 Logon/Logoff Utility ULOG A UPDS A$ADASAV U 2 System Job Queue UQ B UQ AAFAREDB U 3 Text Editor Utility UEDIT C UPDS A$080 U 4 PDS Maint. Utility UPDS D UQ AECPA037 U 5 * Natural de Producao NATP E 6 Aplicacoes Natural NAT2 F 7 Dataset Maintenance UDS G 8 Prog.Key Definition UPF H 9 Mathematics Utility UMATH I Enter Input: HELP ? nat2 ------------------------------------------------------------------------------- LU Name: TICS0669 HC TID: Recall: = Language: 001 Devtype: 3270 V Device: PICS2520 Suspend: < PA1 Case : UPPER Lines : 24 Key: PA2 Jump: NO NO Columns: 80
? 3047
08:11:57 ***** NATURAL ***** 16/05/2022 User DBAP045 - Main Menu - Library SUPORTE2 Function _ Development Functions _ Development Environment Settings _ Maintenance and Transfer Utilities _ Debugging and Monitoring Utilities _ Example Libraries _ Other Products _ Help _ Exit Natural Session Command ===> ? 3047 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Exit Canc
Excedeu o valor maximo do parametro NISHQ - Hold Queue Limit
08:12:16 ***** NATURAL HELP UTILITY ***** 16/05/2022 Library SUPORTE2 - Natural System Message NAT3047 - Page 1 Maximum value for Adabas parm NISNHQ exceeded. DB/FNR :1:/:2: Tx *** Short Text *** Maximum value for Adabas parameter NISNHQ was exceeded. Ac *** Recommended Action *** Contact your database administrator. Last Page Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Menu Exit Print Canc
Soluções do NAT3047
Temos 3 alternativas, a primeira é fazer uma alteração no programa natural as outras duas restantes são para alterar o parametro NISNHQ do banco;Solução 1
Ao rodar o programa dava este erro:NAT3047 Maximum value for Adabas parm NISNHQ exceeded. DB/FNR 230/422 > > + Program TLMSTDD1 Lib FITOTECA All ....+....1....+....2....+....3....+....4....+....5....+....6....+....7.. 0010 * -------------------------------------------------------------------- * 0020 * FUNCAO..: DELETANDO REGISTROS * 0030 * -------------------------------------------------------------------- * 0040 DEFINE DATA LOCAL 0050 1 TLMS VIEW OF AAFU-FITOTECA-TLMS 0060 2 AAF-DSN 0070 1 #RECCOUNT (N5) 0080 END-DEFINE 0090 /* DELETE ALL RECORDS FROM TLMS E 0100 R1. READ TLMS BY AAF-DSN 0110 DELETE(R1.) 0120 COMPUTE #RECCOUNT = #RECCOUNT + 1 0130 END-READ 0140 END TRANSACTION 0150 /* 0160 END 0170 0180 0190 0200 ....+....1....+....2....+....3....+....4....+....5....+... S 16 L 1
Foi feita algumas alterações para rodar - e rodou sem dar o erro NAT3047
> > + Program TLMSTDD1 Lib FITOTECA All ....+....1....+....2....+....3....+....4....+....5....+....6....+....7.. 0010 * -------------------------------------------------------------------- * 0020 * FUNCAO..: DELETANDO REGISTROS - GLOBALS SM=OFF * 0030 * -------------------------------------------------------------------- * 0040 DEFINE DATA LOCAL 0050 1 TLMS VIEW OF AAFU-FITOTECA-TLMS 0060 2 AAF-DSN 0070 1 RECCOUNT (N5) 0080 END-DEFINE 0090 /* DELETE ALL RECORDS FROM TLMS 0100 R1. READ TLMS BY AAF-DSN 0110 GET TLMS *ISN(R1.) 0120 DELETE(0110) 0130 COMPUTE RECCOUNT = RECCOUNT + 1 0140 IF RECCOUNT > 50 DO 0150 END TRANSACTION 0160 DOEND 0170 RESET RECCOUNT 0180 END TRANSACTION 0190 /* 0200 END ....+....1....+....2....+....3....+....4....+....5....+... S 20 L 1
Solução 2
Se não for possivel alterar a lógica de programação (por ter somente o objeto do programa) a única alternativa é alterar o NISNHQ - dá para mudar esse parametro online pelo SYSAOS - Opção A08:09:12 ***** A D A B A S BASIC SERVICES ***** 2022-05-16 Isolated - Main Menu - PMAIN02 Code Basic Services Code Other Services ---- ---------------------- ---- --------------------- A Session monitoring 1 Adabas Cache Facility C Checkpoint maintenance 2 Delta Save Facility F File maintenance 3 Trigger Maintenance M Database maintenance 4 AOS Security O Session opercoms 5 Transaction Manager R Database report 6 Adabas Statistics S Space calculation 7 Vista ? Help 8 Fastpath . Exit 9 SAF Security ---- ---------------------- ---- --------------------- Code ....... a Database ... 240 (DB.PROD.PRODUCAO) Command ==> PF1----- PF2------ PF3------ PF4------ PF6----- PF7----- PF8----- PF12----- Help Exit
Opção P
08:09:22 ***** A D A B A S BASIC SERVICES ***** 2022-05-16 - Session Monitoring - PAC0002 Code Service Code Service ---- -------------------------- ---- ---------------------------- A Display cluster members R Refresh nucleus statistics C Maintain user profiles S Current resource statistics D Display parameters T Maintain TCP/IP URL I Display installed products U Display resource utilization P Modify parameters V Replicator Management Q Display queues Z Display maintenance levels ? Help . Exit ---- -------------------------- ---- ---------------------------- Code ......... p Database ID .. 240 (DB.PROD.PRODUCAO) Command ==> PF1----- PF2------ PF3------ PF4------ PF6----- PF7----- PF8----- PF12----- Help Exit Menu
Primeira Tela (enter)
08:09:30 ***** A D A B A S BASIC SERVICES ***** 2022-05-16 DBID 240 - Modify Parameters - PACP002 Modify parameters below, as required: -------------- Pools -------------- ------------- Queues ------------------ Sort Area (LS).. 2048000 Command Queue (NC) .. 1500 Int. User Buffer (LU).. 65535 Hold Queue (NH) .. 3000 Buffer Pool (LBP).. 143378432 User Queue (NU) .. 3000 Format Pool (LFP).. 32768000 ------------ Time Windows ------------- ISN List Table (LI).. 400000 Transaction Time (TT) .. 420 Seq. Cmd. Table (LQ).. 150000 Max Transaction Time (MXTT) .. 3600 Work Pool (LWP).. 48128000 Nonactivity ACC-User (TNAA) .. 900 Attached Buffer (NAB).. 800 Nonactivity ET-User (TNAE) .. 900 Security Pool (LCP).. 10000 Nonactivity EXU-User (TNAX) .. 120 UQ-DE Pool (LDEUQP).. 50000 Max Nonactivity Time(MXTNA) .. 3600 Flush I/O Pool (LFIOP).. 35840000 Time Limit Sx-Cmds (TLSCMD) .. 3600 Err. Recovery (MSGBUF).. 0 Max Time for Sx-Cmds(MXTSX) .. 3600 Command Time (CT) .. 300 SYNS60 Interval (INTNAS) .. 3600 Page 1 of 3 PF1----- PF2------ PF3------ PF4------ PF6----- PF7----- PF8----- PF12----- Help Exit + Menu
Segunda enter - Hold Queue Limit (NISNHQ) - esta é a tela que podemos alterar
08:08:52 ***** A D A B A S BASIC SERVICES ***** 2022-05-16 DBID 240 - Modify Parameters - PACP002 Modify parameters below, as required: --------- Miscellaneous ----------- -------- User Specific Limits --------- ReadOnly session (READONLY) .. NO Hold Queue Limit (NISNHQ) .. 750 UTI only session (UTIONLY) .. NO CIDs per User (NQCID) .. 250 OPEN required (OPENRQ) .. NO ISNs / TBI Element (NSISN) .. 250 Ignore DIB Entry (IGNDIB) .. NO ------------ Buffer Pool -------------- Local nucleus (LOCAL) .. YES Bufferflush Dur. (TFLUSH) .. 7 Number of Threads (NT) .. 55 Parallel LFIOP I/O (FMXIO) .. 1 Non DE Search (NONDES) .. NO Async. by Vol-Ser (ASYTVS) .. YES Log AOS/DBS Update (AOSLOG) .. NO ------------ Replication -------------- Batch Support (BATCH) .. NO Replication (REPLICATION) ... NO Data Protection Area (LP) .. 25000 Ignore Work Part 4 (IGNDTP) .. NO WORK-Part-4 Area (LDTP) .. 0 WORK-Part-2 Area (LWKP2) .. 3494 SVC (SVC) .. 249 Page 2 of 3 PF1----- PF2------ PF3------ PF4------ PF6----- PF7----- PF8----- PF12----- Help Exit - + Menu
Solução 3
Se você não tiver o SYSAOS - dá para alterar o ADARUN do banco - o único problema que temos que tirar do ar e voltar o banco para ele poder assumir este novo valor;D MEMBER=ADAP070 000055 REC SAVE:28.06.2018 15:58 BY USERID DBAP045 R=00000033 DSN=AAB.DIBD.ADAPARM1 LIB=S2 VOL=PRL301 UNIT=1524 ....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8 ADARUN NISNHQ=750 <=== NUMBER OF ISNS IN HOLD QUEUE F/USER /97 ADARUN NONDES=NO <=== DISALOW SEARCHES USING NONDESCRIPTORS 9/3/4/97 ADARUN NQCID=75 <=== NUMBER OF CID PER USER * 10 ADARUN NSISN=250 <=== NUMBER OF ISNS PER TBI ELEMENT * 200 ADARUN NT=3 <=== NUMBER OF THREADS * 13 - 04/07/2013 ADARUN NU=1500 <=== NUMBER OF USER QUEUE ELEMENTS ADARUN OPENRQ=NO <=== OPEN COMMAND REQUIRED ADARUN PREFETCH=NO <=== PREFETCH FEATURE ADARUN READONLY=NO <=== READ ONLY SESSION ADARUN TFLUSH=7 <=== TIME OF SYNC. BUFFER FLUSH (SECS) ADARUN TLSCMD=300 <=== TIME LIMIT FOR SX COMMANDS (SECS) ADARUN TNAA=900 <=== NON-ACTIVITY TIME LIMIT (ACCESS ONLY USER) ADARUN TNAE=900 <=== NON-ACTIVITY TIME LIMIT (ET LOGIC USER) ADARUN TNAX=120 <=== NON-ACTIVITY TIME LIMIT (EXCLUSIVE UPDATE) ADARUN TT=420 <=== TRANSACTION TIME LIMIT (SECS) ANT 300** ADARUN UTIONLY=NO <=== UTILITIES ONLY SESSION
0 comentários:
Enviar um comentário