‎2008 Dec 08 5:19 AM
My program is a RFC. I need to select the full table from a RFC in an internal table. The problem is that the db table has huge data and my program is going for a dump ("TSV_TNEW_PAGE_ALLOC_FAILED")
-
Dump analysis.
-
No storage space available for extending the internal table.
-
What happened?
-
You attempted to extend an internal table, but the required space was
not available.
-
How to correct the error
-
The amount of storage space (in bytes) filled at termination time was:
Roll area...................... 2717424
Extended memory (EM)........... 190442616
Assigned memory (HEAP)......... 10004800
Short area..................... " "
Paging area.................... 106496
Maximum address space.......... 4294967295
As you can see that this is a memory allocation problem.
The problem is that BASIS team can no longer increase the memory, so I need to have a walkaround this problem.
I was previously using CALL FUNCTION 'RFC_READ_TABLE' DESTINATION p_dest in the program. But this FM is going for a dump in the program.
I have created a new custom FM in which I have used the packaging property.
SELECT * FROM db_tab
PACKAGE SIZE 10000
APPENDING TABLE i_tab
But this too is not working.
According to the functionality, we need to have SELECT * and need to extract all the records too.
Is there any way where we can put the data into 2 or 3 internal tables from the rfc select.
Any suggestions would be welcome.
Thanks,
Arindam.
‎2008 Dec 08 8:32 AM
Arindam,
As increasing the Roll area memory is not an option i'd suggest you modify your select. Split it up into 2 or more selects based on any one primary key field or based on time periods. The records can be processed in the 2-3 internal tables one after the other or if you arrive at a fewer number of records after certain eliminations then combine the tables at that point.
There are a lot of related threads on this topic in this forum. I'm pasting one below for reference
‎2009 Jan 02 9:08 AM
If you do not need all the fields in the Db table, Select only required fields in place of Select *
‎2009 Jan 02 9:25 AM
Hi,
Are you calling RFC from other SAP system? If so, you can download the Data to App.Server and FTP to the other using Std Program and then read the data from the same.
Hope this helps you
Raj
‎2009 Jan 02 11:29 AM
SELECT * FROM db_tab
PACKAGE SIZE 10000
APPENDING TABLE i_tab
But this too is not working.
Read the documentation carefully!
You should use an INTO or an APPENDING with a refresh somewhere.
Otherwise your table grows again, because a packages added!, and performance is even worse!
Siegfried