How it works: SOS wait feature
If a CICS® task requires a new open TCB, processing of this CICS task is subject to the availability of unallocated storage in the z/OS® user region storage and extended user region storage in the CICS address space. When a short-on-storage (SOS) condition occurs in the z/OS user region storage or extended user region storage, by default CICS suspends tasks if they require a new open TCB. Tasks that only use CICS managed storage (most tasks) are not affected.
The SOS wait feature is enabled by default, but you can choose to turn it off. For details, see Setting up the CICS SOS wait feature.
How CICS handles a task that requires a new open TCB
If a CICS task needs to obtain a new open TCB, CICS first checks unallocated storage in the z/OS user region storage and extended user region storage, and determines whether one or more of the SOS thresholds has been breached. The SOS thresholds are the same thresholds used by the CICS z/OS storage monitor system task. See Monitoring unallocated z/OS storage for CICS and Setting up for CICS monitoring of unallocated z/OS storage for details about the SOS thresholds.
If either the z/OS user region storage or the extended user region storage is found short on storage, CICS suspends the user task. The suspended task has a wait state of MVS_Stor and is added to an SOS waiter queue. The task is allowed to continue when the SOS condition has been resolved. The suspended task can be purged and is eligible for DTIMEOUT.
The performance class monitoring field SMMVSSWT of the affected user task has a nonzero value.
How CICS handles suspended tasks in the SOS waiter queue
CICS periodically resumes the last task in the SOS waiter queue to determine whether the z/OS user region storage or extended user region is still short on storage. If the SOS condition is resolved, the task is removed from the SOS waiter queue and allowed to continue. If the SOS condition persists, the task is suspended again.
This process continues until there are no tasks remaining in the SOS waiter queue.
Suspended tasks are also removed from the SOS waiter queue if they are purged or time out due to DTIMEOUT.
When the first task is added to the waiter queue because of SOS conditions in the z/OS user region storage or extended user region storage, the SOS messages are issued if the CICS z/OS storage monitor system task has not already issued them.
Considerations
Suspending a task because of SOS conditions in the z/OS user region storage or extended user region storage can prevent the CICS address space from running out of z/OS storage. However, this approach can also cause problems; for example, the suspended task might be holding an enqueue, which prevents other task from completing, and this will cause work to queue up.
If this behavior is not desirable, you can disable the SOS wait feature by following the instructions in Setting up the CICS SOS wait feature.