Interval control

Interval control provides various optional task-related functions based on specified intervals of time, or specified time of day.

Design overview

The following services are performed by interval control in response to a specific request from either an application program or another CICS® function:

Time of day

The EXEC CICS ASKTIME command retrieves the current time-of-day in either binary or packed decimal format.

Time-dependent task synchronization
Time-dependent task synchronization provides the user with three optional services:
  1. The EXEC CICS DELAY command allows a task to temporarily suspend itself for a specified period of time. When the time has elapsed, the task resumes execution.
  2. The EXEC CICS POST command allows a task to be notified when the specified interval of time has elapsed or the specified time of day occurs. The task proceeds to execute while the time interval is elapsing.
  3. The EXEC CICS CANCEL command allows a task to terminate its own or another task’s request for a DELAY, POST or START service.
Automatic time-ordered transaction initiation

Automatic time-ordered transaction initiation provides for the automatic initiation of a transaction at a specified time of day (or after a specified interval of time has elapsed) and for the sending of data that is to be accessed by the transaction. The user can also cancel a pending request for automatic time-ordered transaction initiation.

Optional user exits are provided as follows:
  • Before determining what type of request for time services was issued
  • Upon expiration of a previously requested time-dependent event
  • If a START request names an unknown terminal.
Time-of-day control

The EXEC CICS PERFORM RESETTIME command causes CICS to reset its internal date and time of day information in accordance with that of the operating system.

The EXEC CICS PERFORM RESETTIME command calls DFHICP with a DFHIC TYPE=RESET macro. This macro is also issued by DFHAPTIM - the program run by the “midnight task” attached by interval control initialization - whenever it is resumed by the TI domain, i.e. at midnight.

DFHICP issues a KETI RESET_LOCAL_TIME call to the TI domain if the reason for the reset was a time of day change. This allows the TI domain to readjust its clocks to the operating system time. DFHICP then calls DFHTAJP to readjust other CICS clocks to match the operating system time and to make any necessary changes to the ICE chain resulting from possible changes in the time-to-expiry of time controlled ICEs. Finally DFHICP scans the ICE chain to process any that may have become expired as a result of the time change, and to reset the time interval for which the expiry task, DFHAPTIX, will wait, until the next ICE expires.

Control blocks

An interval control element (ICE) is created for each time-dependent request received by interval control. These ICEs are chained from the CSA in expiration time-of-day sequence.
Figure 1. Interval control element (ICE)
Diagram showing the structure of the interval control element.
Note: An ECA (event control area) exists only after an EXEC CICS POST command.

Expired time-ordered requests are processed by Interval Control when called from the DFHAPTIX module, which runs under a system task that has been resumed by the timer domain. The type of service represented by the expired ICE is initiated, if all resources required for the service are available, and the ICE is removed from the chain. If the resources are not available, the ICE remains on the chain and another attempt to initiate the requested service is made later.

Modules

Module Description
DFHAPTIM Part of the interval control mechanism
DFHAPTIX Part of the interval control mechanism
DFHICP The interval control program
DFHICRC  
DFHTAJP The time adjustment program

Exits

There are three global user exit points in DFHICP:
  • XICEXP
  • XICREQ
  • XICTENF

Trace

The following point ID is provided for DFHICP:
  • AP 00F3, for which the trace level is IC 1.