The global catalog is a VSAM key-sequenced data set (KSDS). In an XRF environment there is only one global catalog. It is shared passively between the active and the alternate CICS® regions. The global catalog is used:
For further information about what is written to the global catalog, and about how CICS uses the global catalog for startup and restart, see The role of the CICS catalogs.
Before its first use, you must define and initialize the CICS global catalog as a KSDS. You can use the sample job in Figure 13 to do this, or you can run the CICS-supplied job, DFHDEFDS, to define and initialize the global catalog as one of the data sets for the CICS region. For information about the DFHDEFDS job, see the CICS Transaction Server for z/OS® Installation Guide.
//GLOCAT JOB accounting info,,CLASS=A
//DEFGCD EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DEFINE CLUSTER -
(NAME(CICSTS31.CICS.applid.DFHGCD) - 1
INDEXED -
CYLINDERS(n1 n2) - 2
FREESPACE(10 10) -
SHAREOPTIONS(2) -
RECORDSIZE(4089 4089)
REUSE - 3
VOLUMES(volid)) -
DATA - 4
(NAME(CICSTS31.CICS.applid.DFHGCD.DATA) -
CONTROLINTERVALSIZE(8192) - 5
KEYS(28 0)) -
INDEX -
(NAME(CICSTS31.CICS.applid.DFHGCD.INDEX) )
/*
//INITGCD EXEC PGM=DFHRMUTL,REGION=1M 6
//STEPLIB DD DSNAME=CICSTS31.CICS.SDFHLOAD,DISP=SHR
//SYSPRINT DD SYSOUT=A
//DFHGCD DD DSNAME=CICSTS31.CICS.applid.DFHGCD,DISP=OLD
//SYSIN DD *
SET_AUTO_START=AUTOINIT
/*
7
Notes:
1 The data set name in the CLUSTER definition must be the same as the DSN parameter in the DD statement for the global catalog in the CICS startup job stream.
2 The primary and secondary extent sizes are shown as n1 and n2 cylinders. Calculate the size required to meet your installation’s needs, and substitute your values for n1 and n2.
Whichever IDCAMS parameter you use for the GCD space allocation (CYLINDERS, TRACKS, or RECORDS), make sure that you specify a secondary extent. CICS abends if your GCD fills and VSAM cannot create a secondary extent.
3 To enable the global catalog to be opened again and again as a reusable cluster, specify the REUSE option on the DEFINE CLUSTER command. REUSE should also be specified if you intend to use the COLD_COPY input parameter of the DFHRMUTL utility.
4 Specify a RECORDSIZE value for the global catalog. The default average and maximum record size is 4089 bytes. If your maximum record size is greater than 4089, you must specify this value instead in the sample job. For information about record sizes, see Table 14.
5 You can vary the CONTROLINTERVALSIZE from the values shown in the VSAM definition. However, although larger values reduce the number of control interval (CI) and control area (CA) splits, other factors increase CICS shutdown times, and slow down a cold start.
This job stream does not specify a BUFFERSPACE parameter, although you can code an explicit value if you want to define buffers of a specific size. BUFFERSPACE is the minimum bufferspace permitted; VSAM defaults to a bufferspace value equal to twice the CI size of the data component, plus the CI size of the index, which gives a default of 20480 bytes in the example job. A larger minimum buffer size (bufferspace) may improve cold start and warm restart times, and may significantly reduce CICS shutdown times.
Another way to define buffer space for the GCD is by means of the AMP parameter on the DD statement for the GCD in the CICS startup job stream, which you can use to override the default or defined value. (Note, however, that the BUFSP parameter defines the maximum bufferspace. If you define a BUFFERSPACE value on the AMP parameter that is smaller than the BUFFERSPACE value specified in the DEFINE statement, the BUFFERSPACE value takes precedence.
For performance reasons, CICS defines a STRNO (number of strings) value of 32. Based on the example job stream in Figure 13, the absolute minimum value of BUFSP is calculated as follows:
BUFND = (STRNO + 1)
BUFNI = STRNO
BUFSP = 33 * 8192 (BUFND * CI size) + 32 * 1536 (BUFNI * CI size) =
319488 bytes
Note: This is the smallest figure that can be used for BUFSP.
The principal factors affecting CICS startup and shutdown times are:
6 The job step INITGCD uses the recovery manager utility program, DFHRMUTL, to initialize the data set. DFHRMUTL writes a record to the data set, specifying that, on its next run using this global catalog, if START=AUTO is specified, CICS is to perform an initial start and not prompt the operator for confirmation. This record is called the autostart override record.
DFHRMUTL can also be used to override the type of start that would occur on an automatic startup, to be cold.
For full information about DFHRMUTL, and further examples of its use, see the CICS Operations and Utilities Guide.
In earlier releases of CICS, IDCAMS was used to write an initial record, using REPRO, to initialize the global catalog. Although you can still run this step, either before or after running DFHRMUTL, this practice has been replaced by the use of DFHRMUTL to initialize the global catalog. See Figure 13.
7 It is recommended that you also run the DFHCCUTL utility in this same job. Run DFHRMUTL first and check its return code before running DFHCCUTL. If you do this, the global and local catalogs should never get out of step. For information about running DFHCCUTL, see the CICS Operations and Utilities Guide.
If you need to perform a cold start, do not delete and redefine the global catalog data set. If you were to delete and redefine the global catalog, CICS would perform an initial start, and all recovery information for remote systems would be lost. When remote systems reconnected, CICS would inform them that it had lost any information that they needed to resynchronize their units of work, and messages would be produced to record the fact, on both the local and the remote systems.
Instead, to specify that the next start should be cold, use the DFHRMUTL utility with the SET_AUTO_START=AUTOCOLD option. This has the following advantages:
You can speed up a cold start by using the DFHRMUTL COLD_COPY option to copy only those records that are needed for the cold start to another catalog data set. If the return code set by DFHRMUTL indicates that the copy was successful, a subsequent job-step can copy the new (largely empty) catalog back to the original catalog data set. The performance gain occurs because, at startup, CICS does not have to spend time deleting all the definitional records from the catalog. This technique will also speed up initial starts, for the same reason. Figure 14 is an example of this technique.
//RMUTL EXEC PGM=DFHRMUTL,REGION=1M
//STEPLIB DD DSNAME=CICSTS31.CICS.SDFHLOAD,DISP=SHR
//SYSPRINT DD SYSOUT=A
//DFHGCD DD DSNAME=CICSTS31.CICS.applid.DFHGCD,DISP=OLD
//NEWGCD DD DSNAME=CICSTS31.CICS.applid.COPY.DFHGCD,DISP=OLD
//SYSIN DD *
SET_AUTO_START=AUTOCOLD,COLD_COPY
/*
// IF (RMUTL.RC<16) THEN
//* Steps to be performed if RMUTL was a success
//COPY EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=A
//DFHGCD DD DSNAME=CICSTS31.CICS.applid.DFHGCD,DISP=OLD
//NEWGCD DD DSNAME=CICSTS31.CICS.applid.COPY.DFHGCD,DISP=OLD
//SYSIN DD *
REPRO INFILE(NEWGCD) OUTFILE(DFHGCD) REUSE
/*
//* End of steps to be performed if RMUTL was a success
// ENDIF
Each global catalog record has a 28-byte key.
To estimate the amount of space needed in your global catalog to keypoint installed resource definitions, table entries, and control blocks, use the sizes specified in Table 14.
Each entry is one VSAM record, and the records for each type of table have different keys.
The space requirements for a VSAM KSDS such as DFHGCD can vary for different CICS cold starts. This can occur even if no changes have been made to the CICS definitions to be stored on the VSAM KSDS. This is because VSAM will utilize the space in the data set differently depending on whether the data set has just initialized, or has data from a previous run of CICS. CICS will call VSAM to perform sequential writes. VSAM honors the ’freespace’ value specified on the data set's definition if the keys of the records being added sequentially are higher than the highest existing key. However, if the data set contains existing records with a higher key than the ones being inserted, ’freespace’ is only honored once a CI split has occurred.
The size of the index portion of the data set may also vary depending on the number of CI and CA splits that have occurred. This affects the index sequence set.
When you are initializing the global catalog, you can use the COLD_COPY parameter, (SET_AUTO_START=AUTOCOLD,COLD_COPY). The cold copy will create a reduced copy of the global catalog data set, that will improve the performance of the cold start. The CI splits will cease after the first cold start, and the data set will not expand into additional extents. Another solution is to reorganize or reinitialize the data set from time to time.
Installed definition, table entry, or control block | Number of bytes
per entry |
---|---|
Installed PARTNER definitions | 96 bytes |
Installed program definitions | 44 bytes |
Installed indirect queue definition | 92 bytes |
Installed intrapartition queues definition | 236 bytes |
Installed extrapartition queue definition | 296 bytes |
Installed remote queue definition | 84 bytes |
Installed TRANSACTION definitions (without TPNAME) | 112 bytes |
Installed TRANSACTION definitions (with TPNAME
or XTPNAME) |
176 bytes |
Installed VSAM file (or data table) definition | 260 bytes |
Installed TRANCLASS definitions | 8 bytes |
BDAM file control table entry (FCT) | 118 bytes |
BDAM data control blocks | 112 bytes |
VSAM LSR share control blocks 1 | 1156 bytes |
Data set names (JCL or dynamically allocated) 2 | 52 bytes |
Data set name blocks | 115 bytes |
File control recovery blocks 3 | 97 bytes |
Terminal control table entry (TCT) | 1500 bytes (approx) |
Dump table entry | 48 bytes |
Interval control element (ICE) | 68 bytes |
Automatic initiator descriptor (AID) | 68 bytes |
Transient data destination record | 18 bytes |
Transient data destination auxiliary record | 6 bytes |
Installed TYPETERM definitions 4 | 582 bytes |
Installed model TERMINAL definitions 4 | 582 bytes |
Deferred work element (DWE) 5 | 80 bytes |
Installed journal | 88 bytes |
Installed journalmodel | 80 bytes |
Recovery manager remote names | 106 bytes |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
Notes:
1 One for each LSR pool, i.e. 8.
2 If you open a VSAM path you get two of these, for BDAM or VSAM base data sets you get one.
3 You will only have these if you use the VSAM RLS SHCDS option NONRLSUPDATEPERMITTED. In this case, for each data set that you have specified NONRLSUPDATEPERMITTED for, you could have an upper limit. This limit is the number of different file names through which you access the data set multiplied by the number of tasks that update the data set. You will normally only have a few, if any, of these control blocks.
4 The TYPETERM and model TERMINAL definitions are present if you are using autoinstall. They are stored directly in the global catalog when the definitions are installed, either by a CEDA transaction, or as members of a group installed through a group list. For example, if you start up CICS with the startup parameter GRPLIST=DFHLIST, the CICS-supplied TYPETERM and model terminal definitions, defined in the groups DFHTERM and DFHTYPE, are recorded in the global catalog. Allow space in your calculations for all autoinstall resources installed in your CICS region.
5 The value given is for a DWE chained off an LU6.1 session, or an APPC session.
If you define the global catalog using the sample job in Figure 13, the data definition statement for the CICS execution is:
//DFHGCD DD DSN=CICSTS31.CICS.applid.DFHGCD,DISP=OLD
This is a minimum specification for a global catalog for use by a single CICS region. Add the relevant AMP subparameters to help improve restart and shutdown time. The AMP parameter is described in the OS/390 MVS JCL Reference manual, and an example is shown in the CICS startup job stream in CICS startup.
If you are running CICS with XRF, the global catalog is passively shared by the active and alternate CICS regions, and you must specify DISP=SHR.
[[ Contents Previous Page | Next Page Index ]]