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 A
08: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