cancel
Showing results for 
Search instead for 
Did you mean: 

ABAP dump

Former Member
0 Kudos

Hi Friends,

When running a background job, it has returned with ABAP runtime error TSV_TNEW_PAGE_ALLOC_FAILED, I have searched for the same in google and service.sap.com,

I came to an understanding that we have to increase the parameter in order to avoid the error.

ztta/roll_area 6500352

ztta/roll_extension 2000683008

abap/heap_area_dia 2000683008

abap/heap_area_nondia 2000683008

abap/heap_area_total 2000683008

em/initial_size_MB 10240

The above are the values of the parameters in our system. Please help me to know to what extent I can extend the parameters and what does SAP limit the values to.

Please also help me to know if I increase the parameters the dump will be resolved or do I need to consider any other things.

Please help. I will reward points.

Thanks in advance.

XYZ

Accepted Solutions (1)

Accepted Solutions (1)

markus_doehr2
Active Contributor
0 Kudos

You would need to increase

abap/heap_area_nondia (which is set to 2 GB)

abap/heap_area_total (adapt according to the changes you make to the above parameter)

Your job is consuming more than 2 GB of heap memory - is this a standard program?

Markus

Former Member
0 Kudos

Thanks for the quick reply. This program relates to Populate VMI which is run every day.

Do I need to increase only those two parameters, if i increase upto 3gb , can i avoid getting dump.What is the maximum limit sap suggest.

thanks

markus_doehr2
Active Contributor
0 Kudos

If the program will be able to run with 3 GB - yes. I don't know because I don't know the program nor do I know what it is doing.

Markus

Former Member
0 Kudos

This job uses programZMMEU02_VMI_BATCH.

markus_doehr2
Active Contributor
0 Kudos

A Z-Program is a customer program - means, it was developed from one of your developers.

Check the steps in this job, check the program name and use SE38 to find out (using versions) which developer has it created.

Those kind of errors are mostly produced by bad programming style reading full tables into memory and trying to work on them.

Markus

Former Member
0 Kudos

I have checked the program and the developer says he has written the program only the tables required to be used in the program.

What is the way to find out regd the same. What i need to do now.

Thanks for the help.

markus_doehr2
Active Contributor
0 Kudos

I can´t say.

If it´s a big table it may or may not fit into memory. Means, if he´s reading the full table and the table is 10 GB you would need 10 GB of memory to run the program. Since I don´t know what it´s doing you can try to run it with the increased ABAP heap parameters. If it does still not work the developer should optimize the program to read in blocks instead of fetching a full table in to memory.

Markus

Former Member
0 Kudos

Hi,

The program has to be optimised .There is no point in increasing the memory paramter value for a particular job .

Regards,

Gokul B

Former Member
0 Kudos

At the moment in order to avoid short dumps, i have split the job into three jobs and the short dump doesn't occur. But this solution is for time being. The user wants in a single job. Please help to know what i have to do.

How to find how much memory it is taking and what do you suggest to increase the two parameters or do i need to mail the ABap guy to check the program.

thanks,

xyz

Former Member
0 Kudos

At the moment in order to avoid short dumps, i have split the job into three jobs and the short dump doesn't occur. But this solution is for time being. The user wants in a single job. Please help to know what i have to do.

How to find how much memory it is taking and what do you suggest to increase the two parameters or do i need to mail the ABap guy to check the program.

thanks,

markus_doehr2
Active Contributor
0 Kudos

It´s not common, when a program uses that much memory. Since I don´t know the program I can´t give you any recommendations. I´d suggest the developer to rewrite the program to use less memory (e. g. not doing "select * from . loop at

" but rather read blockwise etc.)

Markus

Answers (0)