Defining the auxiliary temporary storage data set

You can either define a VSAM data set for auxiliary temporary storage as a single extent data set on a single volume using the sample job described here, or use the CICS-supplied job DFHDEFDS. DFHDEFDS creates the DFHTEMP data set as one of the data sets for a CICS region.

About this task

You must not define any extra associations for a temporary storage data set. For example, do not define a PATH. Doing so causes CICS startup to fail. Do not allocate the DFHTEMP data set from an SMS data class using extended addressability because CICS does not support this.

Procedure

  1. Consider adding multiple extents and multiple volumes for the data set.
    The sample job produces a single-extent data set defined on a single volume, but you might experience channel and arm contention if auxiliary temporary storage is used heavily.
    To use DASD space more efficiently, you could define the DFHTEMP data set with a primary extent large enough for normal activity, and with secondary extents for exceptional circumstances, such as unexpected peaks in activity.
    For instructions to define further extents or volumes, see Defining data sets with multiple extents and volumes.
  2. Optional: If you want to encrypt the data set, see Encrypting data sets.
  3. Specify a RECORDSIZE value that is 7 bytes less than the CONTROLINTERVALSIZE.
    You must specify the amount of space for temporary storage in two values:
    1. The control interval size. See Control interval size for auxiliary temporary storage for information about how to calculate the space.
    2. The number of control intervals in the data set. See Number of control intervals for auxiliary temporary storage for information about how to set the correct number of control intervals.
  4. Add a data definition statement for the DFHTEMP data set to the startup job stream.
    The temporary storage data set is a passively shared data set, owned by the active CICS region, but allocated to both the active and alternate CICS regions. Although the alternate CICS region does not open this data set before takeover, it is allocated at job step initiation, so you must specify DISP=SHR on the DD statement to enable the alternate CICS region to start.
    //DFHTEMP  DD  DSN=CICSTS54.CICS.applid.DFHTEMP,DISP=SHR

Example

Figure 1. Sample job defining an auxiliary temporary storage data set
//DEFTS    JOB accounting info,name
//AUXTEMP  EXEC PGM=IDCAMS
//SYSPRINT DD  SYSOUT=A
//SYSIN    DD  *
   DEFINE CLUSTER(NAME(CICSTS54.CICS.CNTL.CICSqualifier.DFHTEMP)-
          RECORDSIZE(4089,4089)            -                      
          RECORDS(200)                     -
          NONINDEXED                       -
          CONTROLINTERVALSIZE(4096)        -
          SHAREOPTIONS(2 3)                -
          VOLUMES(volid))                  -
        DATA(NAME(CICSTS54.CICS.CNTL.CICSqualifier.DFHTEMP.DATA) -
          UNIQUE)
/*

What to do next

Use the TS system initialization parameter to specify an appropriate number of VSAM buffers and strings for auxiliary temporary storage. CICS uses each VSAM buffer to make a control interval from DFHTEMP available in CICS storage, and uses a VSAM string for each VSAM I/O request between a buffer and DFHTEMP. Typically, the default setting of three buffers and three strings is sufficient. For information about the performance considerations, see Auxiliary temporary storage: monitoring and tuning.