cancel
Showing results for 
Search instead for 
Did you mean: 

memory problem

dudmswl77
Explorer
2,124

Hi experts,

I have some problem.

Batch program is running at dawn, and I am experiencing a resource bottleneck due to memory issues.

Message text says "No more memory available to add rows to an internal table."

Memory spec
- System physical memory : 64GB
- Memory per ID : 4GB

<My Question>
1. How can i solve this problem?
2. Is there any other ways than increasing the memory??
3. Generally, How much capacity is required to transfer more than 8 million data from SAP to Other program ?

Sandra_Rossi
Active Contributor
0 Kudos

The amount of memory is limited and you can't increase it. Why does your program (if it's custom) consume so much memory? Why can't you make it consume less?

Accepted Solutions (1)

Accepted Solutions (1)

sumitjais
Active Contributor
0 Kudos

Hi dudmswl77,

You need to check work process trace (refer 2194685 ) and ST22 dump for the analysis.

Batch work processes consume memory in the order- Roll Memory, Heap Memory, Extended Memory.

What are the values for PHY_MEMSIZE,em/initial_size_MB and abap/heap_area_nondia and their usage at the time of the dump? You may have to increase the heap(nondia) memory.

dudmswl77
Explorer
0 Kudos

Hi Sumit Jaiswal.


| The amount of memory (in bytes) used at termination time was:

| Roll area...................... 0 |

| Extended memory (EM) 4001008232 |

| Assigned memory (HEAP) 4194930864 |

| Short area..................... |

| Paging area.................... 40960 |

| Maximum address space.......... 18446744073709551615 |

| If the error occurs in a non-modfied SAP program, you might be able to find a solution in the SAP Notes system.

If you have access to the SAP Notes system, check there first using the following keywords:

"TSV_TNEW_PAGE_ALLOC_FAILED"

"ZMMCR6014" bzw. ZMMCR6014F01

"GET_COLLECT_DATA"

This is memory usage at the time of dump.

Can you explain how can i resolve this problem?

sumitjais
Active Contributor
0 Kudos

Your job has used 8G (i.e. 4G heap and then 4G extended) and then terminated. For 8 million data, usage of 8G memory is not unusual.

Could you please share the parameter values for PHY_MEMSIZE,em/initial_size_MB and abap/heap_area_nondia?

dudmswl77
Explorer
0 Kudos

Thank you for your help.

I'm so sorry but i don't know about how can i get that information ,

"Could you please share the parameter values for PHY_MEMSIZE,em/initial_size_MB and abap/heap_area_nondia?"

Terminal..........

Character set C

SAP kernel....... 745

Created on....... Jan 23 2017 16:12:28

Created at....... Linux GNU SLES-11 x86_64 cc4.3.4 use-pr170123

Database version OCI_112, 12.1.0.2.0, V2, default

Patch level....... 400

Patch text.......

Database............. ORACLE 11.2.*.*.*, ORACLE 12.*.*.*.*

SAP database version. 745

Operating system... Linux

Memory consumption

Roll.... 0

EM...... 4001008232

Heap.... 4194930864

Page.... 40960

MM used. 8180281440

MM free. 8806376

Is this right,,,?

sumitjais
Active Contributor
0 Kudos

Go to T code RZ11, enter the parameter name and look for current value.

dudmswl77
Explorer
0 Kudos

phys_memsize

em/initial_size_MB

dudmswl77
Explorer
0 Kudos

abap/heap_area_nondia

This is parameter details!

sumitjais
Active Contributor
0 Kudos

Your job has used almost 8 G ( 4 GB limited by abap/heap_area_nondia followed by 4 Gb of the extended memory quota limited by ztta/roll_extension) before it terminated. For 8 million data transfer, this is not unusual memory usage. As you have sufficient memory with application (64 G of which 43 G is extended), you may increase the parameter abap/heap_area_nondia from 4G to 7-8 G i.e. abap/heap_area_nondia = 7516192768 or 8589934592 ( the parameter change requires application restart).

If above does not work, you should fine tune the program to transfer the 8 million data in multiple go.

dudmswl77
Explorer
0 Kudos

Thank you for your help, experts!

Finally i have one more question.

abap/heap_area_nondia from 4G is not enough for tranafer 3 million data?

Answers (2)

