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.