Types of Subpools
There are three types of subpools you can create:
| Subpool | Description | Exists until: |
|---|---|---|
| PRIVATE | Satisfy only the subpool creator's requests for
free storage. A program can do any manipulations it wants to a PRIVATE
subpool without affecting other programs.
Only one PRIVATE subpool with the same name can be active at a time; therefore, a single program can create several subpools with the same name. When CMS activates a new PRIVATE subpool with the same name as an existing subpool, it pushes the previous subpools back on the LIFO stack. When CMS deletes the current subpool, the previous one is popped from the stack and becomes active again. |
|
| SHARED | Allow you to share free storage or data with other programs. Unlike PRIVATE subpools, SHARED subpools can be used by any program that the subpool creator calls, or that the called program calls, and so on. For example, assume PROGA creates a SUBPOOL named MINE. PROGA calls PROGB, PROGB calls PROGC, and PROGC calls PROGD. All of the programs in the calling chain (PROGA, PROGB, PROGC, and PROGD) can request free storage from MINE. |
|
| GLOBAL | Allow you to organize storage by its intended
function (any program running in the virtual machine can use a global
subpool) and to save data across program invocations (GLOBAL subpools
still exist after SVC 202/CMSCALL termination).
To retain GLOBAL subpools during abend recovery, specify SYSTEM=YES on the SUBPOOL macro. Using storage from GLOBAL subpools is useful when you create nucleus extensions that must retain data across invocations or abend processing. |
|