Answers (2)

S_Sriram
Active Contributor

Hi Yeo.

Since it is a Z-program with the help of ABAPer enables the trace using the transaction code ST12 to check the overall performance of the Z program and why it is consuming more memory? you may have to do the fine-tuning of the Z program

Regards

SS

S_Sriram
Active Contributor

Hi Yeo

1. Check the batch job program why it is taking more memory is the SAP Standard or Z custom program? is this batch job program can be fine-tuned?

if possible could share the dumps as a text file attachment?

2. Before the dump, overall system performance is normal? if it is yes, no need to increase the memory values. check the transaction code ST02 SAP memory & buffer parameters.

3. You have to fine-tune the batch program to pull the 8 million data from SAP

Regards

Sriram

dudmswl77
Explorer
0 Kudos

Category Resource bottleneck

Runtime Errors

TSV_TNEW_PAGE_ALLOC_FAILED Date and Time2021.05.0205:03:23

Short Text

No more memory available to add rows to an internal table.

어떤 문제가 발생했습니까?

An attempt was made to add rows to an internal table. There was no memory available for this however.

대응책은 무엇입니까?

Note which actions and entries caused the error to occur.

Consult your SAP administrator.

Using transaction ST22 for ABAP dump analysis, you can view, manage,

and retain termination messages for longer periods.

Try to find out (using specific data selection for example) whether the

transaction will run with less main memory.

If the problem is due to a temporary bottleneck, run the transaction

again.

If the error persists, ask your system administrator to check the

following profile parameters:

o ztta/roll_area (1.000.000 - 15.000.000) classic roll area

per user and internal session o ztta/roll_extension (10.000.000

- 500.000.000) available memory/user in extended memory

EM o ztta/max_memreq_MB maximum size of an individual memory request

(in MB) o abap/heap_area_total (100.000.000 - 1.500.000.000)

available memory (malloc) for all users of an application server. If

several background processes are running on one server, temporary

bottlenecks can occur. Of course, the amount of memory (in bytes) must

also be available on the machine (main memory or file system swap).

Caution:

The operating system must be set up so that there is also enough memory

for each process. Usually, the maximum address space is too small.

Ask your hardware manufacturer or your competence center about this.

o abap/heap_area_dia: (10.000.000 - 1.000.000.000)

restriction of the memory that can be allocated to the heap with malloc

per dialog process.

Parameter for background processes:

o abap/heap_area_nondia: (10.000.000 - 1.000.000.000)

restriction of the memory that can be allocated to the heap with malloc

per background process.

Other memory-relevant parameters are:

o em/initial_size_MB: (35 - 1200)

Extended memory area from which all users of an application server can

meet their memory needs.

o abap/shared_objects_size_MB:

Size of the shared memory area that can be used to save shared objects

area instances. This memory area is global for all users of the

application server.

오류분석

No more rows could be added to internal table

"\PROGRAM=ZMMCR6014\FORM=GET_COLLECT_DATA\DATA=LT_TAB". To make

troubleshooting possible, the table had to be deleted before this log

could be compiled. This means that the table will either be displayed

further down or, if you call the ABAP Debugger from here, with 0 rows.

When the program was terminated, the internal table had the following

characteristics:

Memory location: Session memory

Row width: 784

No. of rows: 10380028

Allocated rows: 10380028

Newly requested rows: 16 (in 1 blocks)

오류수정방법

The amount of memory (in bytes) used at termination time was:

Roll area...................... 0

Extended memory (EM) 4001008232

Assigned memory (HEAP) 4194930864

Short area.....................

Paging area.................... 40960

Maximum address space.......... 18446744073709551615

If the error occurs in a non-modfied SAP program, you might be able to

find a solution in the SAP Notes system. If you have access to the SAP

Notes system, check there first using the following keywords:

"TSV_TNEW_PAGE_ALLOC_FAILED"

"ZMMCR6014" bzw. ZMMCR6014F01

"GET_COLLECT_DATA"

If you cannot solve the problem yourself, please send the following

information to SAP:

1. This description of the problem (short dump)

To do this, choose System -> List -> Save -> Local File (unconverted)

on the screen you are in now.

2. A suitable system log

To do this, call the system log in transaction SM21. Restrict the time

interval to ten minutes before the short dump and five minutes after

