12-21-2012 10:28 AM
Hi,
I have a program which extract all data of table MAKT then use CALL FUNCTION 'SAP_CONVERT_TO_TEX_FORMAT'
My code is:
select * from makt into table i_tab PACKAGE SIZE 50000
CALL FUNCTION 'SAP_CONVERT_TO_TEX_FORMAT'
EXPORTING
i_field_seperator = p_sep
TABLES
i_tab_sap_data = i_tab
CHANGING
i_tab_converted_data = it_buffer
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
IF sy-subrc EQ 0.
APPEND LINES OF it_buffer TO it_record.
CLEAR: it_buffer, it_buffer[],i_tab, i_tab[].
FREE : i_tab,gt_buffer.
ENDIF.
ENDSELECT.
I have a dump during the execution:
&INCLUDE INCL_INSTALLATION_ERROR
Causes
The current program had to be terminated because of an
error when installing the R/3 System.
The program had already requested 300672048 bytes from the operating
system with 'malloc' when the operating system reported after a
further memory request that there was no more memory space
available.
Solutions
Make a note of the actions and input which caused the error.
To resolve the problem, contact your SAP system administrator.
You can use transaction ST22 (ABAP Dump Analysis) to view and administer
termination messages, especially those beyond their normal deletion
date.
Set the system profile parameters
- abap/heap_area_dia
- abap/heap_area_nondia
to a maximum of 300672048. Then reduce the value by 10.000.000 to be on the
safe side.
Then restart the SAP System.
Best regards,
12-21-2012 11:00 AM
Dump as you have said is due to insufficient memory on application server while executing program.
Review below block of statements in dump.
The program had already requested 300672048 bytes from the operating
system with 'malloc' when the operating system reported after a
further memory request that there was no more memory space
available.
Thus, Try to execute program after some time or consult to your basis consultant.
12-21-2012 11:45 AM
Hi,
use OPEN Cursor and Fetch Cursor and Close cursor concept.
though you are using the package size which is good. you are pass all the data to the Function Module I_TAB. where in this process cannot hold that memory. you can check that in the Application server process. after some time it will go to dump saying insufficient memory.
So how does the Open Cursor concept workds. it works like this in your case.
When you say Fetch cursor every time you process per cursor. so you dont get any dumps.
search for the Cursor concept. hope this helps
12-27-2012 9:44 AM
Thank you for yours replies but i have the same dump with cursor.
Any others ideas?
Regards,
12-27-2012 9:50 AM
Hi,
There are two options.
1) Contact the basis guy to get the memory sizse increased
2) Restrict your data by putting a where clause in your select statement on MAKT.
Hope this will help.
Regards,
Amit