MAXROLL - Number of CMROLL Calls before Session Suspension

#### Search Results

Search

# MAXROLL - Number of CMROLL Calls before Session Suspension

It specifies the number of `CMROLL` calls after which a Natural session is suspended, that is, a potential roll-out of the Natural thread is to be performed.

Possible settings | `1 - 32767` | Number of `CMROLL` calls.
`0` | `MAXROLL=0` indicates that no conditional `CMROLL` requests are issued.
Default setting | `128` |
Dynamic specification | yes |
Specification within session | no |

Notes:

1. This Natural profile parameter is applicable only under Com-plete and CICS.
2. The `MAXROLL` parameter can be used to control the frequency of conditional `CMROLL` requests. For example, `MAXROLL=128` means that a conditional `CMROLL` request is issued after every 128th statement at compilation.
3. In certain cases, the Natural nucleus issues a conditional `CMROLL` request (wait time = 0), particularly at compilation after each statement. This is done to reset the CPU time window (under Com-plete) in order to avoid an automatic cancel due to the CPU time limit being exceeded; however, this has a negative impact on performance.
4. Note concerning CMROLL: Calling `CMROLL` is the Natural interface for `WAIT` or `DELAY` functionality (see also sample Natural program `SUSPEND` in library `SYSEXTP`); when calling `CMROLL`, you may pass a delay interval/wait time as parameter. When a session has to wait in `CMROLL`, shared resources as a thread in Com-plete or a shared thread in CICS (`THREADS=nonzero`) are released, and as a consequence a potential roll-out of the Natural thread is performed. Calling `CMROLL` with a delay interval of 0 is called conditional, as the session actually needs not wait for a certain time; however, when other sessions are waiting for a thread, the session is suspended, which may result in a roll-out of the Natural thread. In CICS if no other session is waiting, just an `EXEC CICS SUSPEND` is executed to prevent AICA abends.