Data spaces for shared data tables

The data table records are stored in one or more MVS data spaces, whether the data table is to be shared by more than one region or not. A separate set of data spaces is used for each CICS® region.

Table-entry descriptors, backout elements, and index nodes are stored in 64-bit storage. An initial data space DFHDT001 (for up to 2 GB of record data) is obtained when the first file that is defined as a data table is opened in the region. Additional data spaces from DFHDT002 upwards may be allocated as necessary for record data, up to a maximum of 100 data spaces per region. The data spaces are used by all the CICS data tables that are owned by that region, and are retained until the CICS region is shut down.

Each data space has a maximum size of 2 GB, so the maximum amount of data space storage which a CICS region could allocate (assuming sufficient operating system resources) is 200 GB. The MVS exit IEFUSI, which can be used to control the total amount of data space that a given address space may own, can reduce the maximum size to less than this amount, and even to less than 2 GB. Within this limit, CICS allocates data space storage in units of 16 MB, and then sub-allocates this storage to the data tables in increments of 128 KB for record data. If a new storage increment is needed for a data table but all the existing data space storage is already allocated to tables, CICS tries to extend the data space by 16 MB. If the data space is for record data but has already reached its maximum size of 2 GB, and the maximum number of data spaces has not been reached, then, instead of extending the existing data space, CICS creates a new data space which is treated as a logical extension of the existing set of data spaces.

If a data space is full, any shared data table requests that need additional storage fail because of insufficient storage. For a CICS-maintained data table, this means that any future reads for the affected records (including any approximate reads near to that key) must access the VSAM data set, using function shipping if the request is not issued from the file-owning region. For a user-maintained data table, this means that the record cannot be written to the table. Developing for access to data tables has information about the response returned in this situation.

CICS does not provide a facility for viewing the current total amount of allocated data space storage. However, CICS file control statistics can give an accurate indication of the storage allocated and used for each data table. In particular, the field A17DTALD contains the amount of data space storage (in KB) that is currently allocated to the table.

The data space storage that is used by the data table is freed when the file is closed in the FOR. This storage is made available for reuse in such a way that the integrity of any AOR that was using the data table is protected.