IBM User's Guide, Thirteenth Edition


7 MVS Batch Job Setup


Introduction

This chapter describes the job processing statements that are required by the MVS operating system to process batch jobs on the IBM 3090 computer. These statements, which include both job control language (JCL) statements and job entry subsystem 2 (JES2) statements, are described in the order in which they must occur in a job.

Job Control Language (JCL)

JCL allows communication with the scheduling component of the operating system. In addition to transmitting control information, it provides the user with a means of influencing the scheduling of work, the allocation of system resources, and system performance. Job and program information, data characteristics, and device requirements can be provided by JCL at the time the job is executed rather than during assembly or compilation. The flexibility of JCL is indicated by its large number of optional facilities, although most applications require only a limited number of these facilities. There are nine types of JCL statements accepted by the operating system: JOB, EXEC, OUTPUT, DD, PROC, PEND, delimiter, null, and comment. This chapter discusses JOB, EXEC, OUTPUT, and DD; the other statements are described in the IBM publications MVS/ESA JCL User's Guide , GC28-1830, and MVS/ESA JCL Reference , GC28-1829, available in Remotes 1, 2, 8, 17 and 28, 105 Art & Architecture, 305 Claxton, 23 Human Ecology, and A301H Veterinary Medicine, as well as in the Reserve Section of the Hodges Library. The UTCC "Introduction to MVS JCL" is available in the Hodges Library during regular library hours; see section 1.4.2.4 for information about videotaped short courses. Every JCL statement begins with slashes (//) in columns 1 and 2, followed by distinct fields. These fields are the name, operation, operands, and comment fields:

//name operation operands comment

There are no spaces between the slashes and the name field, but each of the fields following must be separated by one or more blanks. A JCL statement is entered in upper case only. The name field identifies the statement so that it may be referred to by other statements. The first character in the name must be alphabetic and must begin in column 3. The operation field specifies the type of control statement and is one of a prescribed set of commands. It must be preceded and followed by at least one blank. (Note: If the name field is blank, then the operation field must begin between columns 4 and 16, inclusive.) The operand field contains parameters separated by commas. These parameters consist of keywords and variables for which information must be substituted. The operand field has no fixed length or column requirements, although it must be preceded and followed by at least one blank. The final field, the comments field is optional. This field can contain any information desired by the person who coded the control statement. It has no fixed length or column requirements but must be separated from the operand field by at least one blank. Information may be entered in columns 3 through 71 of a statement.

Continuation of JCL statements

If the total length of the JCL statement exceeds 71 columns, or if it is desired to place parameters on separate statements, the following conventions must be followed:

` Interrupt the information after a complete parameter or subparameter, including the comma that follows it, at or before column 71;

` Enter the identifying characters // in columns 1 and 2 of the following statement;

