Skip to Content
0
Aug 11, 2008 at 02:33 PM

Memory consumption of internal sessions

442 Views

While analyzing the memory consumption of some reporting transactions (e.g. MB51, SDO1, FBL5N, ...) with transaction SM04 (-> goto Memory -> goto Memory (Session Details) -> goto Memory (I-Session Details)) I found the following behaviour on performing the following steps:

Step 1: Call reporting transaction (for example MB51)

SM04 Memory (I-Session Details) shows the following memory allocation:

int. session 1: MB51 - e.g. 2.500.000 bytes (probably from SAP Easy-Access

menu)

int. session 2: MB51 - e.g. 500.000 bytes (memory requirements of the MB51 selection screen)

Step 2: Perform selection of some data with MB51

SM04 shows the following memory allocation:

int. session 1: MB51 - e.g. 2.500.000 bytes (same as before)

int. session 2: MB51 - e.g. 6.000.000 bytes (memory requirements of the MB51 data)

Step 3: Go back to the MB51 selection screen with the back-button

SM04 shows the following memory allocation:

int. session 1: MB51 - e.g. 2.500.000 bytes (same as before)

int. session 2: MB51 - e.g. 6.000.000 bytes (same as before: memory requirements of the MB51 data from the first selection?)

new int. session 3: MB51 - e.g. 500.000 bytes (new session for the selection screen?)

Step 5: Perform another selection (with same or different selection criteria - it doesn't matter)

SM04 shows the following memory allocation:

int. session 1: MB51 - e.g. 2.500.000 bytes (same as before)

int. session 2: MB51 - e.g. 6.000.000 bytes (same as before: memory requirements of the MB51 data from the first selection?)

int. session 3: MB51 - e.g. 6.000.000 bytes (memory requirements of the MB51 data from the current selection?)

If I repeat the last two steps (go back and reselect) a few more times, the internal session number 3 releases and reallocates its memory depending on the amount of data selected/released. This is the behaviour I expected.

The question is, why the data of the first selection remains in the int. session 2 and still uses the memory there?

Is there any sense in opening a third int. session at step 3 and preserving session 2? Why is the memory of the selected data in session 2 not released when going back to the selection screen. This memory area remains allocated until I leave the transaction and so it may lead to situations where users allocate twice as much memory than they are aware of.

Thanks for any help, hints and explanations!