it. In the display, choose System -> List -> Save -> Local File

(unconverted).

3. If these are programs of your own, or modified SAP programs: Source

code of these programs

To do this, choose More Utilities -> Upload/Download -> Download in

the Editor.

4. Details regarding the conditions under which the error occurred or

which actions and input caused the error.

시스템환경

SAP Release..... 750

SAP Basis level 0006

Application server... scitnerpdb2

Network address...... 10.253.42.220

Operating system... Linux

Release.............. 3.10.0-514.el7.x86_6

Hardware type....... x86_64

Character length..... 16 Bits

Pointer length........ 64 Bits

Work process number... 45

Shortdump setting. full

Database server... scitnerpdb1

Database type..... ORACLE

Database name..... SCP

Database user ID SAPSR3

Terminal..........

Character set C

SAP kernel....... 745

Created on....... Jan 23 2017 16:12:28

Created at....... Linux GNU SLES-11 x86_64 cc4.3.4 use-pr170123

Database version OCI_112, 12.1.0.2.0, V2, default

Patch level....... 400

Patch text.......

Database............. ORACLE 11.2.*.*.*, ORACLE 12.*.*.*.*

SAP database version. 745

Operating system... Linux

Memory consumption

Roll.... 0

EM...... 4001008232

Heap.... 4194930864

Page.... 40960

MM used. 8180281440

MM free. 8806376

사용자, 트랜잭션...

Client................. 100

User.................. SIWJ08

Language key.......... 3

Transaction.........

Transaction ID...... 608D895AB25AFA1BE10000000AFD2ADC

EPP whole context ID...... 506B8DFB84981EEB82A4035C53636D96

EPP connection ID........ 00000000000000000000000000000000

EPP call counter......... 0

Program.............. ZMMCR6014

Screen.............. SAPMSSY0 1000

Screen line.......... 6

Active debugger..... "none"

종결이 발생한 곳에 관한 정보

The termination occurred in ABAP program or include "ZMMCR6014", in

"GET_COLLECT_DATA". The

main program was "ZMMCR6014".

In the source code, the termination point is in line 843 of program or

include "ZMMCR6014F01".

Program "ZMMCR6014" was started as a background job.

Job name....... [BI] 재고 검증

Job initiator.. SIWJ08

Job number...... 04591000

소스코드추출

Line SourceCde

813 * INNER JOIN KONP AS C

814 * ON A~KNUMH = C~KNUMH

815 * WHERE A~KAPPL = 'V'

816 * AND A~KSCHL = 'ZPR0' " 정상가

817 * AND A~VKORG = '1000'

818 * AND A~DATBI >= SY-DATUM

819 * AND A~DATAB <= SY-DATUM.

820 * SORT GT_REGC2 BY MATNR.

821

822 "-- 일자별 재고 현황 조회

823 REFRESH GT_OUTTAB.

824 IF P_BUDAT = SY-DATUM.

825 PERFORM COLLECT_DATA USING '2'.

826 ENDIF.

827

828 CLEAR : LT_TAB, LT_TAB[].

829 LT_TAB[] = GT_OUTTAB[].

830

831 CLEAR : GT_OUTTAB[], GT_OUTTAB[].

832

833 IF P_NOZERO IS INITIAL.

834 SELECT * APPENDING CORRESPONDING FIELDS OF TABLE LT_TAB

835 FROM ZMMCT6014

836 WHERE MATNR IN SO_MATNR

837 AND MTART IN SO_MTART

838 AND ZZBRAND IN SO_BRAND

839 AND WERKS IN SO_WERKS

840 AND LGORT IN SO_LGORT

841 AND BUDAT <= P_BUDAT.

842 ELSE.

>>>>> SELECT * APPENDING CORRESPONDING FIELDS OF TABLE LT_TAB

844 FROM ZMMCT6014

845 WHERE MATNR IN SO_MATNR

846 AND MTART IN SO_MTART

847 AND ZZBRAND IN SO_BRAND

848 AND WERKS IN SO_WERKS

849 AND LGORT IN SO_LGORT

850 AND BUDAT <= P_BUDAT

851 AND ( LABST <> 0 OR INSME <> 0 OR SPEME <> 0 ).

852 ENDIF.

dudmswl77
Explorer