Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Activate one program with several big includes, PXA_NO_FREE_SPACE sometimes

Sandra_Rossi
Active Contributor
0 Kudos
410

Hello,

I had an issue, which I solved (explanation below), but I didn't understand why it has solved, hence this question.

I've got a custom executable program of 450 lines of code, but with includes 6 big include programs, each around 30.000 lines, which makes a total of 160.000 lines.

Of course, having includes and a program of this size is not a good practice, if I convert the code into function modules or class pools, I wouldn't have this problem, so please don't ask me to rewrite the code. Also, these 160.000 lines of code come from a tool which generates them.

I activated the executable program via SE38 and I got both a compile error "No PXA memory space currently available" and a short dump PXA_NO_FREE_SPACE.

The error message comes from the function module REPS_OBJECT_GENERATE at this line (ABAP 7.52):

    GENERATE REPORT i_program<br>      WITH PRECOMPILED HEADERS<br>      %_CHECK_SELSCREEN   "Sel-Bilder nicht immer<br>      MESSAGE o_gen_message<br>            INCLUDE o_gen_include<br>            LINE    o_gen_line<br>            OFFSET  o_gen_offset<br>            WORD    o_gen_word.

It's the only program to not compile, all other programs compile well, no problem when executing any ABAP program in the system.

I looked at all questions in the forum and the SAP notes, so I know that one solution would be to increase the PXA memory via profile parameters.

In fact, I didn't change the profile parameters, and solved this way:

  • I edited each include program individually (SE38 > Change), activating it by selecting a second executable program which is using these include programs.
  • I then activated again the first executable program as before and it worked. No idea if it's a coincidence or not.

Any idea why it worked this time?

In case it happens again, is there another solution without increasing the memory, better than mine?

Thanks a lot for reading me.

Sandra

Additional information:

It's an ABAP 7.52 SP 04 trial system.

Here are the generation limits of the program to be generated:

Here is the ST02 program buffer (PXA) and profile parameters:

EDIT Nov 3rd, 2023:

  • I had again the same issue today (same system, same resources, so not surprising), the solution above worked for me, although I did it slightly differently: I activated only 2 include programs (instead of 5) and selecting the first (instead of second) executable program (via SE38 again), then I activated the first program and the remaining 3 include programs, and it compiled fine.

Second EDIT Nov 3rd, 2023:

  • PXA error again, BUT now impossible to activate "by include", I always get the error "free PXA memory". So I can now post an answer to say that the solution may work, but also may not work at all, it really depends on some context that only the PXA internal logic knows, and if it doesn't work, only increasing the PXA memory via profile parameter can help.
1 REPLY 1

Sandra_Rossi
Active Contributor
0 Kudos
357

I had again the same issue today BUT now impossible to activate "by include", I always get the error "free PXA memory".

So, I can say that the solution may either work or NOT WORK AT ALL, it really depends on some context that only the PXA internal logic knows, and if it doesn't work, only increasing the PXA memory via profile parameter can help.

Clearing explicitly the memory buffers helped solving the issue temporarily (type /$sync in the command line of SAP GUI and press Enter / see forum for more details), but it doesn't change the diagnosis that it may also not work as I said.