` Continue the interrupted information, beginning between columns 4 and 16.

For example,

//EXAMPLE JOB ,SHAKLEE,GROUP=J999991,USER=P999998, // PASSWORD=?

Job Entry Subsystem 2 (JES2)

JES2 statements contain information that determines output characteristics, output routing, and allocation of output devices. JES2 statements also provide communication with the UTCC operator and with VM/CMS, VMS on the VAXcluster, and Sun/SunOS (UNIX). Six types of JES2 statements are supported by MVS at UTCC: JOBPARM, ROUTE, MESSAGE, NOTIFY, UTPARM, and XMIT. These are discussed in subsequent sections of this chapter. JES2 statements have the following format:

/*operation operands

where the slash (/) is entered in column one. The operation is the type of statement, and the operands field must be preceded by at least one blank and may not extend past column 71. No continuation of a JES2 statement is allowed, but multiple statements with the same operation and different operands may be included as needed. Comments are not allowed on JES2 statements.


MVS control statements

JOB statement

The JOB statement marks the beginning of a job and provides accounting and job scheduling information to the operating system. The format of the JOB statement is as follows:

//jobname JOB ,name,keyword-parameters

At least one blank space must precede and follow the word "JOB," and a comma must immediately precede "name." "Jobname," "name," and the keyword-parameters are described in the list that follows.

jobname The jobname is chosen by the user. It is 1 to 8 or national (#$@) characters, beginning with a letter. The jobname is required. Jobnames beginning with a pound sign (#) or beginning with the string $$HOT may not be used.

name The name is the user's name and may be 1 to 20 characters in length. If it contains special characters other than e.g., blanks or commas, the name must be enclosed in single quotes. The name is required.

Keyword-parameters provide accounting information to the system and define execution and scheduling characteristics for a job. The following keyword-parameters may be coded in any order on the JOB statement after the user's name and should be separated by commas.

GROUP=Jprojcode where "projcode" is 2 to 6 digits and is the user's UTCC-assigned project code without leading zeros (see chapter 2). This parameter is required.

USER=Pusercode where "usercode" is 2 to 6 digits and is the user's UTCC-assigned programmer number without leading zeros (see chapter 2). "Pusercode" is also known as the user's MVS userid. This parameter is required.

PASSWORD=current where "current" is the MVS password associated with the user's programmer number. A password must be from 6 to 8 alphanumeric characters. This parameter is required.

Since virtually all MVS users submit batch jobs from a timesharing system (TSO, CMS or VAX/VMS), it is recommended that the PASSWORD parameter on the JOB statement be coded with a question mark, as follows:

//jobname JOB ,name,GROUP=Jprojcode,USER=Pusercode,
//        PASSWORD=?

When a job is submitted with the password coded in this way, the timesharing system will prompt the user to enter the MVS password at the terminal. The advantages of coding PASSWORD=? are that the password does not need to be recorded in every JCL file, so it is easier to keep the password secret, and it is much easier to change the password from time to time.

CLASS=T The parameter CLASS=T identifies a tape job. If this parameter is omitted, the system assumes a standard MVS job requiring no tape setups and assigns a job class based on requested CPU time.

MSGCLASS=class where "class" specifies the output class to which the MVS operating system is to write messages, JCL, and system output (sysout) data sets. The value of "class" may be A, H or D. MSGCLASS=A, the default value, specifies that output is to be sent directly to the printer. MSGCLASS=H specifies that printer output is to be held for review from CMS (see section 4.24.2.2) or from TSO (section 6.3.1). If, after four days, the user has not either printed or discarded the held output, the system will release it for printing. MSGCLASS=D is like MSGCLASS=H except that, if the user has not printed or discarded the held output after four days, the system will delete it. With MSGCLASS=D, if the designated space on the system spool pack reaches capacity before four days have expired for review, data sets will be deleted without notice, the oldest first, until enough space is recovered for the system to function. MSGCLASS=D should not be used to hold output that is difficult or expensive to create.

MSGLEVEL=(statements,messages)

statements (one digit)
0 Only the JOB statement is printed.
1 All input job control statements, cataloged procedure statements, and internal representation of statements after symbolic substitution are printed.
2 Only input job control statements are printed.

messages (one digit)
0 No allocation/deallocation messages are printed unless the job abnormally terminates.
1 All allocation/deallocation messages are printed.

The default is MSGLEVEL=(2,0).

NOTIFY=Pusercode where "Pusercode" is an MVS userid. This parameter is used to send "job ended" notification messages to a TSO user. This parameter may also be used to establish SDSF job ownership for batch job output access under TSO (see section 6.3.1 on viewing batch output from TSO).

REGION=valueK The REGION parameter sets the maximum amount of virtual memory that will be or REGION=valueM allocated to any step of the job. If REGION is coded on the JOB statement, it applies to all steps of the job, and any REGION parameters on the EXEC statements are ignored. If the steps require different region sizes, then code the REGION parameter on the EXEC statements and do not code a region on the JOB statement. If the REGION parameter is not coded on either the JOB or the EXEC statement, the default is REGION=256K.

The maximum allowable value for the REGION parameter is 256M ( megabytes ). In actual practice, however, most compilers limit the usable memory to 9M. At present, only a handful of the commonly used application packages are written to take advantage of the memory capacity of the IBM 3090 computer.

Region requests are rounded up to a 64K multiple. For REGION values less than 16,384K (16M), if the region requested is unavailable below the 16-megabyte line, the job terminates.

For REGION values between 16384K and 32768K (16M and 32M), the job is given all the available storage below the 16-megabyte line and extended storage up to 32 megabytes.

For values between 32M and 256M, the job is given all the available storage below the 16-megabyte line and extended storage up to the region size specified. If the region size is not available above 16 megabytes, the job terminates.

Note : 1 megabyte = 1024 kilobytes

TIME=([minutes][,seconds]) The TIME parameter requests CPU time in minutes and seconds. If TIME is coded in minutes only, the parentheses are not needed. TIME=(0,10) is the default (ten seconds). Job execution priority is based in part on the amount of CPU time requested (see section 8.2.1). If the execution of the job is unfinished when the time requested has expired, the job will abend. The maximum amount of time that can be requested is 1439 minutes (23 hours, 59 minutes).

TYPRUN=task where "task" is one of HOLD, SCAN, or COPY. HOLD specifies that the job is to be held prior to execution until the operator releases it; this is useful to alert the operator to a MESSAGE statement. SCAN specifies that the JCL for a job is to be scanned for syntax errors, but the job is not to be executed. COPY specifies that the input statements are to be output to the printer without executing the job. When using TYPRUN=COPY, also code MSGCLASS=A on the JOB statement (the default). If the TYPRUN parameter is not coded, the default is normal execution of the job.

Restrictions on the JOB statement

Restrictions on individual JOB statement parameters are given below.

projcode, usercode: Codes will be checked for validity and logical matching. If these codes are invalid
or omitted, the job will not be allowed to execute. The only keyword-parameter on the JOB statement, other than the ones described above, which is honored by the UTCC system is COND. The ADDRSPC=REAL parameter will be changed to ADDRSPC=VIRT by JES2. The parameters PERFORM, PRTY, RD, and RESTART are checked for basic syntax and subsequently ignored.

Examples

A minimal JOB statement is given below:

//jobname JOB ,name,GROUP=Jprojcode,USER=Pusercode, // PASSWORD=?

The following JOB statement specifies values for projcode, usercode, execution time, and job class.

//REFRAC  JOB ,SMITH,GROUP=J999991,USER=P999998,TIME=1,CLASS=T,
//        PASSWORD=?

Other sample JOB statements are given below:

//ROOTS JOB ,SMITH,GROUP=J999991,USER=P999998, // TIME=(1,30),MSGLEVEL=(0,1), // PASSWORD=?

//TREND JOB ,'SMITH, JOHN',GROUP=J999991,USER=P999998, // TIME=(,45),REGION=1024K, // PASSWORD=?

//EVAL JOB ,JONES,GROUP=J999991,USER=P999998,TYPRUN=COPY, // MSGCLASS=A, // PASSWORD=?

ROUTE statement

Users should always include a JES2 ROUTE statement immediately after the JOB statement in their JCL. The ROUTE statement specifies the destination of sysout data sets which are not specifically routed by the DEST parameter of the DD or OUTPUT JCL statement. The format of the ROUTE statement is:

/*ROUTE PRINT remote

or

/*ROUTE CMSRJO parameters

or

/*ROUTE PRINT nodename.userid

where "remote" is a valid remote designation or the abbreviation or synonym for that remote shown in the table below. CMSRJO parameters are described in section 4.24.2.2. "Nodename" can be any of the values listed in section 8.10.2 and "userid" identifies the receiving user. See section 8.10 for more information about sending MVS sysout to other systems. Multiple ROUTE statements can appear in the job stream.

List of remotes, locations, synonyms and abbreviations


Desig- nation Location Synonym* Abbrev*

RMT0 UTK, 100 Stokely Management Center (UTCC) STOKELY SMC RMT1 UTK, 414 Ferris Hall (UTCC) FERRIS FH RMT2 UTK, 108 Estabrook Hall (UTCC) RMT4 UTC, Administrative UTCADMB RMT6 UTK, Andy Holt Tower P207 AHT RMT8 UTK, 67 Glocker Bus. Admin. Bldg. (UTCC) GLOCKER G RMT10 UTMar UTMARTIN UTM RMT14 UTK, ENTREX 1, Andy Holt Tower 101 RMT15 UTK, Andy Holt Tower P207 AHTUSER RMT17 UTK, Ag Campus, 7C Morgan Hall (UTCC) MORGAN MH RMT18 State Testing and Evaluation Center, STEC 25 HPER Bldg., UT Knoxville RMT23 UTK, Admissions & Records Office, RECORDS Student Services Room 305 RMT28 UTK, 207 Physics Building (UTCC) PHYSICS RMT31 UTK, Administrative Data Systems, DATASYST ADS Andy Holt Tower P207 RMT34 UTK, Office of Administrative Computing, INFOSYST Dunford Hall RMT35 State Testing and Evaluation Center, 25 HPER Bldg., UT Knoxville RMT39 UTK, Administrative Data Systems, AHTAS400 Andy Holt Tower P207 RMT96 UTK, 101 Andy Holt Apts. (UTCC)


* NOTE: The synonym or abbreviation must be entered in upper case letters.

UTK = UT Knoxville, UTC = UT Chattanooga, UTMar = UT Martin


Examples Either of the following statements will route MVS sysout to a printer at Remote 8 in Glocker Business Administration Building at UT Knoxville:

/*ROUTE PRINT GLOCKER
/*ROUTE PRINT RMT8

Line printer output restrictions

Not all types of output can be produced at every remote site.

1. All line printer output requesting the TN character set (UCS=TN) is produced at Stokely Management Center (Remote 0).

2. Jobs requesting forms other than 0316 or FCB other than FCB=6 and jobs that print more than 10,000 lines are produced at Stokely Management Center (Remote 0) and delivered to the remote designated in the ROUTE statement or to the ROOM specified in the JOBPARM statement if that location is supported by the UTCC delivery service (see section 1.4.13). Output that specifies neither a valid ROUTE destination nor a ROOM designation supported by the UTCC delivery service will be returned to the bins at Remote 0. The exceptions are: no line limit is imposed at Remote 28; Remote 17 has a line limit of 50,000 and can print on forms 0216, 0316 (the default), 0416 and 0426.

3. Punched output is not supported at any UTCC remote.

JOBPARM statement

The JOBPARM statement is a JES2 statement which specifies job related parameters. The format of the JOBPARM statement is as follows:

/*JOBPARM parameters

where the parameters are any of the following separated by commas.

COPIES=nn where "nn" indicates the number of copies of the entire job to be produced. The default is COPIES=1. The maximum is COPIES=50. Multiple copies on the JOBPARM statement result in the creation of multiple print units, each of which is contained within its own separator pages. The multiple print units for job copies may be interspersed on the printer with jobs from other users. Each separate print unit is broken down from the printer and returned to the user as a separate entity. For restrictions on the COPIES parameter, see section 7.2.3.1.

FORMS=xxxx where "xxxx" is the four-character designation of the form to be used for printing output of the entire job. The default is FORMS=0316 (11" x 14" greenbar paper). See chapter 9 for information on using nondefault forms.

LINECT=nn where "nn" indicates the maximum number of lines that are to be printed per page. If no value for LINECT is specified, the default will be LINECT=61. If a value of zero (LINECT=0) is specified, there will be no automatic page ejects by JES2. A user's program may cause less than the maximum to be printed if it contains a page eject prior to the bottom of the page.

LINES=n where "n" is the maximum number of lines (in thousands) to be printed per copy. The default is LINES=2 (2000 lines). Jobs that print more than 10,000 lines will be routed to Remote 0 for printing. The exceptions are that no line limit is imposed at Remote 28, and Remote 17 has a line limit of 50,000.

NOLOG indicates that the JES2 job log is not to be printed. Use of the NOLOG parameter also suppresses network sysout transmission of JES2 News. Suppression of the job log is not recommended, since this may prevent the user from seeing important system messages.

RESTART=x where "x" is the character Y or N. Y indicates that the job is to be rerun from the beginning in the event of a system failure. N, the default, indicates that it is not to be rerun.

ROOM=xxxx where "xxxx," often referred to as the delivery-id, is the location to which the output is to be delivered after it has been printed. The default is ROOM=BINS, which the output will be placed in the bins area at the remote where it is printed. ROOM designations are limited to four characters; if the delivery-id is unknown to the person sorting the output, it will be placed in the bins at the remote destination. Suggested ROOM designations are:

Room Location

 ADS     Administrative Data Services Bin P204 AHT
 CARS    Computer Assisted Registration Bin P204 AHT
 IPS     Institute for Public Service Bin P204 AHT
 OAC     Office of Administrative Computing Bin P204 AHT
 OIR     Institutional Research Bin P204 AHT
 SDA     Student Data Analysis Bin P204 AHT
 SHLF    General Users Bin P204 AHT
 DOUG    Dougherty (Room 508)
 DUNF    Dunford Hall
 RMT1    Remote 1 (414 Ferris)
 RMT2    Remote 2 (108 Estabrook)
 RMT8    Remote 8 (67 Glocker)
*RT17    Remote 17 (Agriculture Campus, Room 7 Morgan Hall)
 RT28    Remote 28 (207 Physics)
 BINx    where "x" is 1, 2, 3, or 4. (Use only with output
   intended for numbered bins at RMT0.)

*The Agriculture campus provides its own pickup/delivery service.

Example The following example requests two copies of a 5000 line job to be delivered to RMT2 (Estabrook Hall) after printing at SMC.

/*JOBPARM COPIES=2,ROOM=RMT2
/*JOBPARM LINES=5

JOBPARM restrictions

A request for multiple copies of output may be ignored if the output is held. For example, the COPIES parameter on the JOBPARM statement is ignored for output produced by jobs using the following JCL parameters:

SYSOUT=H or SYSOUT=I
SYSOUT=*
if MSGCLASS=H appears on the JOB statement.
HOLD=YES
or
FREE=CLOSE

Users are referred to section 8.7.2 (COPIES parameter on the DD statement) or section 7.2.9 (COPIES parameter on the OUTPUT JCL statement) for other ways to get multiple copies of output when using any of the above JCL parameters.

MESSAGE statement

The JES2 MESSAGE statement informs the operator of resource requirements that cannot be conveyed in other statements. The format is as follows:

/*MESSAGE text of message

Types of MESSAGE statements to use

` If a job is put on hold by coding the TYPRUN=HOLD parameter on the JOB statement, a MESSAGE statement should be included to tell the operator why this was done. Otherwise, the operator will not know what action should be taken. For example, the MESSAGE statement should be used to indicate if a job has a long wallclock execution time such as,

