The memory request for 8192 bytes could not be complied with.
dump产生的原因为内存不足,考虑从两方面解决,调整内存参数和减少内存使用。
如果标准程序发生该dump或者的确需要调整内存可查找对应notes或者联系basis,自定义程序可以考虑从程序优化上入手。
2. 语法使用,比如避免SELECT * , data(2048) type c 等冗余的数据定义(同样适用于 dump TSV_TNEW_PAGE_ALLOC_FAILED)
此处针对 data(2048) type c的数据定义来做解释,该声明属于过时语法,释义如下:
demo测试,如下代码,由于该声明会使用空格填充未到4096长度的部分,会占用过多空间,导致SYSTEM_NO_ROLL 的dump
TYPES: BEGIN OF ty_f1,
data(4096) TYPE c,
END OF ty_f1.
DATA: gs_f1 TYPE ty_f1,
gt_f1 TYPE TABLE OF ty_f1,
lv_lines TYPE i.
DO 750000 TIMES.
gs_f1-data = sy-index.
gs_f1-data = gs_f1-data && 'QWERTYUIOPASDFGHJKLZXCVBNM'.
APPEND gs_f1 TO gt_f1.
CLEAR gs_f1.
ENDDO.
lv_lines = lines( gt_f1 ).
WRITE:/ lv_lines.
稍作调整,会导致TSV_TNEW_PAGE_ALLOC_FAILED的dump
TYPES: BEGIN OF ty_f1,
data(4096) TYPE c,
END OF ty_f1.
DATA: gs_f1 TYPE ty_f1,
gt_f1 TYPE TABLE OF ty_f1,
lv_lines TYPE i.
DO 750000 TIMES.
gs_f1-data = sy-index && 'QWERTYUIOPASDFGHJKLZXCVBNM'.
APPEND gs_f1 TO gt_f1.
CLEAR gs_f1.
ENDDO.
lv_lines = lines( gt_f1 ).
WRITE:/ lv_lines.
3259122 - SYSTEM_NO_ROLL - Troubleshooting
2755770 - The memory request for bytes could not be complied with
2715282 - SYSTEM_NO_ROLL dump when restoring Environment - BPC NW