Hi everyone i’m junior on this and i have this error but i’cant fix until now, the program is very simple it’s this:
R1. READ MULTI-FETCH 10 TEST1 WITH DESCRIPTOR-TEST1 = TEST-D TO TEST-H /* TEST1 HAVE AROUND 14 MILLION RECORDS */
ADD 1 TO READS-RECORDS
IF READS-RECORDS > 50 /*I TRY TO PUT THIS FOR FIX BUT NOT WORK */
GET TEST1 *ISN(R1.)
END TRANSACTION
RESET READS-RECORDS
END-IF
FIND (1) TEST2 WITH DESCRIPTOR-TEST2 = TEST-DATE
IF NO RECORD FOUND
ESCAPE BOTTOM (005)
END-NOREC
IF TEST2.MAIL = ' '
ESCAPE BOTTOM (005)
END-IF
/* MOVE RECORDS HERE FOR THE FILE-OUT */
END-FIND
WRITE WORK FILE 1 FILE-OUT
END-READ
Well and this running for around 2-3hs maybe and he give error:
NAT3009 Last transaction backed out of database 15. Subcode 3.
I think i’ts for the massive cant of records that have the file ‘TEST1’ but idk, i try put the end transaction despite doesn’t exist any update or similar but also don’t work, i read too much threads about this in the forum but nothing…
Any solution it’s welcome here, sorry again for my ignorance, kind regards.
Subcode 3 is a non activity timeout.
Are files TEST1, TEST2 and your FUSER file all on the same database, i.e. 15?
You may be timing out on 1 database but active on another.
Eugene (Gene) Miklovich
ADABAS/NATURAL Systems Support and DBA
Cell: 916-202-7047
Normal Hours: 8am-4pm E.T.
Please call or text if assistance needed outside these hours.
in the case ‘activity timeout’ is it because there is no ‘commit’ to the file? or what? and yes, both are in the same database
This just doesn’t make sense at all.
Rsp 9 Subcode 3 means “The transaction non-activity time limit (TNAE, TNAX, or TNAA) has been exceeded.”.
No, this does not mean “no commit on the file”, this means “no ADABAS calls at all within the time limit”.
Which exact line does the error message point to ?
Even for a file with 14 million records an execution time of 2-3 hours doesn’t sound reasonable.
You specify line numbers instead of labels on your escape statements, what is (005) ?
If (005) equals to R1 then your logic doesn’t look right, why would you drop out of the READ loop ?
Is there another loop statement, like a REPEAT or another READ surrounding this ?
do ESCAPE BOTTOM at FIND line because i need evaluate all of the occurrences, or how to do that?..
Recommend you always label loops with “R1.” or similar and then ESCAPE LOOP (R1.). If you use line numbers they should always be 4 digits and match line number where loop started.
Is your FUSER on same database as TEST1 and TEST2
Eugene (Gene) Miklovich
ADABAS/NATURAL Systems Support and DBA
Cell: 916-202-7047
Normal Hours: 8am-4pm E.T.
Please call or text if assistance needed outside these hours.