Determining the source JCL for the started task

If you decide to use a started task, you must then determine what the source JCL will be and where the JCL will be located. The source JCL can be a JOB (located in a member of a data set defined in the IEFJOBS or IEFPDSI concatenation of master JCL) or a procedure (located in a subsystem procedure library, for example, SYS1.PROCLIB). In the latter case, the system will process only the JCL associated with the first JOB statement in the procedure; it will bypass the second and subsequent jobs.

For information about master JCL considerations to support started tasks, see z/OS MVS Initialization and Tuning Referencez/OS MVS Initialization and Tuning Reference.

Before determining whether you will use a job or a procedure as source JCL for a given started task, you need to understand the advantages of each. After you have identified whether the source JCL will be a job or a procedure, then determine the system services that the started task will require. (See Determining system services for a started task.)

In most cases, you will use a procedure unless you need greater control of your started task. For example, EREP formats the logrec data set information; you may not need to change the way this currently works. The best candidates for procedures are started tasks that require minimal maintenance.

The major advantage of using a job as the source JCL for a started task is the control provided over certain aspects of the started task, such as:
  • Ability to specify accounting data

    For example, to determine which resources are being used by individual users.

  • Ability to pass parameters to the started task

    For example, using SYSIN data, you can pass data to programs in the started task.

  • Control of output

    For example, many installations purge all output from started tasks because of the volume of output. With the output control allowed within a job, you can specify to receive output only if something abnormal occurs with the started task.

Started tasks are initiated by the START command which identifies the member that contains the source JCL for the task. (See z/OS MVS System Commands for information on the START command.) START command processing when the member is a procedure and START command processing when the member is a job describe how the system processes the START command (depending on whether the source JCL is a job or a procedure) and the JCL that results.

Note the following restriction: If you are running a started task you cannot override the PARM= parameter on the START command. However, you can circumvent this restriction as follows:
  • Make the PARM= a symbolic in the EXEC statement where it is pertinent. Example:
    //JOB1   JOB   parameters
    //STEP1  EXEC  PGM=programname,PARM=&PARM1
  • Then, on the START command, change the value of the symbolic. Example:
    START  JOB1,,PARM1=parameters