Skip to Content
0
Former Member
Jan 04, 2007 at 03:08 PM

ABAP Time limit exceeded Dump

2895 Views

Hi gurus,

I am getting the dump like this as

The program "Z##########" has exceeded the maximum permitted runtime

without

interruption, and has therefore been terminated.

<b>Error analysis</b>

After a certain length of time, the program is terminated. In the case

of a work area, this means that

- endless loops (DO, WHILE, ...),

- database accesses producing an excessively large result set,

- database accesses without a suitable index (full table scan)

do not block the processing for too long.

The system profile "rdisp/max_wprun_time" contains the maximum runtime of a

program. The

current setting is 3600 seconds. Once this time limit has been exceeded,

the system tries to terminate any SQL statements that are currently

being executed and tells the ABAP processor to terminate the current

program. Then it waits for a maximum of 60 seconds. If the program is

still active, the work process is restarted.

successfully processed, the system gives it another 3600 seconds.

Hence the maximum runtime of a program is at least twice the value of

the system profile parameter "rdisp/max_wprun_time".

<b>How to correct the error</b>

You should usually execute long-running programs as batch jobs.

If this is not possible, increase the system profile parameter

"rdisp/max_wprun_time".

Depending on the cause of the error, you may have to take one of the

following measures:

- Endless loop: Correct program;

- Dataset resulting from database access is too large:

Instead of "SELECT * ... ENDSELECT", use "SELECT * INTO internal table

(for example);

- Database has an unsuitable index: Check index generation.

You may able to find an interim solution to the problem

in the SAP note system. If you have access to the note system yourself,

use the following search criteria:

<b>Source code extract</b>

SELECT BUKRS BELNR GJAHR SKFBT BUDAT XREF1 DMBTR SHKZG INTO CORRESPONDING FIELDS OF

TABLE IT_BSAK

FROM BSAK

WHERE BUKRS = IT_BSIS-BUKRS

AND BELNR NE IT_BSIS-BELNR

AND AUGBL = IT_BSIS-BELNR

AND AUGGJ = IT_BSIS-GJAHR.

SORT IT_BSAK BY BELNR.

LOOP AT IT_BSAK.

-


> SELECT SINGLE GJAHR AWKEY INTO (W_GJAHR, W_AWKEY)

FROM BKPF

WHERE STBLG = IT_BSAK-BELNR

AND bukrs = it_bsak-bukrs

AND gjahr = it_bsak-gjahr.

IF SY-SUBRC = 0.

DELETE IT_BSAK WHERE BELNR = IT_BSAK-BELNR.

ENDIF.

ENDLOOP.

Note:- Dump is coming at marked -


> position.