Improving startup procedure

Because various configurations are possible with CICS®, different aspects of the startup might require attention.

About this task

You can define and tune aspects to improve startup performance. For more information about the CICS startup procedures and CICS system initialization, see CICS startup.

Procedure

  1. Define the following items:
    1. The global and local catalogs
    2. The CICS system definition data set (CSD)
    3. The temporary storage data sets or transient data intrapartition data sets
    For details on how to define each data set, see Defining data sets.
  2. When defining your terminals, pay attention to the position of group names within the GRPLIST. If the group containing the TYPETERMs is last, all the storage used for building the terminal definitions is held until the TYPETERMs are known. This might cause your system to go short on storage.
    Groups in the GRPLIST in the system initialization table (SIT) are processed sequentially. Place the groups containing the model TERMINAL definitions followed by their TYPETERMs in the GRPLIST before the user transactions and programs. This process minimizes the virtual storage that is tied up while CICS is processing the installation of the terminals.
    Note: All terminals are installed, even surrogate terminal control table (TCT) entries for MRO.
    You must ensure that the DFHVTAM group precedes any TERMINAL or TYPETERM definition in your GRPLIST. The DFHVTAM group is contained in the DFHLIST group list, so adding DFHLIST first to your GRPLIST ensures that the condition is met. If you do not add DFHLIST, the programs used to build the TCT are loaded for each terminal, thus slowing initial and cold starts.

    Do not have more than 100 entries in any group defined in the CSD. If you have too many entries, this might cause unnecessary overhead during processing, and make maintenance of the group more difficult.

  3. Enure that changing the START parameter does not change the default for any facilities that your users do not want to have auto-started. Any facility that you might want to override can be coded in the PARM on the EXEC statement, or all of them can be overridden by specifying by specifying the ALL option for the START parameter.
  4. If you do not intend to use CICS web support or the Secure Sockets Layer, ensure that TCPIP=NO is specified in the SIT. If TCPIP=YES is specified, the Sockets domain task control block is activated.
  5. Tune the VSAM parameters of the local and global catalogs to suit your installation:
    1. Control interval (CI) sizes should be changed for optimum data and DASD sizes (see Local shared resources (LSR) or nonshared resources (NSR) for more information). In most cases 2KB index CI, and 8 KB or 16 KB data CI, are suitable sizes.
    2. You can you specify the BUFNI and BUFND parameters in your JCL for the global catalog data set with the AMP parameter, rather than using BUFSPACE.
    3. Alter the number of index buffers by coding the number of strings plus the number of index set records in the index. The number of records in the index set can be calculated from IDCAMS LISTCAT information as follows:
      • T = total number of index records (index REC-TOTAL)
      • D = data control interval size (data CISIZE)
      • C = data control intervals per control area (data CI/CA)
      • H = data high-used relative byte address (data HURBA)
    4. The number of index set records can then be computed. The calculation is really the number of used control areas. The number of sequence set records must be the same as the number of used CAs.
      • The number of sequence set records: S = H / (D X C)
      • The number of index set records: I = T - S

    Do not spend time trying to tune free space as it has no effect.

    You can obtain the number of index levels by using the IDCAMS LISTCAT command against a GCD after CICS has been shut down. Because a cold start mainly uses sequential processing, it should not require any extra buffers in addition to the buffers automatically allocated when CICS opens the file.

  6. Consider whether to use the recovery manager utility program DFHRMUTL. On cold and initial starts, CICS normally deletes all the resource definition records from the global catalog. You can save the time taken to delete resource definition records by using the recovery manager utility program, DFHRMUTL. For more information, see Recovery manager utility (DFHRMUTL).
    • Before a cold start, run DFHRMUTL with SET_AUTO_START=AUTOCOLD,COLD_COPY as input parameters. This creates a copy of the global catalog data set that contains only those records needed for a cold start. If the return code from this job step is normal, you can replace the original global catalog with the new copy (taking an archive of the original catalog if you want). An example of the JCL is provided with the description of DFHRMUTL.
    • Before an initial start, run DFHRMUTL with SET_AUTO_START=AUTOINIT,COLD_COPY as input parameters, and follow the same procedure to use the resulting catalog.
  7. Allocate your DATA and INDEX data sets on different units, if possible.
  8. Consider the use of autoinstalled terminals as a way of improving cold start, even if you do not expect any storage savings. On startup, fewer terminals are installed, reducing the startup time.
  9. Set the RAPOOL system initialization parameter to a value that allows faster autoinstall rates. For more information, see Setting the size of the receive-any pool.
  10. Specify the buffer, string, and key length parameters in the LSR pool definition. Setting these parameters reduces the time taken to build the LSR pool, and also reduces the open time for the first file to use the pool.

    If you have defined performance groups for the CICS system, ensure that all steps preceding the CICS step are also in the same performance group or, at least, have a high enough dispatching priority so as not to delay their execution.

    The use of DISP=(...,PASS) on any non-VSAM data set used in steps preceding CICS reduces allocation time the next time the data sets are needed. If you do not use PASS on the DD statement, this causes the subsequent allocation of these data sets to go back through the catalog, which is a time-consuming process.

    If possible, have one VSAM user catalog with all of the CICS VSAM data sets and use a STEPCAT DD statement to reduce the catalog search time.

    Keep the number of libraries defined by DFHRPL to a minimum. One large library requires less time to perform the LLACOPY than many smaller libraries. Similar consideration should be applied to any dynamic LIBRARY resources installed at startup. You can use the shared modules in the link pack area (LPA) to help reduce the time required to load the CICS nucleus modules. For advice on how to install CICS modules in the LPA, see Installing CICS modules in the MVS link pack area.

    CICS does not load programs at startup time for resident programs. The storage area is reserved, but the program is loaded on the first access through program control for that program. This process speeds up the startup. The correct way to find a particular program or table in storage is to use the program-control LOAD facility to find the address of the program or table. If it is the first access, using the LOAD facility physically loads the program into its predefined storage location .

    The use of a program list table post initialization (PLTPI) task to load these programs is one possible technique, but you must bear in mind that the CICS system is not operational until the PLTPI processing is complete, so you should not load every program. Load only what is necessary, or the startup time might increase.