MEMORY_NO_MORE_PAGING¶
The SAP system's roll and paging area is exhausted.
The system could not allocate more pages in the central roll/paging memory pool shared across all work processes. This is distinct from TSV_TNEW_PAGE_ALLOC_FAILED, which is per-work-process heap exhaustion.
Symptom¶
ST22 shows:
This dump often affects multiple users simultaneously — if several sessions dump at the same time with this error, it is a system-level resource problem, not a single program bug.
Cause¶
The roll/paging area (rdisp/PG_MAXFS parameter) holds context data for user sessions that are rolled out of a work process (between screen steps, RFC calls, etc.). It fills up when:
- Too many concurrent user sessions hold large amounts of context data.
- Programs keep extremely large local variables or internal tables in memory across screen interactions.
- Long-running transactions that accumulate context without releasing it.
- A sudden spike in concurrent users exceeding the configured pool size.
Roll area vs heap area
TSV_TNEW_PAGE_ALLOC_FAILED = work-process local heap (individual program used too much memory).
MEMORY_NO_MORE_PAGING = the shared roll/page pool (systemic — affects all users).
Fix¶
Immediate (operational)¶
- Check SM50 — identify work processes consuming the most roll memory.
- Cancel long-running or stuck sessions from SM50 (
Process → Cancel with Core). - Ask Basis to check and if necessary increase
rdisp/PG_MAXFSin the instance profile (requires restart).
Code-level fixes¶
" Free large internal tables when no longer needed
CLEAR lt_large_table.
FREE lt_large_table.
" Use PACKAGE SIZE to avoid holding all data in memory at once
SELECT * FROM bkpf
INTO TABLE @DATA(lt_chunk)
PACKAGE SIZE 5000.
" process chunk
ENDSELECT.
Design-level fixes¶
- Move bulk processing to background jobs — background WPs have separate memory pools and don't compete with dialog sessions for roll space.
- Avoid keeping large result sets alive across multiple screen steps; re-query as needed instead.
- Use
FREEon large tables as soon as they are no longer needed in long-running transactions.
This dump is often a Basis issue, not a code bug
If this dump occurs sporadically under high load but the program itself runs fine normally, the root cause is system sizing — escalate to Basis for profile parameter review.
Prevention¶
- Design dialog programs to minimize data kept in memory between PAI and PBO (use the database as the store, not internal tables in global memory).
- Use background jobs for operations that require large memory footprints.
- Monitor roll area usage with ST02 (Buffer Statistics → Roll area utilization).
See also¶
TSV_TNEW_PAGE_ALLOC_FAILED— per-work-process memory exhaustionTIME_OUT— related dump from long-running processes- Transaction SM50 — work process monitor
- Transaction ST02 — buffer statistics
- Transaction ST22 — ABAP runtime error analysis