Previous Topic: Abend Detection and Timed FunctionsNext Topic: External Wait Time


Check-User Tasks

Check-user tasks are operating system subtasks attached by the DC/UCF system at startup.

How the DC/UCF System Uses Check-User Tasks

The system uses check-user tasks to detect abnormally terminated batch external request units running under the central version as follows:

  1. The DC/UCF system associates a check-user task with a batch program when the first BIND request is issued by that program. An external request unit (ERUS) task is started to process the normal requests for the external request unit. A check-user task is also started when a UCFBATCH program is started. Check-user tasks are not associated with external request units from a CICS front-end or from another CA IDMS-DC/UCF front-end.
  2. The check-user task attempts to enqueue a unique resource held by the batch interface module for the program. While the request unit exists, the resource is not available to the check-user task.
  3. If the batch program terminates the run-unit using a FINISH or ROLLBACK or if the batch program terminates abnormally, the check-user task is then able to enqueue the resource.
  4. If the batch program has explicitly ended the request unit, then the ERUS task will have already been terminated. If the batch job has ended abnormally, the ERUS task will still be active. The check-user task informs the DC/UCF system that the batch request unit has terminated.
  5. The DC/UCF system aborts the ERUS task.

What Happens if No Check-User Task is Available when a Batch Request Unit is Started: The system starts the ERUS task normally. The system notes that there is no check-user task associated with the ERUS task. If a check-user task becomes available while the ERUS task is still active, then that check-user task will be associated with the ERUS task and the regular enqueue mechanism will go into effect. If the ERUS task terminates normally before any check- user task is available, then the system simply discards the notation of a potential need for a check-user task.

How You Define Check-User Tasks

The check-user mechanism is controlled by the CHKUSER TASKS parameter of the system generation SYSTEM statement Use this parameter to specify the number of subtasks to be attached by the system. Specifying zero disables the check-user mechanism.

Note: For more information about the SYSTEM statement, see SYSTEM Statement.

How Many Check-User Tasks Should Be Defined

Check-user tasks are associated only with batch jobs (DML access or UCFBATCH). There is never a need for more check-user tasks than the maximum number of batch request units which will be active simultaneously. In most cases, only a few check-user tasks will be needed. A batch job may start when no check-user task is available. Suppose that job terminates abnormally before a check-user task becomes available. A check-user task will become associated with the corresponding ERUS task as soon as some other batch job terminates and its check-user task becomes available. The system will then abort the ERUS task which had been started for the program that terminated abnormally.