Previous Topic: Storage, Scratch, and Queue ManagementNext Topic: User Storage


Using Storage Pools

To facilitate online programming and intertask communication, CA IDMS provides storage management functions that allow you to acquire space explicitly in storage pools.

These functions control allocation of variable storage in a CA IDMS storage pool or work area. Shared by system and user programs, the storage pool also contains space for buffers and initial storage areas (ISAs) used by Assembler and PL/I programs.

Note: All variable-storage entries (except COBOL LINKAGE SECTION and PL/I BASED storage entries) defined by your program are acquired automatically from the CA IDMS storage pool when the program starts and released automatically when the program ends.

Using CA IDMS storage management functions, you can:

Types of Acquired Storage

You must specify whether the acquired storage is available to other users:

TCE and CSA Ownership

Shared storage is linked to both the TCE and CSA; user storage is linked only to the TCE, as the figure below shows.

┌─────────┐                  ┌───────────┐
│         │ STORAGEID='WRK1' │           │
│  TCE    │ Shared           │    CSA    │
│ (Task1) │                  │           │
│         │                  └─┬─────────┘
│         ├────────────────┐   │                    Storage pool
└─────────┘                │   │    ┌───────────────────────────────────────────┐
                           │   │    │                                           │
                           │   │    │                                           │
                           │   │    │                                           │
┌────────┐                 │   └────►─────────┐                                 │
│        │ STORAGEID='WRK2'└────────►  WRK1   │                                 │
│  TCE   │ User                     ├─────────┴──────────┐                      │
│ (Task2)├──────────────────────────►  WRK2              │                      │
│        │                          ├────────────────────┘                      │
│        │                          │                                           │
└─────────┘                         └───────────────────────────────────────────┘

Kept Storage

If you require that storage remain allocated after a task ends, it should be assigned the KEEP attribute when it is initially allocated. Kept storage is associated with the logical terminal on which the task is executing and with the task itself; such storage can be released only through a program request.

Releasing Storage

When storage is explicitly released or a task terminates, CA IDMS releases linkage to the TCE.

For a quick reference of storage release procedures and conditions, see Storage Pool Summary.

'User storage only'. You can explicitly release all or a part of user storage. For a partial release, TCE linkage and the KEEP attribute remain unaffected.