z/OS TSO/E User's Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


EXEC Statement

z/OS TSO/E User's Guide
SA32-0971-00

The program needed to execute TSO/E commands from the background is a terminal monitor program (TMP), which may be one of the following: IKJEFT01, IKJEFT1A, or IKJEFT1B. The EXEC (execute) statement is used to execute program IKJEFT01 or the alternate programs IKJEFT1A and IKJEFT1B. The format is:
//stepname EXEC PGM=IKJEFT01,DYNAMNBR=nn,PARM='command'
or
//stepname EXEC PGM=IKJEFT01,DYNAMBR=nn,PARM='command'
Note: The TSO/E terminal monitor program must not run as a V=R program. Executing the TMP as V=R will cause unpredictable results.
Note: If the caller wishes to pass a command string longer than 100 characters to IKJEFT01, you should use the PARMDD= keyword of the EXEC statement of JCL, as shown above.
stepname
is optional and can be used as a step identifier in programs consisting of more than one step.
EXEC
is the JCL term that identifies this type of statement.
PGM=
specifies the module being executed. In addition to IKJEFT01, there are two other entry points available for background execution that provide additional return code and abend support.
Note: If the STEP parameter is coded in an ABEND macro, the job will abnormally terminate with the system or user abend specified. TSO/E cannot recovery normally from an ABEND with the STEP parameter because retry processing is not allowed.
The differences among the three entry points are:
  • PGM=IKJEFT01
    • When a command completes with a non-zero return code, the program goes to the next command. When a command abends, the step ends with a condition code of 12 (X'C').
  • PGM=IKJEFT1A
    • If a command or program being processed by IKJEFT1A ends with a system abend, IKJEFT1A causes the job step to terminate with a X'04C' system completion code. IKJEFT1A also returns to the caller the completion code from the command or program in register 15.
    • If a command or program being processed by IKJEFT1A ends with a user abend, IKJEFT1A saves the completion code in register 15 and then terminates.
    • If a command, program or REXX exec being processed by IKJEFT1A returns a non-zero return code to IKJEFT1A, IKJEFT1A saves this return code in register 15 and then terminates. Non-zero return codes to IKJEFT1A from CLISTs will not affect the contents of register 15 and the TMP will continue processing.
    • For a non-zero return code or an abend from a command or program that was not given control directly by IKJEFT1A, no return code is saved in register 15, and IKJEFT1A does not terminate.
    Note: When a command is invoked in a CLIST, that command is actually processed by the TMP (Terminal Monitor Program). From that command, termination of IKJEFT1A with a non zero return code and flushing of the remainder of the CLIST occur. This is different from the case when a command is invoked directly by a REXX exec.
  • PGM=IKJEFT1B
    • If a command or program being processed by IKJEFT1B ends with a system or user abend, IKJEFT1B causes the job step to terminate with a X'04C' system completion code. IKJEFT1B also returns to the caller the completion code from the command or program in register 15.
    • If a command, program or REXX exec being processed by IKJEFT1B returns a non-zero return code to IKJEFT1B, IKJEFT1B saves this return code in register 15 and then terminates. Non-zero return codes to IKJEFT1B from CLISTs do not affect the contents of register 15 and the TMP continues processing.
    • For a non-zero return code or abend completion code from a program or command that was not given control by IKJEFT1B, no return code is saved in register 15, and IKJEFT1B does not terminate.

See z/OS TSO/E Customization for information on abend and non-zero return code processing by these alternate programs, as well as conditional disposition processing for data sets.

DYNAMNBR=
indicates the number of system resources the system should hold in anticipation of reuse. For information on the specific number of allocations you can specify, see z/OS MVS JCL Reference.
PARM=
is optional and can be used to supply the first (or only) command to be executed. This is used most often when you only execute one command in the step.
PARMDD=ddname
is optional and can be used instead of PARM= to supply the first (or only) command to be executed. Use PARMDD specifying the ddname of a data set containing the command parmstring to be executed if the command parmstring is more than 100 characters in length.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014