Stagger end-of-day time sample utility program (DFH$STED)

Statistics intervals can occur simultaneously across many CICS® regions in the same MVS™ image, and this can degrade performance. To prevent this, you should vary the statistics interval occurrence time for each CICS region. You can use the sample utility program, DFH$STED, to vary automatically the end-of-day time of each CICS region it is installed in, and therefore vary the interval occurrence time of these CICS regions.

For information about the end-of-day time and the system initialization parameter to set it, see Setting the statistics recording status, end-of-day time and recording interval.

The source code for DFH$STED is supplied in the hlq.SDFHSAMP samples library, and the pregenerated version is supplied in hlq.SDFHLOAD. It uses standard EXEC CICS calls to set the times and frequencies to produce SMF statistics. The program source contains extensive comments that explain how the program functions, and also includes the documented variables. You can use the sample program as is from SDFHLOAD, or:
  • Make the appropriate changes for your environment
  • Assemble the program into a library that is before SDFHLOAD in the DFHRPL concatenation
  • Include the CSD group definition for DFH$STAT into your startup group list
  • Add the sample program name to the 2nd phase list of programs in your PLTPI table

You should run the DFH$STED program in the third phase of CICS initialization (that is, during the second phase of PLT processing).

You can use the following three parameters to control how the end-of-day time is amended. These parameters are part of the source of DFH$STED. To change them, you must modify the source of DFH$STED, which is located in SDFHSAMP.

EODDRIFT
Specifies the end-of-day drift time; that is, the maximum allowable drift from the original end-of-day time.

This enables you to stagger the end-of-day time of each of your CICS regions by a pseudo-random amount (based upon the time of day at which the program is executing), up to a user-specified maximum value. Since intervals are calculated using the end-of-day as a base time, the occurrence of intervals are staggered by this pseudo-random drift time. The default is ten minutes.

EODTIME
Specifies whether the end-of-day time before amendment by the drift value should take the current value (that is, 00:00:00 if started COLD, or the value at previous CICS shutdown if AUTO or WARM started).

You should set this field to CURRENT if you need the current end-of-day time, or FIXED if you need a new end-of-day time. If you specify FIXED, you should specify the new time on the EODFIXED parameter. The default value of the EODTIME parameter is FIXED.

EODFIXED
Specifies the new logical end-of-day time, in the form hhmmss, as a hexadecimal value in the range X'000000' through X'235959'. Specify the EODFIXED parameter only if you also specify the EODTIME=FIXED parameter. When used in conjunction with a finite value of EODDRIFT, the drift value specified by the EODDRIFT parameter is applied to the new end-of-day specified by the EODFIXED parameter. When a zero value is specified for the EODDRIFT parameter, the end-of-day time is as specified for the EODFIXED parameter. The default setting is X'000000' (midnight).
Note: If a CICS region is brought up with START=AUTO on several subsequent occasions, and you specify EODTIME=CURRENT, the end-of-day time is never reset, and the drift accumulates.