Defining the temporary storage data set

To define a VSAM data set for auxiliary temporary storage, as a single extent data set on a single volume, you can use the sample job shown in Figure 3.

Alternatively, you can run the CICS-supplied job DFHDEFDS (in CICSTS31.XDFHINST), to create the DFHTEMP data set as one of the data sets for a CICS® region. For information about the DFHDEFDS job, see the CICS Transaction Server for z/OS® Installation Guide.

Notes:
  1. You must not define any extra associations for a temporary storage data set. (Do not, for example, define a PATH.) Doing so causes CICS startup to fail.
    Figure 3. 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(CICSTS31.CICS.CNTL.CICSqualifier.DFHTEMP)-
              RECORDSIZE(4089,4089)            -                       1 
              RECORDS(200)                     -
              NONINDEXED                       -
              CONTROLINTERVALSIZE(4096)        -
              SHAREOPTIONS(2 3)                -
              VOLUMES(volid))                  -
            DATA(NAME(CICSTS31.CICS.CNTL.CICSqualifier.DFHTEMP.DATA) -
              UNIQUE)
    /*
  2.  1  The RECORDSIZE value must be 7 bytes less than the CONTROLINTERVALSIZE. See Space considerations for information about calculating the control interval size.

  3. Do not allocate the DFHTEMP data set from an SMS data class using extended addressability. CICS does not support this.

Using multiple extents and multiple volumes

The job control statements in Figure 3 are for a single-extent data set defined on a single volume. That data set must be big enough to hold all your data. Instead of defining one data set, which might have to be much larger than your average needs to cater for exceptional cases, you can define multiple extents and multiple volumes. For more information about defining these, see Multiple extents and multiple volumes.

Space considerations

The amount of space allocated to temporary storage is expressed in two values that you must specify:

  1. The control interval size
  2. The number of control intervals in the data set

The control interval size

You specify the control interval size with the CONTROLINTERVALSIZE parameter in the VSAM CLUSTER definition. Because a control interval contains one or more temporary storage records, take the temporary storage record size into account when choosing the control interval size. The following factors affect your choice:

Example

If you use BMS to write a 24 x 80 character screen to temporary storage, the data written occupies 1920 bytes. You need 36 bytes for the CICS temporary storage header, giving a total of 1956 bytes. Rounding this up to a multiple of 64 gives 1984 bytes. Finally, adding a further 64 bytes of VSAM control information gives a control interval size of 2048 bytes. Typically, the CI size is larger than this, to hold several records possibly differing in size.

Number of control intervals

VSAM uses the RECORDS and RECORDSIZE operands to allocate enough space for the data set to hold the number of records of the specified size. You must code the same value for the two operands of the RECORDSIZE parameter (the average and maximum record sizes), and this value must be 7 bytes less than the CONTROLINTERVALSIZE. In this way, the specified number of VSAM records matches the number of control intervals available to temporary storage management. You thus specify, indirectly, the number of control intervals in the temporary storage data set. (Note that the RECORDS and RECORDSIZE parameters do not correspond to the temporary storage records as seen at the CICS temporary storage interface.)

The number of control intervals to be allocated depends on user and system requirements for temporary storage, up to the maximum number permitted of 65 535.

Number of VSAM buffers and strings

You can use the TS system initialization parameter to specify the number of CICS temporary storage buffers up to the maximum of 32 767. The number of buffers that you specify may have an effect on CICS performance, as described in Performance considerations of TS and TD buffers. You should specify a value to suit your CICS region. If you specify TS=(,0), requests for auxiliary temporary storage are executed using main storage.

Job control statements for CICS execution

The DD name required by the temporary storage data set is DFHTEMP. For a CICS execution, you need a data definition statement for DFHTEMP in the startup job stream, such as:

//DFHTEMP  DD  DSN=CICSTS31.CICS.applid.DFHTEMP,DISP=SHR

XRF considerations

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.

[[ Contents Previous Page | Next Page Index ]]