//jobname JOB ,name,GROUP=Jprojcode,USER=Pusercode,TYPRUN=HOLD,
//        PASSWORD=?
/*MESSAGE THIS JOB USUALLY RUNS ABOUT 10 HOURS ELAPSED TIME!

Please be specific; e.g., "THIS IS A BIG JOB!" is not sufficient.

` The MESSAGE statement should be used to inform the operator when the magnetically recorded, internal label on an alien tape from another computing installation does not match the UTCC-assigned alien tape number (see sections 10.3 and 10.4). For example,

//jobname  JOB ,name,GROUP=Jprojcode,USER=Pusercode,CLASS=T,
//         PASSWORD=?
/*MESSAGE  X04693=U99999

In addition, if the internal label of the alien tape is a number between 000000 to 030000 (numbers reserved for tapes in the UTCC tape library), then TYPRUN=HOLD should be coded on the JOB statement in addition to the MESSAGE statement to the operator. (See section 10.3.2.)

Types of MESSAGE statements not to use

` The MESSAGE statement should not be used to schedule jobs without first making arrangements with the supervisor of SMC computer operations (974-6883). The following is an example of such a MESSAGE statement.

/*MESSAGE RUN THIS JOB AT 8 PM

` The purpose of this MESSAGE statement,

/*MESSAGE RUN THIS JOB AFTER PROG1B FINISHES

is better handled by the user than by operations. If one program's execution depends on another's, the first program should be finished executing before the second is submitted, or the first program itself should submit the second. The latter is accomplished with the HSUBMIT utility (see section 14.1.2).

` MESSAGE statements that require special actions such as the following are not appropriate.

/*MESSAGE CALL JOHN AT 999-9999 WHEN THIS JOB FINISHES.

` MESSAGE statements that contain information about output such as special forms to be used and delivery information should be avoided. This information should be coded on the JES2 /*ROUTE and /*JOBPARM statements.

NOTIFY statement

For a batch job submitted to the MVS system from CMS, VAX or Sun/SunOS (UNIX), JES2 will automatically send a "job ending" message to the userid from which the job was submitted when the job has ended execution. Note that the user must be logged on at the time the job ends and must have message reception enabled (type CP SET MSG ON at CMS command level--this is the default); otherwise the message will be discarded. If the job ending notification is to be sent to a user other than the submitting user, however, then the NOTIFY statement should be included in the job stream. The NOTIFY statement has the following format:

/*NOTIFY nodename.userid

where "userid" identifies the user who is to receive the message and "nodename" is the node identification of the timesharing system on which the user has an account. If the job-ending message is sent to VM/CMS, to the VMS VAXcluster, or to Sun/SunOS (UNIX), the user to whom the job ending message is sent must be logged on at the time the message is generated; that is, the message is not saved. For example,

/*NOTIFY UTKVM1.PA999998
  or
/*NOTIFY UTKVX.DELANEY

Only one user can receive the message; thus, if the /*NOTIFY statement names a user other than the submitter, the submitter WILL NOT receive a job ending message. A NOTIFY= JOB statement parameter or /*NOTIFY statement must be included in a TSO job if the user wants to view the output on TSO with SDSF (see section 6.3.1). A /*NOTIFY overrides NOTIFY= on the JOB statement. If a TSO user is not logged on at the time the job-ending message is sent, the message is saved and displayed at the next logon.

UTPARM statement

Currently there is only one valid parameter on this statement:

/*UTPARM NONEWS

where "NONEWS" requests that the JES2 news data set not be printed with the job's output or transmitted with the network sysout.

XMIT statement

The XMIT statement allows the one-way transfer of data through MVS/JES2 to UTCC's VM/CMS, VAX/VMS, and Sun/SunOS (UNIX) timesharing systems. Data format is restricted to card-image format, that is, fixed-length records no longer than 80 characters in length. Data types supported in a single transmission include JCL images, data images, or a combination of both. The general format of the XMIT statement is as follows:

/*XMIT nodename.userid,DLM=xx

where nodename is the node or host system to which the data is to be transmitted (see a list of valid node names in section 8.10.2), userid identifies the timesharing user who is to receive the data, and xx is an optional two-character end-of-data delimiter. The DLM parameter is only required to a record consisting of the characters /*blank in columns 1-3.

Example The XMIT statement must immediately follow a valid MVS JOB statement and must immediately precede the data to be transmitted.

//jobname  JOB ,name,USER=Pusercode,GROUP=Jprojcode,
//         PASSWORD=?
/*XMIT     nodename.userid
  [data to be transmitted]

For more information about the XMIT statement, consult MVS/ESA JCL Reference , GC28-1829.

EXEC statement

The EXEC statement is a JCL statement which marks the beginning of a job step and identifies the program to be executed or the procedure to be used. In addition, conditions for bypassing execution of the step and control information for the program and system may be provided in the EXEC statement. The general formats of the EXEC statement are given below.

//stepname EXEC procname [,symbolic and/or EXEC parameters]

//stepname EXEC PGM=progname [,EXEC parameters]

The stepname is optional, but if coded must conform to the rules for the name field (see section 7.1.1). The stepname specifies a name for the job step and allows DD statements within the step to be referenced by subsequent job steps. The procname refers to a cataloged procedure contained in UTCC.MVS.PROCLIB or to a cataloged procedure provided by the user in the input stream or in a private procedure library (see chapter 12 for information about cataloged procedures). A symbolic parameter is a symbol in the operand field of a cataloged or private user procedure which is used to assign a value to a character string within the procedure. Symbolic parameters are used to facilitate modification of the procedure. The user may assign a value to the symbolic parameter at the time the procedure is invoked. If no value is assigned to a symbolic parameter by the user, a default value is supplied by the procedure. The use of symbolic parameters is explained further in section 12.3.3. In the second form of the EXEC statement, "progname" is the name of a program. A special control statement, naming the load module library containing the program, may be required. See the description of the JOBLIB and STEPLIB statements in MVS/ESA JCL Reference , GC28-1829. The REGION parameter on the EXEC statement specifies the amount of main memory to be allocated to that job step. Each step in a procedure usually contains its own region parameter or a symbolic parameter for the region. With the second form of the EXEC statement, however, the REGION parameter is required for steps requiring more than 256K. A REGION parameter coded on the JOB statement will override all REGION parameters coded on EXEC statements. The TIME parameter specifies the maximum amount of CPU time that a job step can use. This parameter, which uses the same format as on the JOB statement, prevents one job step from using a job's entire time request. A step that exceeds the specified time limit causes termination of the job.

Restrictions Other than the ones described above, the only keyword-parameters on the EXEC statement that are honored by the system are COND, DYNAMNBR, and PARM. ADDRSPC=REAL is changed to ADDRSPC=VIRT by JES2. The EXEC statement parameters ACCT, DPRTY, PERFORM, and RD are checked for basic syntax and subsequently ignored.

Examples

` Invoke the cataloged procedure SORT

//stepname EXEC SORT

` Invoke the cataloged procedure SORT assigning values to two symbolic parameters

//stepname EXEC SORT,GOREG=256K,CYLS=15

` Invoke the program IEBGENER

//stepname EXEC PGM=IEBGENER

OUTPUT JCL statement

The OUTPUT JCL statement specifies the processing options of one or more system output (sysout) data sets. The format of the OUTPUT JCL statement is as follows:

//outname OUTPUT parameter(s)

where "outname" is required and is a 1 to 8 character alphanumeric string naming the statement. The OUTPUT JCL statement is referenced either explicitly or implicitly by the SYSOUT parameter on a DD statement. An explicit reference is one in which the SYSOUT parameter is accompanied by an OUTPUT parameter that specifies the name of an OUTPUT JCL statement. For example,

//outname OUTPUT parameter(s) //ddname DD SYSOUT=*,OUTPUT=*.outname

If the OUTPUT JCL statement being referenced by one job step is located in another job step, the stepname is required. For example,

//ddname DD SYSOUT=*,OUTPUT=*.stepname.outname An implicit reference is made when a SYSOUT parameter is not accompanied by an OUTPUT parameter, but there is a default OUTPUT JCL statement preceding it in the job or step. A default OUTPUT JCL statement is one that contains a DEFAULT=YES parameter. If the default OUTPUT JCL statement is placed before the first EXEC statement, it will apply to any SYSOUT parameter in the job that does not have an OUTPUT parameter. If the default OUTPUT JCL statement is placed after an EXEC statement, it will apply only to SYSOUT parameters in that job step. For example,

//OUTONE OUTPUT DEST=RMT8,DEFAULT=YES
//OUTTWO OUTPUT DEST=RMT17
//STEP1  EXEC PGM=PROG1
//OUT1   DD SYSOUT=*
//STEP2  EXEC PGM=PROG2
//OUT2   DD SYSOUT=*,OUTPUT=*.OUTTWO

The output defined by OUT1 will print at Remote 8. The output defined by OUT2 will print at Remote 17. If the SYSOUT parameter on a DD statement is not accompanied by an OUTPUT parameter and if there are no default OUTPUT JCL statements in the job or step, the sysout data set is processed only by the parameters on that DD statement and the applicable UTCC defaults described in chapter 9.

Some of the additional parameters for the OUTPUT JCL statement are any of the following separated by commas. (Note: Parameters specified on the OUTPUT JCL statement will not override any equivalent parameters on the referenced DD statement, but will override equivalent parameters on the JOBPARM statement.)

COPIES=n where "n" indicates the number of copies of the data set to be printed. The maximum number of copies is 50. If copies of the entire job are requested on the JOBPARM statement as well as copies of a particular sysout data set, the number of copies of the data set will be equal to the product of the two requests. For example, if 2 copies of the job and 3 copies of the data set are requested, a total of 6 copies of the data set will be produced. The default is COPIES=1.

DEST=name where "name" is a valid remote or abbreviation or synonym for that remote (see table in section 7.2.2). DEST=nodename.userid is also valid here (see sections 8.10.1 and 8.10.2 for a discussion of nodename.userid). If no destination is specified on the OUTPUT statement or on the DD statement, the destination will default to that specified on the ROUTE statement.

FCB=n where "n" is a UTCC-defined number indicating alignment and carriage control. The default is FCB=6. (See section 9.1.1.4.)

FORMS=xxxx where "xxxx" is the four-character designation of the form to be used for printing output of the data set. The default is FORMS=0316. See chapter 9 for information on form designations.

JESDS=dataset where "dataset" is LOG , JCL , MSG or ALL to indicate that these data sets will have the processing characteristics coded on the OUTPUT statement.

LINECT=nn where "nn" indicates the maximum number of lines that are to be printed per page. The default is LINECT=61. A user's program may cause less than the maximum to be printed by issuing a page eject prior to the bottom of the page. LINECT coded on the OUTPUT statement overrides the LINECT value on the JOBPARM statement. If LINECT is not coded on the OUTPUT statement but is coded on the JOBPARM statement, JES2 will use the JOBPARM value rather than the default. A value of zero (LINECT=0) prevents JES2 from starting a new page when the number of lines exceeds the JES2 default.

UCS=xx The appropriate use of the UCS parameter is for output produced at Remote 0: UCS=TN to force upper and lower case output, UCS=GN to force all upper case output. For Remote 0, if the UCS parameter is not coded, the default is whichever character set is mounted at the time. At other remotes the UCS parameter is not required; the default value (UCS=GN) will allow output to print on a printer at the given remote. However, coding UCS=TN will cause the output to be transmitted to Remote 0 for printing.

Example The following OUTPUT statement named "OUT" defines the output characteristics of the data set defined by the SYSOUT parameter on the DD statement named "DD1". The output will be printed in upper and lower case on 8 1/2" by 11" white paper. The destination is RMT0. Four copies will be printed.

//OUT OUTPUT FORMS=0416,UCS=TN,DEST=RMT0,COPIES=4
//DD1 DD SYSOUT=*,OUTPUT=*.OUT

DD statement

The data definition (DD) statement describes an input or output data set and requests the allocation of input/output resources. DD statement parameters specify volume and unit, disposition, labels, and DCB attributes. The general format of the DD statement is

//stepname.ddname DD parameters

The "stepname" is included only when a cataloged procedure is being used and identifies the step of the procedure in which the statement is to be placed. The "ddname" is the name by which the data associated with the DD statement is known to the program being executed. There are many parameters available, and their use depends upon the particular application. The DD statement is treated according to the specifications given in MVS/ESA JCL Reference , GC28-1829.

Example The most common DD statement marks the beginning of input data in the job stream. It has the form

//stepname.SYSIN DD *

where stepname is the name of a step in a cataloged procedure to which this data set applies. That is, if the data is input to a job step which invokes the FORTRAN compiler, the DD statement would be as follows:

//FORT.SYSIN DD *

Job setup restrictions

The following restrictions apply to the use of JCL and JES2 statements.

` OS commands embedded in JCL are not honored.
` JES2 statements are processed only as documented in this chapter.

Job setup example

In the following example, a standard labeled, alien tape with an internally recorded volume serial number of X04296 has been assigned a UTCC volume serial number of U99999. The first data set on X04296 is named FORT.SOURCE and contains FORTRAN source code. The IEBGENER program is executed to copy FORT.SOURCE to a data set named J999991.FORT.SOURCE on a UTCC rental tape. FORT.SOURCE was created at 6250 BPI on a 9-track reel tape. J999991.FORT.SOURCE will be created on a 38K BPI cartridge tape. The FORTVCL cataloged procedure in the second step compiles and link edits the code in

J999991.FORT.SOURCE and creates a new load module named PROG1 in an existing load module library unit.

//COPYLINK JOB ,JONES,GROUP=J999991,USER=P999998,
//         CLASS=T,TIME=1,MSGCLASS=A,
//         PASSWORD=?
/*ROUTE    PRINT RMT1
/*JOBPARM  LINES=5
/*MESSAGE  X04296=U99999
//COPYTAPE EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSIN    DD DUMMY
//SYSUT1   DD UNIT=TAPE6250,DISP=SHR,DSN=FORT.SOURCE,
//         VOL=SER=X04296,LABEL=(1,SL,EXPDT=98000)
//SYSUT2   DD DISP=(NEW,CATLG),UNIT=TAPE,VOLUME=(,RETAIN),
//         DSN=J999991.FORT.SOURCE,LABEL=EXPDT=99000
//COMPILE  EXEC FORTVCL
//FORT.SYSIN  DD DSN=J999991.FORT.SOURCE,DISP=SHR
//LKED.SYSLMOD DD DSN=J999991.LOADLIB,DISP=OLD
//LKED.SYSIN  DD *
  NAME        PROG1(R)

Cataloged procedures

Applications that require extensive use of JCL or those that are performed on a regular basis can be considerably simplified through the use of cataloged procedures. A cataloged procedure is a set of precoded control statements that can be executed by using a simple name on one control statement. Statements in a cataloged procedure can be temporarily modified by other statements submitted at the time the procedure is used. Cataloged procedures are contained in UTCC.MVS.PROCLIB or in a private procedure library. See chapter 12 for further information on cataloged procedures.


[ Top of Page | Previous Page | Next Page | Table of Contents ]