External Request Units
An external request unit is an online task initiated within a DC/UCF system to service database requests from an external user session.
An external request unit is initiated when a request for database services originates from the following:
- A batch application
- Another DC/UCF system (using either DC-to-DC communications through an SVC or DDS)
- Another TP monitor such as CICS.
All concurrent database transactions initiated by one user session and processed on the same back-end DC/UCF system are managed as a single external request unit. All database requests issued as part of the external request unit are serviced by the same back-end task.
An external request unit may have the following runtime characteristics:
- Limits defined for system service calls, database I/O operations, CPU time, record locks, storage usage, and active time limit
- Inactive and external wait times
- Area acquisition threshold and retry counts
- Dispatching priority
An external request unit acquires these characteristics by having a corresponding task defined to the DC/UCF system. The corresponding task defines the characteristics listed above. Once DC/UCF finds the corresponding task for the external request unit, it assigns the characteristics of the corresponding task to the external request unit.
DC/UCF identifies the corresponding task for an external request unit using the following search strategy:
- It searches the TASK table for a task code that is specific to the front-end application:
- For batch applications, the name of the main program of the job step is used as the task code. For example, IDMSDMLC is used as the task code when running a COBOL precompile step.
- For CICS applications, the task codes are defined as follows:
- For IDMSINTC users, the CICS transaction code is used as the task code.
- For IDMSINTL users, the Program Name specified in the Subschema Control block (SSC) is used as the task code.
- For DC/UCF applications, the DC/UCF front-end task code is used as the back-end task code.
- If no matching task code was found in step 1, it searches the TASK table for a task code corresponding to the front end system ID, which may be one of the following:
- BATCBULK—for batch applications
- xxxxBULK—for CICS applications, where xxxx is system-name in the TPNAME parameter of the IDMSINTC macro
- DCXXBULK—for DC/UCF applications
- If still no match is found, it uses task code RHDCNP3S.
Alternate task codes
Task codes that are defined to specify the runtime characteristics of external request units are called alternate task codes. You define an alternate task code in the same way as task codes for online applications such as IDD.
Although the program name in the task definition of an alternate task is ignored by the runtime system, you must specify a program name to complete the task definition. For consistency, it is recommended that you specify RHDCNP3S as the program invoked by the task.