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.
//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)
/*
1 The RECORDSIZE value must be 7 bytes less than the CONTROLINTERVALSIZE. See Space considerations for information about calculating the control interval size.
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.
The amount of space allocated to temporary storage is expressed in two values that you must specify:
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:
If you install BMS with 3270 support, the data length of the record is at least as large as the 3270 buffer size. For 3270 terminals with the alternate screen size facility, the data length is the larger of the two sizes.
The total number of bytes allocated for a temporary storage record (including the 36-byte header) is rounded up to a multiple of 64 (for control interval sizes less than, or equal to, 16 384), or a multiple of 128 (for larger control interval sizes).
Choose a control interval size large enough to hold the largest normally occurring temporary storage record, together with the VSAM control information. Oversize records are split across control intervals, but this might degrade performance. Control interval sizes must be multiples of 512 bytes when smaller than 8 KB and must be a multiple of 2 KB when equal to or larger than 8 KB.
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.
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.
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.
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
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 ]]