Storage categories

When you are running with the storage protection facility active, there are two types of storage in which you can run application programs: CICS-key storage and user-key storage.

CICS-key storage
Used for most CICS system code and control blocks and, at the discretion of the installation, other code, and data areas that require protection from overwriting.

In a CICS region with transaction isolation active, a CICS-key program has read/write access to CICS-key and user-key storage.

User-key storage
Used for most application programs and their data areas.
There are two associated execution modes:
  1. Many CICS system programs run in CICS key. A program running in CICS-key has read-write access to both CICS-key and user-key storage.
  2. Application programs normally execute in user key. A program running in user-key has read-write access to user-key storage, but only read access to CICS-key storage.

The terms user key and CICS key therefore apply both to categories of storage and to the execution of programs. These terms are reflected in the resource definition keywords used in TRANSACTION definitions. See Define FILE attributes for more information.

The execution key controls the type of access your application programs have to CICS-key storage. The default is that application programs are given control in user key. Define CICS key only for those programs where it is essential that they execute in CICS key. The programs you might select to run in CICS key are typically those that are written by system programmers, and designed to provide special function in support of user applications. Such programs are considered to be an extension of CICS rather than part of an application. Some examples of such programs are described in CICS-key applications.

The storage protection facility does not protect CICS-key code and control blocks from being overwritten by programs that you choose to run in CICS key.

Defining the execution key

To run your programs in CICS key, you use the execution key parameter (EXECKEY) on the program resource definition. See Selecting the execution and storage key for an explanation of EXECKEY. The EXECKEY parameter determines the key in which CICS passes control to an application program.