This document is intended to clarify how is "Critical Number" value updated on SM56 buffer.
What does “Main Memory buffering” method mean?
When object has buffering type: 'Main memory buffering', with size 10 (for example); that means that 10 numbers will be stored on SM56 buffer from each application server, to be given when required from application.
When a number is requested for the first time from an specific interval (after the application server is started), instead of a single number, a whole package of numbers (in this case, 10) is immediately loaded from this interval into the main memory (SM56 buffer).
The numbers used, which is defined by “NR Status” field from NRIV table for this interval, increases by the corresponding number.
When a program/application running on that instance requests a number, number is given from the available numbers on the buffer, it does not access table NRIV.
What does % Warning mean?
Warning (%): defines the percentage of the numbers remaining in the range. When Number Range functionality is called, a different return code is given based on remaining number.
There’s one report that can be used to check which intervals are already over their defined ‘warning %’ level, RSNUMHOT.
2292041 - Number Range: Monitoring intervals over critical number (warning %)
For this particular example, range 01 goes From Number 001 to Number 1000.
Object has defined “Main Memory” buffering method and Warning:10%.
Last given number was NR Status: 537
If we check information stored on SM56 buffer, we can see that:
- Status: last given number to application was number 528
- Buffer to No: As object has “Main memory buffering (size 10)”, 10 numbers are stored on SM56 buffer to be given to application. So, last available number to be given is 537
- Critical Number: This number is calculated based on defined %Warning. As interval goes from 0001 to 1000; and warning is set to 10%, over this value (900) a warning will be raised.
How can be % Warning changed?
If we change Warning(%) value from 10% to 5%, critical number should be adjusted to 950.
But, taking a new number (we get 529), SM56 buffer shows same “Critical Number”:
Issue can be solved with buffer reset.
(SM56 > More > Goto > Number Range Buffer > Reset > <object name>).
A new set of 10 numbers will be buffered (Buffer to No shows 547); and “Critical Number” is correctly updated to 950 (5% of the interval range 0001-1000).