NAT3009 Last transaction backed out of database 15. Subcode 3

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.