on 2021 May 03 4:29 AM
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 ?
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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?
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,,,?
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.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
User | Count |
---|---|
68 | |
10 | |
8 | |
7 | |
6 | |
6 | |
6 | |
6 | |
6 | |
5 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.