Interview Questions

JES3 control statements

Code JES3 control statements with JCL statements to control the input and output processing of jobs. The rules for coding and “Syntax of Parameters”, apply to the JES2 control statements.

Description

1.Considerations for an APPC Scheduling Environment
JES3 control statements have no function in an APPC scheduling environment. If you code them, the system will ignore them, and they will appear as comments in the job listing.

2.Considerations for Started Tasks
JES3 JECL statements are not supported for started tasks. Use of JECL statements will result in JES3 failing the job.

3.Location in the JCL
Place JES3 control statements, except the command and //**PAUSE statements, after the JOB statement and its continuations. JES3 ignores JES3 control statements, except the command and //**PAUSE  statements, that appear before the JOB statement or between continued JOB statements.

Do not include JES3 control statements in a cataloged or in-stream procedure. JES3 ignores JES3 control statements in a procedure.

4.Internal Reader
Use the following control statements when submitting jobs to the internal reader.
/*DEL
/*EOF

5.Examples of JES3 Control Statements
The first example shows JES3 control statements in relation to each other and to JCL statements for a job entered from a remote work station. No actual job should require all of these statements.

The second example shows an ordinary job entered through the local input stream.

The remainder of this chapter shows the recommended syntax for each control statement, with examples. Note, however, that for some JES3 control statements (such as the //* MAIN statement) a single slash followed by an asterisk (/*), rather than two slashes and an asterisk (//*), will be processed as syntactically acceptable. Your installation may disallow this option by using the ALTJCL keyword parameter of the STANDARDS initialization statement.

Example 

//**MESSAGE,CN1,ENTER A START COMMAND FOR THIS JOB
//**PAUSE
//TEST1      JOB   ,,MSGCLASS=A
//*NETACCT PNAME=MAEBIRD,ACCT=2K14920
//*NET       NETID=N1,NHOLD=0
//*PROCESS   CI
//*PROCESS   MAIN
//*PROCESS   OUTSERV
//*DATASET   DDNAME=STEP1.DD1
             .
             .
             data
             .
//*ENDDATASET
//*ENDPROCESS
//*OPERATOR THIS IS TEST JOB TEST1.
//*MAIN      CLASS=C
//*FORMAT    PR,DDNAME=STEP1.DD2,DEST=ANYLOCAL,COPIES=2
//*ROUTE XEQ NODE1
//FARJOB1    JOB    ,,MSGCLASS=A
//STEP1      EXEC   PGM=CHECKER
//DD1        DD     DSNAME=INPUT
//DD2        DD     SYSOUT=A
/*

Example 

//RUN2    JOB    ,,MSGCLASS=A
//*MAIN CLASS=B
//*FORMAT PR,DDNAME=STEPA.DD2,DEST=ANYLOCAL,COPIES=5
//STEPA   EXEC   PGM=WRITER
//DD1     DD     DSNAME=IN1,DISP=OLD,UNIT=3350,VOLUME=SER=MH2244
//DD2     DD     SYSOUT=A
/*

JES3 command statement

Purpose

Use the command statement to enter a JES3 operator command through the input stream.

JES3 usually executes an in-stream command as soon as it is read. Therefore, the command will not be synchronized with the execution of any job or step in the input stream. To synchronize a command with job processing, tell the operator the commands you want and when they should be issued, then let the operator enter them from the console.

1.Syntax

//**command-verb[,operand]...

The JES3 command statement consists of the characters //** in columns 1 through 4, the command verb beginning in column 5, and, if the command requires operands, a comma followed by the operands up through column 72. JES3 ignores columns 73 through 80.

Do not continue command statements from one card image to the next.

2.Parameter Definition

*command-verb
Indicates one of the following JES3 commands. Do not specify a *DUMP or *RETURN command on a JES3 command statement.

Command
Short Form

CALL X
CANCEL
     C
DELAY
    D
DISABLE
      H
ENABLE
     N
ERASE
     E
FAIL
FREE
INQUIRY I MESSAGE Z
MODIFY F RESTART R SEND T
START S SWITCH VARY   

operand
Specifies an operand that pertains to the command-verb.

3.Location in the JCL

  • Place JES3 command statements before the first JOB statement in the input stream, if you are also submitting jobs. JES3 treats any JES3 command statements that follow the JOB statement as comment statements.
  • You may enter several command statements at one time.
  • You may enter command statements through card, tape, or disk readers.
  • You may place command statements as the first statements in an active card reader that you are restarting.
  • You may not enter command statements through an internal reader (by issuing a TSO/E Submit command) or from another node.

4.Examples of the Command Statement

Example 

//**VARY,280,OFFLINE
//**V,281,OFFLINE
//**VARY,282,OFF
//**V,280-282,OFF

In this example, the first three statements each vary one device offline. Alternatively, the fourth statement varies all three devices offline. If you place these statements in card reader 01C, for example, and that card reader is currently not in use, the operator would enter through the operator console:

*X CR,IN=01C

Example 

//**MESSAGE,CN1,OUTPUT FROM JOB X REQUIRES SPECIAL CONTROLS

This statement instructs the operator from a remote location. Place this statement before the first job in the input stream.


//*DATASET statement

Purpose

Use the //*DATASET statement to identify the beginning of an in-stream data set, which can contain JCL statements or data. (The //*ENDDATASET statement ends the in-stream data set.) The data set can be used as input to a dynamic support program (DSP), such as OUTSERV.

Note: Make sure the operator includes a C operand on the *CALL command for the reader that reads a job containing this statement if it contains a MODE=C parameter.

1.Syntax

//*DATASET DDNAME=ddname[,parameter]...

The parameters are:

  MODE= {E}
        {C}
J= {YES} {NO }
CLASS= {NO } {MSGCLASS} {class }

The //*DATASET statement consists of the characters //* in columns 1 through 3, DATASET in columns 4 through 10, a blank in column 11, and parameters in columns 12 through 72. JES3 ignores columns 73 through 80.

2.Parameter Definition

DDNAME=ddname
Specifies the name of the in-stream data set that follows the //*DATASET statement.

MODE=E
MODE=C
Defines the card-reading mode.

E Indicates that JES3 is to read the statements as EBCDIC with validity checking. E is the default if the MODE parameter is omitted.

C Indicates that JES3 is to read the statements in card image form, that is, in column binary or data mode 2.

MODE=C is not valid for jobs read from disk or tape, or for jobs submitted from remote work stations.

J=YES
J=NO
Indicates how JES3 is to recognize the end of the data set. If you specify MODE=C, JES3 ignores the J parameter; therefore, use a //*ENDDATASET statement to end the data set

YES
Indicates that a //*ENDDATASET statement ends the data set. Specify YES when JOB statements appear in the data set.

NO
Indicates that a JOB statement ends the data set. NO is the default if the J parameter is omitted, unless MODE=C is specified.

CLASS=NO
CLASS=MSGCLASS
CLASS=class
Identifies the output class JES3 is to use for the data set.

NO
Indicates that the system is to assign an output class. If you omit the CLASS parameter, the default is NO.

MSGCLASS
Requests the output class in the MSGCLASS parameter on the JOB statement.

class
Specifies the output class.

3.Location in the JCL
Place a //*DATASET statement immediately before the first record of an in-stream data set.

4.Example of the //*DATASET Statement

//*PROCESS OUTSERV
//*DATASET DDNAME=MYPRINT,J=YES
    .
    .
    data
    .
    .
 //*ENDDATASET
 //*FORMAT PR,DDNAME=MYPRINT,COPIES=5
 //STEP1 EXEC ...
    .
    .

In this example, the //*DATASET statement marks the beginning of the in-stream data set MYPRINT. The //*FORMAT PR statement requests five copies of it. The //*ENDDATASET statement marks the end of the data set.


//*ENDDATASET statement

Purpose
Use the //*ENDDATASET statement to indicate the end of an in-stream data set that was begun with a //*DATASET statement.

1.Syntax

//*ENDDATASET

The //*ENDDATASET statement consists of the characters //* in columns 1 through 3 and ENDDATASET in columns 4 through 13. Columns 14 through 80 must be blank.

2.Location in the JCL
Place a //*ENDDATASET statement immediately after the last record of an in-stream data set that was begun with a //*DATASET statement.

3.Example of the //*ENDDATASET Statement

//*DATASET DDNAME=INFO,J=YES
     .
     .
     data
     .
     . 
//*ENDDATASET

In this example, the //*ENDDATASET statement marks the end of the in-stream data set INFO.


//*ENDPROCESS statement

Purpose

Use the //*ENDPROCESS statement to indicate the end of a series of //*PROCESS statements in a job.

1.Syntax

//*ENDPROCESS [comments]

The //*ENDPROCESS statement consists of the characters //* in columns 1 through 3, ENDPROCESS in columns 4 through 13, a blank in column 14, and, optionally, comments starting in any column beginning with 15. JES3 ignores columns 73 through 80.

2.Location in the JCL
Place a //*ENDPROCESS statement immediately after the last //*PROCESS statement in a job. The //*ENDPROCESS statement is optional if a JCL statement follows the last //*PROCESS statement.

Do not place any //*PROCESS statements after the //*ENDPROCESS statement.

3.Example of the //*ENDPROCESS Statement

//*ENDPROCESS   END OF PROCESS STATEMENTS

//*FORMAT PR statement

Purpose

Use the //*FORMAT PR statement to specify to JES3 processing instructions for sysout data sets that are printed. These instructions permit special processing of sysout data sets, such as:

  • Multiple destinations.
  • Multiple copies of output with different attributes.
  • Forced single or double space control.
  • Printer overflow checking.

//*FORMAT PR statements can be either specific or nonspecific. A specific //*FORMAT PR statement contains a DDNAME parameter that specifies something other than a null value, such as DDNAME=ddname or DDNAME=JESYSMSG. A nonspecific //*FORMAT PR statement contains DDNAME= , with no value (null) specified for the DDNAME parameter.

You can code multiple specific //*FORMAT PR statements for a particular sysout data set to specify special requirements for different copies of the data set. In addition, you can code a //*FORMAT PU statement for the same sysout data set, thereby both printing and punching it.

You can also code multiple nonspecific //*FORMAT PR statements. In this case, the system produces only one copy of each data set, combining any parameter values specified on the statements. If you specify a given parameter on more than one of these statements, the system uses the parameter value specified on the last //*FORMAT PR statement containing that parameter.

Note: The //*FORMAT PR statement applies only to sysout data sets printed by JES3. The statement is ignored for data sets sent to a TSO/E userid or processed by an external writer.

1.Syntax

The //*FORMAT PR statement consists of the characters //* in columns 1 through 3, FORMAT in columns 4 through 9, and a blank in column 10. PR begins in column 11 or beyond, followed by a comma, and parameters start after the command and can continue through column 72. JES3 ignores columns 73 through 80.

2.Parameter Definition

PR
Indicates that this statement is associated with a sysout data set that is printed.

DDNAME=
DDNAME=ddname
DDNAME=stepname.ddname
DDNAME=stepname.procstepname.ddname
DDNAME=procstepname.ddname
DDNAME=JESYSMSG
DDNAME=JESJCL
DDNAME=JESMSGLG

(null)
Specifies that the parameters on this //*FORMAT PR statement are the defaults for the job. These parameters then apply to all of the job’s sysout data sets that are printed, except those covered by a //*FORMAT PR statement with a value other than (null) for DDNAME.

Overrides: Parameters coded on a nonspecific //*FORMAT PR statement are overridden by parameters coded on sysout DD statements or by parameters in the JES3 SYSOUT initialization statement.

ddname
stepname.ddname
stepname.procstepname.ddname
procstepname.ddname
Identifies the DD statement that defines the sysout data set to be printed; for example, ddname indicates all DD statements with the name, ddname, in this job. Stepname.ddname indicates DD statement, ddname, in step, stepname, in this job.

Stepname.procstepname.ddname indicates DD statement, ddname, in procedure step, procstepname, of a procedure that is called by a step, stepname, in this job. The ddname must match exactly the ddname on the DD statement. (See the example for the //*DATASET statement.) If the identified DD statement does not contain a SYSOUT parameter, JES3 ignores the //*FORMAT PR statement.

Note: If a ddname matches more than one //*FORMAT PR statement, the //*FORMAT PR statement that has more qualifiers for the ddname will override the others.

JESYSMSG
Requests printing of system messages for this job.

JESJCL
Requests printing of JCL statements and messages for this job.

JESMSGLG
Requests printing of JES3 and operator messages for this job.

CARRIAGE=carriage-tape-name
CARRIAGE=6
Specifies the carriage tape for the 3211, 3203 Model 5, or 1403 Printer for printing this output class.

carriage-tape-name
Identifies the name of the carriage tape. The name is 1 through 8 characters. For the 3211 and 3203-5, SYS1.IMAGELIB must contain a module for each carriage tape name.

6 Indicates the installation standard carriage tape.

Note: You cannot code both the CARRIAGE and FCB parameters on the same //*FORMAT PR statement.

CHARS=STANDARD
CHARS=table-name
CHARS=(table-name[,table-name]...)
Requests one or more fonts for printing the sysout data set on an AFP printer.

STANDARD
Indicates the standard character-arrangement table, which was specified at JES3 initialization.

table-name
Identifies a character-arrangement table. Each table-name is 1 through 4 alphanumeric or national ($, #, @) characters. When coding more than one table-name, parentheses are required around the list and null positions are invalid in the list.

CHNSIZE=DS
CHNSIZE=(nnn[,mmm])
Gives the number of logical records to be transmitted to a work station as a systems network architecture (SNA) chain and indicates whether normal output checkpoints are to be taken for this sysout data set.

Note: This parameter is valid only when transmitting to a SNA work station.

Be careful in selecting subparameters, because each affects performance differently. Sending the data set as a SNA chain provides the best performance, but can cause duplicate data to be written to the output device if operator intervention is required. The remote operator can eliminate duplicate data by issuing commands to reposition and restart the output writers.

When an end-of-chain indicator is sent in the data set, JES3 takes an output checkpoint. You can provide additional checkpoints for critical data by sending an end-of-chain indicator. For example, when printing bank checks, you can have an output checkpoint taken for each check by specifying each check as a SNA chain.

DS
Indicates that the sysout data set is to be sent as a single SNA chain and that JES3 is not to take normal output checkpoints. DS is the default if the CHNSIZE parameter is omitted.

nnn
Specifies the SNA chain size in pages. nnn is a decimal number from 1 through 255. The size of a page is determined by:

  • The value of mmm.
  • The carriage control characters in the data that skip to channel 1.

mmm
Specifies the number of logical records in a page, when the data contains no carriage control characters. mmm is a decimal number from 1 through 255.

COMPACT=compaction-table-name
Specifies the compaction table for JES3 to use when sending a systems network architecture (SNA) data set to a SNA remote terminal. The compaction-table-name is a symbolic name defined by the installation during JES3 initialization. The name is 1 through 8 alphanumeric characters.

In the following cases, JES3 performs compaction using an installation default table, if defined, or sends the data without compacting it, if no table was defined. In all cases, JES3 writes a message to the console.

  • No compaction table is specified.
  • The specified compaction table is invalid.
  • JES3 cannot find the specified compaction table.

If the remote printer does not support compaction, JES3 ignores the COMPACT parameter and sends the data without compacting it.

CONTROL=PROGRAM
CONTROL=SINGLE
CONTROL=DOUBLE
CONTROL=TRIPLE
Indicates either that the data records control printing or that the output is to be printed with single, double, or triple spacing.

PROGRAM
Indicates that each logical record in the data set begins with a carriage control character. You can specify in the DD statement, the DCB macro, or the data set label that an optional control character is part of each record in the data set. The carriage control characters can be in either the extended USASCII code or can be the actual channel command code. The carriage control characters are given in z/OS DFSMS: Using Data Sets.

SINGLE
Requests single spacing.

DOUBLE
Requests double spacing.

TRIPLE
Requests triple spacing.

COPIES=nnn
COPIES=(nnn,(group-value[,group-value]...))
COPIES=(group-value[,group-value]...)
Indicates how many copies of the sysout data set to print. If you do not specify a COPIES parameter, the default is 1.

You can omit the parentheses if you code only nnn.

nnn
A number from 1 through 254 that specifies how many copies of the data set to print. Each copy will be in page sequence order.

If you code COPIES=0 on the DD statement, the system uses a default of 1, which is the default for the DD COPIES parameter. JES3 ignores nnn if any group-values are specified.

group-value
Specifies how many copies of each page are to be printed before the next page is printed. Each group-value is a number from 1 through 255. You can code a maximum of eight group-values. Their sum must not exceed 255. The total copies of each page equals the sum of the group-values.

This subparameter is valid only for output on a 3800 Printing Subsystem. Group values override an nnn subparameter.

DEST=destination
Routes the output from the sysout data set to a printer. This parameter overrides the //*MAIN statement ORG parameter.

If you omit DEST, JES3 assigns the first available printer that is in the origin group and that fulfills all processing requirements. The origin group is the group of printers defined for the local or remote submitting location.

If the job originated at a remote job processing (RJP) terminal, JES3 returns the output to the originating terminal group. If the job was submitted through TSO/E to the NJE network for execution, the default is the node from which the job was submitted, and the destination ANYLOCAL.

ANYLOCAL
Indicates any local printer that is being used for the output class specified in the SYSOUT parameter on the DD statement and that is attached to the global processor.

device-name
Requests a local device by a symbolic name defined by the installation during JES3 initialization. device-name is 1 through 8 alphanumeric or national ($, #, @) characters.

device-number
Identifies a specific device by a 3-digit or 4-digit hexadecimal number. Precede a 4-digit number with a slash (/). A 3-digit number can be specified with or without a slash.

group-name
Identifies a group of local devices, an individual remote station, or a group of remote stations by a symbolic name defined by the installation during JES3 initialization. group-name is 1 through 8 alphanumeric or national ($, #, @) characters.

nodename
Identifies a node by a symbolic name defined by the installation during JES3 initialization. nodename is 1 through 8 alphanumeric or national ($, #, @) characters.

remote
Identifies a remote work station or VM userid to which the receiving node directs output. remote is 1 through 8 characters.

(type)
Indicates a device classification. type is in the form (gggssss) where ggg is the general device  classification and ssss is the specific device classification. The type must be enclosed in parentheses. The type must be defined by the installation during JES3 initialization. For example, type for a 3800 is (PRT3800).

EXTWTR=name
Identifies the external writer that is to process the sysout data set at the destination node. name is 1 through 8 alphanumeric characters and must identify a module defined to the remote JES3 node that is to execute the job. (Do not code NJERDR, it is reserved for JES3.)

FCB=image-name
FCB=6
Specifies the forms control buffer (FCB) image JES3 is to use to guide printing of the sysout data set by a 1403 Printer, 3211 Printer, 3203 Printer Model 5, 4245 Printer, 4248 Printer, or 3800 Printing Subsystem, or by a printer supported by systems network architecture (SNA) remote job processing (RJP).

If the data set is to be produced on some other device, JES3 ignores the FCB parameter.

image-name
Identifies the FCB image. The name is 1 through 4 alphanumeric or national ($, #, @) characters and is the last characters of a SYS1.IMAGELIB member name:

  • FCB2xxxx member for a 3211, 3203 model 5, or printer supported by SNA.
  • FCB3xxxx member for a 3800.
  • FCB4xxxx member for a 4248.

6 Indicates the standard FCB. JES3 uses the standard FCB specified at JES3 initialization.

Note: You cannot code both the CARRIAGE and FCB parameters on the same//*FORMAT PR statement.

FLASH=STANDARD
FLASH=overlay-name
FLASH=(overlay-name[,count])
Identifies the forms overlay to be used in printing the sysout data set on a 3800 Printing Subsystem and, optionally, to specify the number of copies on which the forms overlay is to be printed.

You can omit the parentheses if you code only an overlay-name. If you omit the count subparameter or specify a count of 0, JES3 flashes all copies with the specified overlay.

STANDARD
Indicates the standard forms flash overlay. JES3 uses the standard forms overlay specified at JES3 initialization.

overlay-name
Identifies the forms overlay frame that the operator is to insert into the printer before printing begins. The name is 1 through 4 alphanumeric or national ($, #, @) characters.

count
Specifies the number, 0 through 255, of copies that JES3 is to flash with the overlay, beginning with the first copy printed. Code a count of 0 to flash all copies.

Note: See the Forms Design Reference Guide for the 3800 for information on designing and making forms overlays.

FORMS=STANDARD
FORMS=form-name
Indicates the forms on which the sysout data set is to be printed.

STANDARD
Indicates the standard form. JES3 uses the standard form specified at JES3 initialization.

form-name
Names the print forms. form-name is 1 through 8 alphanumeric characters.

MODIFY=module-name
MODIFY=(module-name[,trc])
Specifies a copy modification module that tells JES3 how to print the sysout data set on a 3800 Printing Subsystem. The module can specify how to replace blanks or data in the data set. You can omit the parentheses if you code only a module-name.

The module is defined and stored in SYS1.IMAGELIB using the IEBIMAGE utility program.If you omit the trc subparameter, JES3 prints the data set with the first character-arrangement table coded in the CHARS parameter.

module-name
Identifies a copy modification module in SYS1.IMAGELIB. module-name is 1 through 4 alphanumeric or national ($, #, @) characters.

trc
Identifies which table-name in the CHARS parameter is to be used. This table reference character is 0 for the first table-name specified, 1 for the second, 2 for the third, or 3 for the fourth.

OVFL=ON
OVFL=OFF
Indicates whether or not the printer program should test for forms overflow. Because the overflow test is a responsibility of the terminal package for the remote RJP terminal, JES3 ignores OVFL for remote job processing.

ON
Indicates that the printer program should eject whenever the end-of-forms indicator (channel 12) is sensed. ON is the default if the OVFL parameter is omitted.

OFF
Indicates that forms overflow control is not to be used.

PRTY=nnn
Specifies the priority at which the sysout data set enters the output queue. Nnn is a decimal number from 0 through 255; 0 is the lowest priority while 255 is the highest.

STACKER=STANDARD
STACKER=S
STACKER=C
Requests a stacker for output processed by PSF on any continuous forms AFP printer.

STANDARD
Indicates the standard installation default. This default is specified at JES3 initialization.

S Indicates the burster-trimmer-stacker, in which the output is burst into separate sheets.

C Indicates the continuous forms stacker, in which the output is left in continuous fanfold.

THRESHLD=limit
Specifies the maximum size for the sysout data set. JES3 calculates the sysout data set size as the number of records multiplied by the number of copies requested. When this size exceeds the THRESHLD value, JES3 creates a new unit of work, on a data set boundary, and queues it for printing. Consequently, copies of the sysout data set may be printed simultaneously by different printers.

Use the THRESHLD  parameter for jobs that generate many large sysout data sets. Grouping data sets as a single unit of work for an output service writer may decrease the time required for the output service writer to process the data sets.

The value specified in this parameter overrides the value specified during JES3 initialization.

limit
Specifies the maximum records for a single sysout data set. limit is a decimal number from 1 through 99999999. The default is 99999999.

TRAIN=STANDARD
TRAIN=train-name
Indicates the printer train to be used in printing the sysout data set. Because these trains are not standard machine features, verify that the installation has the required printer train before specifying it.

Do not code the TRAIN parameter for output destined for a remote job processing (RJP) terminal.

STANDARD
Indicates the standard installation default. This default is specified at JES3 initialization.
train-name
Specifies an installation-supplied printer train. Check with your installation for the names of trains.

3.Relationship to Sysout DD and OUTPUT JCL Statements

  • JES3 ignores the processing options specified on a default //*FORMAT statement when a sysout DD statement explicitly or implicitly references an OUTPUT JCL statement.
  • JES3 ignores the processing options specified on a default OUTPUT JCL statement when a //*FORMAT statement explicitly references a sysout DD statement.
  • When a sysout DD statement explicitly references an OUTPUT JCL statement and a //*FORMAT statement explicitly references the same DD statement, the processing options from both the OUTPUT JCL and //*FORMAT statements apply. Two separate sets of output are created from the data set defined by the sysout DD statement; one according to the processing options on the OUTPUT JCL and DD statements, and the other according to the processing options on the //*FORMAT and DD statements.

4.Relationship to //*PROCESS Statement
JES3 accumulates //*FORMAT PR statements within a job and applies them to any JES3 //*PROCESS statement that is normally affected by a //*FORMAT PR statement.

5.Location in the JCL
Place all //*FORMAT PR statements for the job after the JOB statement and before the first EXEC statement.

6.Examples of the //*FORMAT PR Statement

Example 

//*FORMAT    PR,DDNAME=STEP1.REPORT,COPIES=2

This statement requests two copies of the data set defined by sysout DD statement REPORT, which appears in STEP1 of this job. Any printer with standard forms, train, and carriage tape can be used.

Example 

//*FORMAT    PR,DDNAME=,DEST=ANYLOCAL

This statement specifies that all sysout data sets not referenced by //*FORMAT PR statements are to be printed on any local printer.

Example 

//*FORMAT   PR,DDNAME=STEP1.REPORT,DEST=A
//*FORMAT   PR,DDNAME=REPORT,DEST=B

This statement requests one copy of the data set defined by sysout DD statement REPORT, which appears in STEP1 of this job, to be sent to destination A and one copy of the data set defined by sysout DD statement REPORT to be sent to destination B. The REPORT data set for STEP1 is sent to destination A because the //*FORMAT PR statement with more qualifiers for the same ddname overrides the other. The REPORT data set for any other step is sent to destination B.


//*FORMAT PU statement

Purpose

Use the //*FORMAT PU statement to specify to JES3 processing instructions for sysout data sets that are punched. These instructions permit special processing of sysout data sets, such as:

  • Multiple destinations.
  • Multiple copies of output with different attributes.

Use the //*FORMAT PU statements can be either specific or nonspecific. A specific //*FORMAT PU statement contains a DDNAME parameter that specifies something other than a null value, such as DDNAME=ddname or DDNAME=JESYSMSG. A nonspecific //*FORMAT PU statement contains DDNAME= , with no value (null) specified for the DDNAME parameter.

You can code multiple specific //*FORMAT PU statements for a particular sysout data set to specify special requirements for different copies of the data set. In addition, you can code a //*FORMAT PR statement for the same sysout data set,thereby both printing and punching it.

You can also code multiple nonspecific //*FORMAT PU statements. In this case, the system produces only one copy of each data set, combining any parameter values specified on the statements. If you specify a given parameter on more than one of these  statements, the system uses the parameter value specified on the last //*FORMAT PU statement containing that parameter.

Note: The //*FORMAT PU statement applies only to sysout data sets punched by JES3. The statement is ignored for data sets sent to a TSO/E userid or processed by an external writer.

1.Syntax

//*FORMAT PU,DDNAME=   {ddname }                      [,parameter]...
                       {stepname.ddname }               parameter]...
                       {stepname.procstepname.ddname}
//*FORMAT PU,DDNAME=[,parameter]...

The parameters are:

CHNSIZE= {DS }
         {(nnn[,mmm])}
COMPACT=compaction-table-name
COPIES=nnn
DEST= {ANYLOCAL } {device-name } {device-number } {group-name } {nodename[.remote] } {(type[,device-name]) } {(type[,device-number])} {(type[,group-name]) }
EXTWTR=name
FORMS= {STANDARD } {form-name}
INT= {YES} {NO }

The //*FORMAT PU statement consists of the characters //* in columns 1 through 3, FORMAT in columns 4 through 9, and a blank in column 10. PU begins in column 11 or beyond, followed by a comma, and parameters start after the comma and continue through column 72. JES3 ignores columns 73 through 80.

2.Parameter Definition

PU
Indicates that this statement is associated with a sysout data set that is punched.

DDNAME=
DDNAME=ddname
DDNAME=stepname.ddname
DDNAME=stepname.procstepname.ddname

(null)
Specifies that the parameters on this //*FORMAT PU statement are the defaults for the job. These parameters then apply to all of the job’s sysout data sets that are punched except those covered by a //*FORMAT PU statement with a value other than (null) for DDNAME.

Overrides: Parameters coded on a nonspecific //*FORMAT PU statement are overridden by parameters coded on sysout DD statements or by parameters in the JES3 SYSOUT initialization statement.

ddname
stepname.ddname
stepname.procstepname.ddname
Identifies the DD statement that defines the sysout data set to be punched. Use form ddname to indicate all DD statements with the name, ddname, in this job. Use form stepname.ddname to indicate DD statement, ddname, in step, stepname, in this job. Use form stepname.procstepname.ddname to indicate DD statement, ddname, in procedure step, procstepname, of a procedure that is called by a step,  stepname, in this job. The ddname must match exactly the ddname on the DD statement. If the identified DD statement does not contain a SYSOUT parameter, JES3 ignores the //*FORMAT PU statement.

Note: If a ddname matches more than one //*FORMAT PU statement, the //*FORMAT PU statement that has more qualifiers for the ddname will override the others.

CHNSIZE=DS CHNSIZE=(nnn[,mmm])
Gives the number of logical records to be transmitted to a work station as a systems network architecture (SNA) chain and indicates whether normal output checkpoints are to be taken for this sysout data set.

Note: This parameter is valid only when transmitting to a SNA work station.

Be careful in selecting subparameters, because each affects performance differently. Sending the data set as a SNA chain provides the best performance, but can cause duplicate data to be written to the output device if an operator intervention is required. The remote operator can eliminate duplicate data by issuing commands to reposition and restart the output writers.

When an end-of-chain indicator is sent in the data set, JES3 takes an output checkpoint. You can provide additional checkpoints for critical data by sending an end-of-chain indicator. For example, when punching bank checks, you can have an output checkpoint taken for each check by specifying each check as a SNA chain.

DS
Indicates that the sysout data set is to be sent as a single SNA chain and that JES3 is not to take normal output checkpoints. DS is the default if the CHNSIZE parameter is omitted.

nnn
Specifies the SNA chain size in pages. nnn is a decimal number from 1 through 255. The size of a page is determined by the value you assign to mmm.

mmm
Specifies the number of logical records in a page. mmm is a decimal number from 1 through 255.

COMPACT=compaction-table-name
Specifies the compaction table for JES3 to use when sending a systems network architecture (SNA) data set to a SNA remote terminal. The compaction-table-name is a symbolic name defined by the installation during JES3 initialization. The name is 1 through 8 alphanumeric characters.

In the following cases, JES3 performs compaction using an installation default table, if defined, or sends the data without compacting it, if no table was defined. In all cases, JES3 writes a message to the console.

  • No compaction table is specified.
  • The specified compaction table is invalid.
  • JES3 cannot find the specified compaction table.

If the remote punch does not support compaction, JES3 ignores the COMPACT parameter and sends the data without compacting it.

COPIES=nnn
Indicates how many copies of the sysout data set are to be punched. nnn is a number from 0 through 255. If you code COPIES=0, JES3 does not punch this data set. If a COPIES parameter is not specified, the default is 1.

DEST=destination
Routes the output from the sysout data set to a punch. This parameter overrides the //*MAIN statement ORG parameter.

If you omit DEST, JES3 assigns the first available punch that is in the origin group and that fulfills all processing requirements. The origin group is the group of punches defined for the local or remote submitting location. If the job originated at a remote job processing (RJP) terminal, JES3 returns the output to the originating terminal group.

If the job was submitted through TSO/E to the NJE network for execution, the default is the node from which the job was submitted, and the destination ANYLOCAL.

ANYLOCAL
Indicates any local punch that is being used for the output class specified in the SYSOUT parameter on the DD statement and that is attached to the global processor.

device-name
Requests a local device by a symbolic name defined by the installation during JES3 initialization. device-name is 1 through 8 alphanumeric or national ($, #, @) characters.

device-number
Specifies the 3-digit or 4-digit hexadecimal device number. Precede a 4-digit number with a slash (/). A 3-digit number can be specified with or without a slash.

group-name
Identifies a group of local devices, an individual remote station, or a group of remote stations by a symbolic name defined by the installation during JES3 initialization. group-name is 1 through 8 alphanumeric or national ($, #, @) characters.

nodename
Identifies node by a symbolic name defined by the installation during JES3 initialization. nodename is 1 through 8 alphanumeric or national ($, #, @) characters.

remote
Identifies a remote work station or VM userid to which the receiving node directs output. remote is 1 through 8 characters.

(type)
Indicates a device classification. type is in the form (gggssss) where ggg is the general device classification and ssss is the specific device classification. The type must be enclosed in parentheses. The type must be defined by the installation during JES3 initialization. For example, type for a 3525 is (PUN3525).

EXTWTR=name
Identifies the external writer that is to process the sysout data set at the destination node. name is 1 through 8 alphanumeric characters and must identify a module defined to the remote JES3 node that is to execute the job.

FORMS=STANDARD
FORMS=form-name
Indicates the forms on which the sysout data set is to be punched.

STANDARD
Indicates the standard form. JES3 uses the standard form specified at JES3 initialization.
form-name
Names the punch forms. form-name is 1 through 8 alphanumeric characters.

INT=YES
INT=NO
Specifies whether or not the output is to be interpreted. If the INT parameter is omitted, the default is NO.

YES
Requests that JES3 try to punch the sysout data set on a 3525 Card Punch (PUN3525I) with a Multiline Card Print feature.
Note: If the DEST parameter does not send output to a 3525I, JES3 ignores INT=YES, if specified.

NO
Requests that the cards not be interpreted.

3.Relationship to Sysout DD and OUTPUT JCL Statements

  • JES3 ignores the processing options specified on a default //*FORMAT statement when a sysout DD statement explicitly or implicitly references an OUTPUT JCL statement.
  • JES3 ignores the processing options specified on a default OUTPUT JCL statement when a //*FORMAT statement explicitly references a sysout DD statement.
  • When a sysout DD statement explicitly references an OUTPUT JCL statement and a //*FORMAT statement explicitly references the same DD statement, the processing options from both the OUTPUT JCL and //*FORMAT statements apply. Two separate sets of output are created from the data set defined by the sysout DD statement; one according to the processing options on the OUTPUT JCL and DD statements, and the other according to the processing options on the //*FORMAT and DD statements.

4.Relationship to //*PROCESS Statement
JES3 accumulates //*FORMAT PU statements within a job and applies them to any JES3 //*PROCESS statement that is normally affected by a //*FORMAT PU statement.

5.Location in the JCL
Place all //*FORMAT PU statements for the job after the JOB statement and before the first EXEC statement.

6.Examples of the //*FORMAT PU Statement

Example 

//*FORMAT    PU,DDNAME=STEP2.PUNCHOUT,DEST=PU1,FORMS=RED-STRP

This statement requests that one copy of the data set defined by sysout DD statement PUNCHOUT in STEP2 of this job be punched on device PU1. Before processing, the operator is requested to insert RED-STRP cards into the punch.

Example 

//*FORMAT   PU,DDNAME=STEP1.PUNCHOUT,DEST=DEVA
//*FORMAT   PU,DDNAME=PUNCHOUT,DEST=DEVB

This statement requests one copy of the data set defined by sysout DD statement PUNCHOUT in STEP1 of this job to be punched on device DEVA and one copy of the data set defined by sysout DD statement PUNCHOUT to be punched on device DEVB. The PUNCHOUT data set for STEP1 is sent to DEVA because the //*FORMAT PU statement with more qualifiers for the same ddname overrides the other. The PUNCHOUT data set for any other step is sent to DEVB.


//*MAIN Statement Purpose

Purpose
Use the //*MAIN statement to define the processor requirements for the current job. Many of the parameters are used to override parameters on the JES3 STANDARDS initialization statement.

Note: If any parameter is misspelled or contains an invalid value, JES3 writes the following to the JESMSG data set: the //*MAIN statement, the relative error position on the statement, and an error message. Then JES3 abnormally terminates the job.

1.Syntax

//*MAIN parameter[,parameter]...

The parameters are:

ACMAIN=processor-id
BYTES= {([nnnnnn][,WARNING][,mmm])}
{([nnnnnn][,W][,mmm]) }
{([nnnnnn][,CANCEL]) } {([nnnnnn][,C]) } {([nnnnnn][,DUMP]) } {([nnnnnn][,D]) }
CARDS= {([nnnn][,WARNING][,mmm])} {([nnnn][,W][,mmm]) } {([nnnn][,CANCEL]) } {([nnnn][,C]) } {([nnnn][,DUMP]) } {([nnnn][,D]) }
CLASS=class-name
DEADLINE= {(time,type[,date]) } {(time,type[,rel,cycle])}
EXPDTCHK= {YES} {NO }
FAILURE= {RESTART} {CANCEL } {HOLD } {PRINT }
FETCH= {ALL } {NONE } {SETUP }
{(ddname[,ddname]...) } {/(ddname[,ddname]...)}
HOLD= {YES} {NO }
IORATE= {MED }
{HIGH} {LOW }
JOURNAL= {YES} {NO }
LINES= {([nnnn][,WARNING][,mmm])} {([nnnn][,W][,mmm]) } {([nnnn][,CANCEL]) } {([nnnn][,C]) } {([nnnn][,DUMP]) } {([nnnn][,D]) }
LREGION=nnnnK
ORG= {group-name } {nodename[.remote]}
PAGES= {([nnnnnnnn][,WARNING][,mmm])} {([nnnnnnnn][,W][,mmm]) } {([nnnnnnnn][,CANCEL]) } {([nnnnnnnn][,C]) } {([nnnnnnnn][,DUMP]) } {([nnnnnnnn][,D]) }
PROC= {ST} {xx}
RINGCHK= {YES} {NO }
SETUP= {JOB } {HWS } {THWS } {DHWS }
{(stepname.ddname[,stepname.ddname]...) } {(stepname.procstepname.ddname[,stepname.procstepname.ddname]...) } {/(stepname.ddname[,stepname.ddname]...) } {/(stepname.procstepname.ddname[,stepname.procstepname.ddname]...)}
SPART=partition-name
SYSTEM= {ANY } {JGLOBAL } {JLOCAL } {(main-name[,main-name]...) } {/(main-name[,main-name]...)}
THWSSEP= {IGNORE } {PREFER } {REQUIRE}
TRKGRPS=(primary-qty,second-qty)
TYPE= {ANY} {VS2}
UPDATE=(dsname[,dsname]...)
USER=userid

The //*MAIN statement consists of the characters //* in columns 1 through 3, MAIN in columns 4 through 7, a blank in column 8, and parameters in columns 9 through 72. JES3 ignores columns 73 through 80

2.Parameter Definition

ACMAIN=processor-id
Identifies the job with the specified processor, even though the job was not submitted from or run on that processor. ACMAIN allows:

  • Sysout data sets to be sent to a userid attached to the specified processor. The userid must be named in the USER parameter. The ACMAIN parameter applies to all sysout data sets for the job.
  • Receipt of notification that a job you submitted through batch processing has completed by coding the ACMAIN parameter on a JES3 //*MAIN statement in addition to the JOB statement NOTIFY parameter. The ACMAIN parameter names the processor that you, the TSO/E user, are logged onto.

processor-id
Requests a processor in the complex.

BYTES=([nnnnnn][,WARNING][,mmm])
BYTES=([nnnnnn][,W][,mmm])
BYTES=([nnnnnn][,CANCEL])
BYTES=([nnnnnn][,C])
BYTES=([nnnnnn][.DUMP])
BYTES=([nnnnnn][,D])
Specifies the maximum number of bytes of data to be spooled from this job’s sysout data sets and the action to be taken if the maximum is exceeded.

If BYTES is not specified, the installation default for this job class applies.

nnnnnn
Specifies the number of bytes in thousands. nnnnnn is 1 through 6 decimal numbers from 1 through 999999.

WARNING or W
If the maximum is exceeded, requests that JES3 issue an operator warning message and continue processing.

Any messages about this parameter following the warning message will reflect the number specified on the STANDARD initialization statement or the system default, not the specified maximum.

mmm
Specifies the frequency that an operator warning message is to be issued after the maximum specified by nnnnnn is exceeded. mmm is a multiple of 10 in the range 10 to 100. mmm is a percentage of nnnnnn that is used to calculate the number of additional bytes between warning messages. For example, if BYTES=(100,W,20) is specified, the first warning message is sent to the operator when 100,000 bytes of sysout data is reached. Subsequent warning messages are sent when each additional 20 percent of 100,000 is reached (at 120,000 bytes, 140,000 bytes, and so on). Messages are sent until the job ends or the operator cancels the job.

CANCEL or C
If the maximum is exceeded, requests that JES3 cancel the job.

DUMP or D
If the maximum is exceeded, requests that JES3 cancel the job and ask for a storage dump.

CARDS=([nnnn][,WARNING][,mmm])
CARDS=([nnnn][,W][,mmm])
CARDS=([nnnn][,CANCEL])
CARDS=([nnnn][,C])
CARDS=([nnnn][,DUMP])
CARDS=([nnnn][,D])
Specifies the maximum number of cards to be punched from this job’s sysout data sets and the action to be taken if the maximum is exceeded. If you specify CARDS=0 the zero applies only to the quantity of punched output; it does not cancel the action to be taken if the maximum is exceeded. If a record is then sent to a punch, JES3 will warn, cancel, or dump, depending on the second parameter.

Note: When punching dump output, JES3 ignores CARDS=0.

 If CARDS is not specified, the installation default for this job class is used.

nnnn
Specifies the number of cards in hundreds. nnnn is 1 through 4 decimal numbers from 1 through 9999.

WARNING or W
If the maximum is exceeded, requests that JES3 issue an operator warning message and continue processing.

Any subsequent messages about this parameter will reflect the number specified on the STANDARD initialization statement or the system default, not the maximum specified in the CARDS parameter.

mmm
Specifies the frequency that an operator warning message is to be issued after the maximum specified by nnnn is exceeded. mmm is a multiple of 10 in the range 10 to 100. mmm is a percentage of nnnn that is used to calculate the number of additional cards between warning messages. For example, if CARDS=(100,W,20) is specified, the first warning message is sent to the operator when 10,000 cards of sysout data is reached. Subsequent warning messages are sent when each additional 20 percent of 10,000 is reached (at 12,000 cards, 14,000 cards, and so on). Messages are sent until the job ends or the operator cancels the job.

CANCEL or C
If the maximum is exceeded, requests that JES3 cancel the job.

DUMP or D
If the maximum is exceeded, requests that JES3 cancel the job and ask for a storage dump.

CLASS=class-name
Specifies the job class for this job. class-name is 1 through 8 characters.

If the desired class-name is a single-character, you can specify it on the //*MAIN statement or the JOB statement.

JES3 uses the following, in override order, to assign the job to a class:

  1. //*MAIN statement CLASS parameter
  2. JOB statement CLASS parameter
  3. The default class, which is defined during JES3 initialization.

If neither CLASS nor LREGION is specified, JES3 determines the logical region size based on initialization parameters.

DEADLINE=(time,type[,date])
DEADLINE=(time,type[,rel,cycle])
Specifies when the job is required.

When you specify the current date but submit the job after the specified time, JES3 changes the priorities to make the job the same priority level it would have if it had been submitted before the deadline but not completed.

Attention: Deadline scheduling can interfere with dumping a portion of the job queue. For example, if JOB A is waiting to be scheduled, has a priority of 7, and, in one minute, is due to have its priority  increased to 9, JOB A could be missed by dump job processing, if the dump job facility is dumping the entire job queue and currently dumping priority 8 jobs. The dump job facility processes the jobs with the highest priority first. If the dump job facility does not finish processing priority 8 jobs before JOB A becomes priority 9, JOB A will not be dumped.

Deadline scheduling information is not sent with a job when the job is transferred via NJE to another node; the destination node may use different deadline scheduling algorithms, if any.

time
Specifies the deadline time, expressed as one of the following:

nM
The job is to be scheduled within n minutes. n is 1 through 4 numbers from 0 through 1440.

nH
The job is to be scheduled within n hours. n is 1 or 2 numbers from 0 through 24.

hhhh
The job is to be scheduled by the time of day, hhhh, in 24-hour clock time (0800 is 8:00 a.m.). hhhh is from 0000 (start of the day) through 2400 (end of the day).

type
Identifies the deadline algorithm. The deadline algorithm is defined by the installation, controls how the job’s priority is increased, and is one character: A through Z or 0 through 9. If the specified algorithm is not defined, JES3 abnormally terminates the job.

date
Specifies the date, in one of the following formats, when the time parameter takes effect.

mmddyy
where mm is the month (01-12), dd the day (01-31), and yy the 2-digit year (01-99).

mm/dd/yyyy
where mm is the month (01-12), dd the day (01-31), and yyyy the 4-digit year (for example, 1999). Leading zeroes are required in the day and month fields.

Notes:

  1. For dates in the format of mmddyy, a century of ‘19’ is assumed.
  2. For dates in the format of mmddyy, a date of ‘00’ is not allowed.
  3. For dates of January 1, 2000 and later, you must use the form mm/dd/yyyy.
  4. If both date and rel,cycle are omitted, JES3 assumes (1) the current date, if the deadline time is later in the day, or (2) the next day’s date, if the deadline time has already past today.

Rel: Specifies on which day within a cycle the deadline falls. rel is 1 through 3 numbers from 1 through 366. The value of rel depends on the specified cycle, as follows:

  • WEEKLY: Sunday is day 1; Saturday is day 7. If rel is greater than 7, it defaults to 7.
  • MONTHLY: Day 1 is the first day of the month. Days 29, 30, and 31 are treated as the last day of the month. If rel is greater than 31, it defaults to 31.
  • YEARLY: Day 1 is January 1; day 365 is December 31, for non-leap years, and day 366 is December 31, for leap years. If rel is greater than 365, it defaults to 365 for non-leap years or 366 for leap years.

cycle
Specifies the length of a cycle. cycle is coded as WEEKLY, MONTHLY, or YEARLY.

For example, DEADLINE=(1200,B,1,WEEKLY) indicates that the job reaches its deadline at 12 noon on Sunday. This job would be submitted once a week for it to be processed every Sunday.

EXPDTCHK=YES
EXPDTCHK=NO
Indicates whether or not JES3 is to perform expiration date checking for scratch output tape volumes with IBM standard labels (SL).

YES
Requests expiration date checking. Tape volumes premounted for SL scratch requests must have expired dates.

NO
Requests that expiration dates not be checked.

FAILURE=RESTART
FAILURE=CANCEL
FAILURE=HOLD
FAILURE=PRINT
Indicates the job recovery option to be used if the system fails. If you do not code a FAILURE parameter on the //*MAIN statement, JES3 assigns the job the default failure option, which is defined during JES3 initialization for each job class.

Note: If a job is registered with the automatic restart manager (ARM) at the time of a system failure, ARM determines whether to restart the job, regardless of the value specified on the FAILURE keyword.

If the ARM restarts the job, JES discards all non-spin sysout data sets created during the previous execution. (You can avoid losing that output by adding SPIN=UNALLOC to the DD statement for the SYSOUT data set.)

RESTART
Requests that JES3 restart the job when the failing processor is restarted. Do not specify RESTART for jobs that use the DEQ at DEMOUNT facility for tape volumes.

CANCEL
Requests that JES3 print the job and then cancel the job.

HOLD
Requests that JES3 hold the job for restart.

PRINT
Requests that JES3 print the job and then hold the job for restart.

FETCH=ALL
FETCH=NONE
FETCH=SETUP
FETCH=(ddname[,ddname]...)
FETCH=/(ddname[,ddname]...)
Determines the fetch messages that will be issued to the operator for disk and tape volumes for this job.

If FETCH is not specified, the installation default for this job class applies.

ALL
Requests that JES3 issue fetch messages to the operator for all removable volumes specified in DD statements that request JES3-setup devices. This subparameter does not apply to permanently resident volumes.

NONE
Requests that JES3 not issue fetch messages.

SETUP
Requests that JES3 issue fetch messages to the operator for the volumes specified in all DD statements identified in the //*MAIN SETUP parameter. If you code FETCH=SETUP without also coding the //*MAIN SETUP parameter, JES3 will issue fetch message as though you had specified FETCH=ALL.

ddname
Requests that JES3 issue fetch messages for only the volumes specified in DD statement ddname.

If you code a list of ddnames and the list cannot be contained on a single statement, FETCH= must be repeated on the continuation statement.

/ddname
Requests that JES3 not issue fetch messages for any volumes specified in DD statement ddname.

HOLD=YES
HOLD=NO

YES
Indicates that the job is to enter the system in operator-hold status and be withheld from processing until the operator requests its release. However, if an error occurs during input service processing, the job is mot held for operator intervention.

This parameter has the same function as TYPRUN=HOLD on the JOB statement.

NO
Indicates that the job is to enter the system normally. Processing does not require operator intervention. If the HOLD parameter is omitted, NO is the default.

IORATE=MED
IORATE=HIGH
IORATE=LOW
Indicates the I/O-to-processor ratio for a job. Use this parameter to balance the mixture of jobs selected for execution on the processor.

If you do not code an IORATE parameter on the //*MAIN statement, JES3 assigns the job the default I/O-to-processor ratio, which is defined during JES3 initialization for each job class.

JOURNAL=YES
JOURNAL=NO
Indicates whether or not JES3 is to create a job journal for the job.

If JOURNAL is omitted, JES3 uses an installation default specified at initialization. If you use the automatic restart manager (ARM) to restart a job, you do not need to save the journal because ARM does not use the job journal when restarting jobs.

YES
Indicates that the job is to have a job journal.

NO
Indicates that the job is not to have a job journal.

LINES=([nnnn][,WARNING][,mmm])
LINES=([nnnn][,W][,mmm])
LINES=([nnnn][,CANCEL)
LINES=([nnnn][,C])
LINES=([nnnn][,DUMP])
LINES=([nnnn][,D])
Indicates the maximum number of lines of data to be printed from this job’s sysout data sets and the  action to be taken if the maximum is exceeded.

If you specify LINES=0 the zero applies only to the number of lines; it does not cancel the action to be taken if the maximum is exceeded. If a record is sent to be printed, JES3 will warn, cancel, or dump, depending on the second parameter.

Note: JES3 ignores any line count specification when printing the output for a SYSABEND or  SYSUDUMP sysout data set.

If LINES is not specified, the installation default for this job class applies. The installation default is specified on the OUTLIM parameter of the OUTSERV JES3 initialization statement.

nnnn
Specifies the number of lines, in thousands. nnnn is 1 through 4 decimal numbers from 1 through 9999.

WARNING or W
If the maximum is exceeded, requests that JES3 issue an operator warning and continue processing.

Any messages about this parameter following the warning message will reflect the number specified on the STANDARD initialization statement or the system default, not the maximum specified in the LINES parameter.

mmm
Specifies the frequency that an operator warning message is to be issued after the maximum specified by nnnn is exceeded. mmm is a multiple of 10 in the range 10 to 100. mmm is a percentage of nnnn that is used to calculate the number of additional lines between warning messages. For example, if LINES=(100,W,20) is specified, the first warning message is sent to the operator when 100,000 lines of sysout data is reached. Subsequent warning messages are sent when each additional 20 percent of 100,000 is reached (at 120,000 lines, 140,000 lines, and so on). Messages are sent until the job ends or the operator cancels the job.

CANCEL or C
If the maximum is exceeded, requests that JES3 cancel the job.

DUMP or D
If the maximum is exceeded, requests that JES3 cancel the job and ask for a storage dump.

LREGION=nnnnK
Specifies the approximate size of the largest step’s working set in real storage during execution. LREGION (logical region) is used by JES3 to improve scheduling on the processor. The nnnn is 1 through 4 decimal numbers that indicate the size in kilobytes (1 kilobyte = 1024 bytes).

If neither CLASS nor  LREGION is coded, JES3 determines the logical region size based on initialization parameters.

Use the LREGION parameter carefully. If the values selected for LREGION are too small, the job may take longer to run.

ORG=group-name
ORG=nodename[.remote]
Indicates that the job’s sysout data sets are to be directed to the named group or network node. Otherwise, the job’s sysout data sets are directed to the group of devices or node from which the job originated.

group-name
Specifies an origin group.

nodename
Specifies a network node. nodename is 1 through 8 characters.

remote
Specifies a remote work station or VM userid. remote is 1 through 8 characters and must be separated from the nodename by a period.

Overriding an ORG Parameter: If you do not want a particular data set in the job to go to the destination on the ORG parameter, change its destination in one of the following ways:

  • If the sysout data set is not scheduled to a held class, you can override the ORG parameter destination with the DEST parameter on a //*FORMAT, OUTPUT JCL, or DD statement.
  • If the sysout data set is scheduled to a held class, you can override the ORG parameter destination with the DEST parameter on an OUTPUT JCL, or DD statement.

 JES3 ignores the ORG parameter for a dynamically-allocated SYSOUT data set.

PAGES=([nnnnnnnn][,WARNING][,mmm])
PAGES=([nnnnnnnn][,W][,mmm])
PAGES=([nnnnnnnn][,CANCEL])
PAGES=([nnnnnnnn][,C])
PAGES=([nnnnnnnn][,DUMP])
PAGES=([nnnnnnnn][,D])
Indicates the maximum number of pages to be printed for this job’s sysout data sets and the action to be taken if the maximum is exceeded. If PAGES is not specified, the installation default for this job class applies.

nnnnnnnn
Specifies the number of pages. nnnnnnnn is 1 through 8 decimal numbers from 1 through 16777215.

WARNING or W
If the maximum is exceeded, requests that JES3 issue an operator warning message and continue processing.

Any messages about this parameter following the warning message will reflect the number specified on the STANDARD initialization statement or the system default value, not the maximum specified in the PAGES parameter.

mmm
Specifies the frequency that an operator warning message is to be issued after the maximum specified by nnnnnnnn is exceeded. mmm is a multiple of 10 in the range 10 to 100. mmm is a percentage of nnnnnnnn that is used to calculate the number of additional pages between warning messages. For example, if PAGES=(1000,W,20) is specified, the first warning message is sent to the operator when 1,000 pages of sysout data is reached. Subsequent warning messages are sent when each additional 20 percent of 1,000 is reached (at 1,200 pages, 1,400 pages, and so on). Messages are sent until the job ends or the operator cancels the job.

CANCEL or C
If the maximum is exceeded, requests that JES3 cancel the job.

DUMP or D
If the maximum is exceeded, requests that JES3 cancel the job and ask for a storage dump.

PROC=ST
PROC=xx
Names the procedure library that the system is to search for cataloged procedures called by EXEC statements in the job. If a procedure cannot be found in the named library, JES3 abnormally terminates the job.

If this parameter is omitted, the default depends on the source of the job. If the job is submitted as a batch job, the default is ST. If the job is submitted from an internal reader, the default can be another procedure library, as specified by the installation on the STANDARDS initialization statement (the INTPROC, STCPROC, or TSOPROC parameters).

ST
Indicates the standard procedure library: SYS1.PROCLIB.

xx Identifies the last 2 characters of the ddname of a procedure library. xx is defined by the installation (IATPLBxx) in the procedure used to start JES3. If this parameter is coded, only the specified library is searched; SYS1.PROCLIB is not searched.

RINGCHK=YES
RINGCHK=NO
Indicates whether or not JES3 is to check the status of the tape reel ring for tape devices set up by JES3.

YES
Indicates that a validation check is to be made. If the RINGCHK parameter is omitted, YES is the default.

NO
Indicates that ring checking is to be by-passed for this job.

SETUP=JOB
SETUP=HWS
SETUP=THWS
SETUP=DHWS
SETUP=(stepname.ddname[,stepname.ddname]...)
SETUP=
(stepname.procstepname.ddname[,stepname.procstepname.ddname]...)
SETUP=/(stepname.ddname[,stepname.ddname]...)
SETUP=
/(stepname.procstepname.ddname[,stepname.procstepname.ddname]..)
Modifies the standard setup algorithm used in assigning devices to a job before its execution.

If SETUP is omitted, JES3 assigns mountable tape and disk volumes based on an installation default defined at initialization.

JOB
Requests job setup, which is allocation of all JES3-managed devices required in the job before the job executes. JES3 mounts the initial volumes necessary to run all steps before the job executes. JOB overrides the SETUP parameter on the JES3 STANDARDS initialization statement.

HWS
Requests high watermark setup, which is allocation of the minimum number of devices required to run the job. The minimum number is equal to the greatest number of devices of each type needed for any one job step. High watermark setup does not cause premounting of all mountable volumes.

THWS
Requests high watermark setup for tapes but job setup for disks.

DHWS
Requests high watermark setup for disks but job setup for tapes.

stepname.ddname
stepname.procstepname.ddname
Specifies explicit setup, which is allocation of the volumes needed for a DD statement before the job executes. JES3 premounts the indicated volumes. When requesting explicit setup, specify enough devices so that JES3 can allocate all the required devices at any one time. If too few devices are specified, JES3 cancels the job.

Use form stepname.ddname to indicate DD statement, ddname, in step, stepname, in this job. Use form stepname.procstepname.ddname to indicate DD statement, ddname, in procedure step, procstepname, of a procedure that is called by a step, stepname, in this job. The ddname must match exactly the ddname on the DD statement.

If you code a list of ddnames and the list cannot be contained on a single statement, SETUP= must be repeated on the continuation  statement.

/stepname.ddname
/stepname.procstepname.ddname
Requests that JES3 not explicitly set up any volumes specified in DD statement ddname.

SPART=partition-name
Indicates the spool partition in which JES3 is to allocate spool space to this job.

partition-name
Specifies the name of the spool partition. partition-name is 1 through 8 characters and must match a partition name specified during JES3 initialization. If the name does not match, JES3 ignores the SPART parameter and uses the installation default.

The SPART parameter does not affect allocation for the sysout data sets for the job; these data sets always go to the spool partitions specified during JES3 initialization for the output classes.

If SPART is not specified, JES3 allocates spool data sets to a partition, as follows, in override order:

  1. The spool partition for the job’s class.
  2. The spool partition for the processor executing the job.
  3. The default spool partition.

SYSTEM=ANY
SYSTEM=JGLOBAL
SYSTEM=JLOCAL
SYSTEM=(main-name[,main-name]...)
SYSTEM=/(main-name[,main-name]...)
Indicates the processor that is to execute this job. If a specific processor is named, the processor name must also be specified on the CLASS initialization statement for the job class.

ANY
Indicates any global or local system that satisfies the job’s requirements.

JGLOBAL
Indicates that the job is to run on the global processor only.

JLOCAL
Indicates that the job is to run on a local processor only.

main-name
Indicates that the job is to run on the named processor or processors.

/main-name
Indicates that the job is not to run on the named processor or processors.

Need for SYSTEM Parameter: If you omit a SYSTEM parameter, the job runs on the processor used for the job’s class. Usually a SYSTEM parameter is not needed. However, if any DD statement UNIT parameter in the job specifies a device-number, a SYSTEM parameter must be coded.

Parameter Agreements: The following parameters must be consistent with the SYSTEM parameter or JES3 will terminate the job:

  • CLASS parameter on the JOB or //*MAIN statement. The requested processor must be assigned to execute jobs in the specified class.
  • All devices specified on DD statement UNIT parameters must be available to the requested processor.
  • TYPE parameter on the //*MAIN statement must specify the system running on the requested processor.
  • Dynamic support programs requested on //*PROCESS statements must be able to be executed on the requested processor.

THWSSEP=IGNORE
THWSSEP=PREFER
THWSSEP=REQUIRE
Indicates whether or not you want scratch tape requests and specific tape requests separated and whether you want scratch tapes of different media types separated during high watermark processing. This parameter is valid only if high watermark setup (HWS or THWS) is specified on the SETUP parameter or defined at JES3 initialization.

Use this parameter to direct scratch and specific tape requests to different tape drives (for example, you may want JES3 to allocate only scratch tape requests to an IBM 3480 that is equipped with an automatic cartridge loader). If you omit THWSSEP, JES3 uses an installation default defined at initialization.

IGNORE
Specifies that JES3 is not to separate scratch and specific tape requests and not separate scratch tape requests of different media types during high watermark processing. Both scratch and specific tape requests and scratch requests of different media types can be allocated on the same tape drive.

PREFER
Specifies that JES3 attempt to allocate scratch and specific tape requests on separate tape drives and attempt to allocate scratch tape requests of different media types on separate tape drives without allocating additional devices. If JES3 cannot separate the requests, scratch and specific tape requests and scratch tape requests of different media types are allocated on the same tape drive.

REQUIRE
Specifies that JES3 should not allocate scratch and specific tape requests on the same tape drive and not allocate scratch tape requests of different media types on the same tape drive, even if JES3 must allocate additional tape drives to satisfy the request.

TRKGRPS=(primary-qty,second-qty)
Specifies the number of track groups to be assigned to the job. A track group is a number of spool space allocation units. The size of the track group is defined in the GRPSZ parameter on the JES3 BUFFER or SPART initialization statement.

primary-qty
Specifies the number of track groups to be initially allocated. This quantity is one decimal number from 1 through 9.

second-qty
Specifies the number of track groups to be allocated when the currently allocated groups are filled and more space is needed. This quantity is one decimal number from 1 through 9.

The //*MAIN TRKGRPS parameter overrides a TRKGRPS parameter on the CLASS or MAINPROC initialization statement. However, when a sysout DD statement specifies an output class, the TRKGRPS parameter for that output class overrides the //*MAIN TRKGRPS parameter.

TYPE=ANY
TYPE=VS2
Indicates the control program that is to execute this job. If you omit a TYPE parameter, the job runs under the control program used for the job’s class.

ANY
Indicates that JES3 is to use any control program that satisfies the job’s requirements. In present systems, JES3 schedules the job on MVS.

VS2
Indicates that JES3 is to schedule the job on MVS.

UPDATE=(dsname[,dsname]...)
Identifies the procedure library data set(s) that this job is to update. This parameter causes all jobs using the identified data set and any concatenated data sets to be held until the update is complete

dsname
Specifies the data set name. The identified data set cannot be concatenated to another data set.

Note: If a data set is dynamically allocated as both a JES3 DISKRDR data set and a JES3 PROCLIB data set, the UPDATE = parameter (JES3 procedure library update facility) cannot be used to move the data set.

USER=userid
Identifies the job with the specified TSO/E user, even though the job was not submitted via TSO/E by that user. USER allows:

  • The TSO/E userid, interacting with a global or local processor, to issue the TSO/E OUTPUT command to access sysout data sets from the job. If the job executes on one processor and the TSO/E userid is attached to another processor, the ACMAIN parameter must identify the processor for the TSO/E userid.
  • v The TSO/E userid, interacting with any processor, to inquire about the status of the job or to cancel the job.

userid
Identifies a TSO/E user. userid is 1 through 7 alphanumeric or national ($, #, @) characters.

3.Location in the JCL
When you specify ORG on a //*MAIN statement, place the //*MAIN statement before all //*FORMAT statements that do not contain a DEST parameter. If JES3 does not process the ORG parameter before the //*FORMAT statements, JES3 uses the default destination for the //*FORMAT statements; their output is sent to the node where the job entered the system.

When you specify ORG on a //*MAIN statement that is part of a remote job, place the //*MAIN statement immediately after the second JOB statement.

4.Examples of the //*MAIN Statement

Example 

//*MAIN SYSTEM=SY1,LINES=(5,C),SETUP=HWS,
//*FAILURE=RESTART,DEADLINE=(0800,A,3,WEEKLY)

The job executes on processor SY1. It is estimated to produce not more than 5000 lines of printed output; if the output exceeds 5000 lines, JES3 is to cancel the job. HWS specifies high watermark setup, so JES3 is to allocate the minimum number of devices required for this job. If the system fails, JES3 is to restart the job on the processor SY1. JES3 is to complete this job by 8 a.m. on Tuesday (Tuesday is day number 3) by adjusting the job’s scheduling priority using the installation-defined A-type deadline scheduling  parameters.

Example 

//*MAIN ACMAIN=2,USER=GARYHIL

If this statement appears in a job entered from any TSO/E userid on any processor in the complex, then the job’s sysout data sets would go to TSO/E userid GARYHIL on processor 2.


//*NET Statement

Purpose

Use the //*NET statement to define the dependencies between jobs in a dependent job control (DJC) network. JES3 sets up a network of dependent jobs and executes them in a specific order. (Once set up, the structure of a DJC network cannot be changed unless all of the jobs in the network are resubmitted.) Jobs belonging to a DJC network cannot be registered with the automatic restart manager (ARM).

//*NET {NETID} =name[,parameter]...
       {ID   } 

The parameters are:

{ABCMP} = {NOKP}
{AC   }   {KEEP}
{ {ABNORMAL|AB} = {D} }
{                 {F} }
{                 {R} }
{ {NORMAL|NC} =   {D} }
{                 {F} }
{                 {R} }
DEVPOOL=( {ANY} [,device-name,n]...
          {NET}
DEVRELSE= {YES}
          {NO }
{NETREL} =(netid,jobname)
{NR    }
{NHOLD } =n
{HC    }
{NRCMP } = {HOLD}
{PC    }   {NOHO}
           {FLSH}
{OPHOLD} = {NO }
{OH    }   {YES}
{RELEASE} =(jobname[,jobname]...)
{RL     }
{RELSCHCT} =n
{RS      }

The //*NET statement consists of the characters //* in columns 1 through 3, NET in columns 4 through 6, a blank in column 7, and parameters in columns 8 through 72. JES3 ignores columns 73 through 80.

2.Parameter Definition

NETID=name
Specifies the name of the DJC network for this job. name is 1 through 8 characters; the first character must be alphabetic. All jobs put into the system with the same NETID name form a DJC network. To add a job to an existing DJC network, specify the NETID name for that job.

ABCMP=NOKP
ABCMP=KEEP
Indicates what action JES3 is to take if the job abnormally terminates.

NOKP
Indicates that JES3 is to purge the DJC network if the job abnormally terminates and has not been resubmitted by the time the other jobs in the network have completed. JES3 purges the network unless successor jobs or subnetworks are missing. If the ABCMP parameter is omitted, NOKP is the default.

KEEP
Indicates that the DJC network is to be kept in the system until (1) the job is resubmitted and completes normally or (2) the operator forces the network from the system. Use KEEP to make sure that the network is not purged until the operator takes proper action.

Note: If the job abnormally terminates, you can resubmit it to the DJC network, and the network will be retained until the job completes.

ABNORMAL=D
ABNORMAL=F
ABNORMAL=R
NORMAL=D
NORMAL=F
NORMAL=R
Indicates the action JES3 is to take for this job when any predecessor job completes execution normally or abnormally. If the ABNORMAL parameter is omitted, the default is R, and, if the NORMAL parameter is omitted, the default is D.

D Requests that JES3 decrease this job’s NHOLD count, which indicates the number of predecessors for this job. When the NHOLD count becomes zero, JES3 can schedule this job.

F Requests that JES3 flush this job and its successor jobs from the system. JES3 cancels the job, prints any output, and cancels all successor jobs presently in the system, regardless of their normal or abnormal specifications. However, JES3 admits into the system all successor jobs that enter after the DJC network has been flushed. To flush those jobs, the operator must cancel the jobs or the network.

R Requests that JES3 retain this job in the system and not decrease the NHOLD count. R suspends the job and its successor jobs from scheduling until either the predecessor job is resubmitted or the operator decreases the NHOLD count. 

DEVPOOL=(ANY[,device-name,n]...)
DEVPOOL=(NET[,device-name,n]...)
Identifies devices to be dedicated to this DJC network. The system allocates these devices only to jobs in the network. The DEVPOOL parameter should be coded on the //*NET statement that establishes the network; it is ignored on other //*NET statements.

ANY
Indicates that jobs in the network can use any dedicated or undedicated device. JES3 tries to allocate from the dedicated pool before allocating any undedicated devices.

NET
Indicates that jobs can use only devices dedicated to the network.

device-name,n
Identifies a dedicated device. Code as many device-names with numbers as will fit on one statement. device-name specifies (1) a device name defined to JES3 by the installation during initialization or (2) a device-type specified in the UNIT parameter of an IODEVICE system generation macro instruction. n is the number of named devices. n is a number from 1 through 32,767.

DEVRELSE=YES
DEVRELSE=NO
Indicates when devices dedicated to the DJC network are to be released. The DEVRELSE parameter can be coded in several jobs in the network, but must not be coded in the first job. If no network job containing DEVRELSE=YES completes, the system releases the devices when it purges the network.

YES
Requests that JES3 release all devices at the end of this job. Completion of any job that specified DEVRELSE=YES causes the devices dedicated to the network to be released.

NO
Requests that JES3 release all devices only when the last job in the network ends.

NETREL=(netid,jobname)
Indicates that this job must be executed before the named job in another DJC network can be executed. The NETREL parameter can be specified only once for each job of a DJC network.

netid
Identifies the NETID for the successor job.

jobname
Names the JOB statement for the successor job.

NHOLD=n
Indicates the number of predecessor job completions required before this job can be released for scheduling. The predecessor number can include jobs from another DJC network. n is a number from 0 through 32,767. When the predecessor number reaches 0, the job is scheduled for execution. The system reduces this number:

  • When each predecessor job completes execution.
  • By operator command.
  • When a program in a predecessor job issues an assembler DJC WTO macro.

If you specify NHOLD=0 or omit the NHOLD parameter, this job has no predecessor jobs. JES3 can schedule it for immediate execution. If the NHOLD count is incorrect, the following can occur:

  • If n is greater than the actual number of predecessor jobs, JES3 does not release this job for execution when all of its predecessor jobs complete execution.
  • If n is less than the actual number of predecessor jobs, JES3 prematurely releases the job for execution.

NRCMP=HOLD
NRCMP=NOHO
NRCMP=FLSH
Indicates that a network job that completed normally is being resubmitted and that JES3 must erase all references to the job before the job reenters the network.

HOLD
Indicates that JES3 is to hold the job until it is released by the operator.

NOHO
Indicates that JES3 is to allow the job to be scheduled as system resources become available.

FLSH
Indicates that JES3 is to flush the job from the system.

OPHOLD=NO
OPHOLD=YES

NO
Indicates that the job is to be processed normally without operator intervention. If OPHOLD is omitted, NO is the default.

YES
Indicates that JES3 is to hold the job until it is released by the operator.

RELEASE=(jobname[,jobname]...)
Indicates that this job must be executed before the named job(s) in this DJC network can be executed.

jobname
Names the JOB statement for a successor job. You can specify from 1 through 50 successor jobnames.
RELEASE is the only parameter on the //*NET statement that can be split and continued on the next statement. To continue the RELEASE parameter, end the statement with the comma following a jobname and continue the next statement with the next jobname. The left parenthesis appears at the beginning of the jobname list and the right parenthesis appears at the end of the list. For example:

//*NET NETID=EXP1,RELEASE=(JOB35,JOB27Z,MYJOB,
//*WRITJB,JOBABC)

RELSCHCT=n
Controls early set up of a dependent job’s resources. Set up begins when the NHOLD count becomes less than or equal to n. n is a number from 1 through 32,767. If you specify RELSCHCT=0 or omit the RELSCHCT parameter, JES3 does not set up dependent jobs early.

Note: Use this parameter carefully; RELSCHCT can tie up devices and data sets for long times. Do not specify the RELSCHCT parameter:

  • For a job that may have catalog dependencies.
  • For a job that contains one or more //*PROCESS statements.

Location in the JCL
Place the //*NET statement for a job after the JOB statement and before the first EXEC statement. Code only one //*NET statement for each job in a DJC network. The //*NET statement must precede any //*PROCESS statements.

Examples of the //*NET Statement

Example

//*NET NETID=NET01,NHOLD=0,DEVPOOL=(,3330,2)

This statement defines a DJC network named NET01. The network contains no predecessor jobs. The DEVPOOL parameter, which must be coded in the first job in the network, requests that JES3 establish a device pool of two 3330s for network NET01.

Example

//*NET NETID=N1,RELEASE=B,NETREL=(N2,B2)

This statement adds a job to the DJC network named N1. This job must be executed before job B, which is in N1, and before job B2, which is in the DJC network named N2.


//*NETACCT Statement

Purpose
Use the //*NETACCT statement to specify accounting information that JES3 is to transmit with a job to another node in the network.

1.Syntax

//*NETACCT parameter[,parameter]...

The parameters are:

   PNAME=programmer’s-name
   ACCT=number
   BLDG=address
   DEPT=dept
   ROOM=room
   USERID=userid
  • The //*NETACCT statement consists of the characters //* in columns 1 through 3, NETACCT in columns 4 through 10, a blank in column 11, and parameters in columns 9 through 72. JES3 ignores columns 73 through 80.
  • Do not continue a //*NETACCT statement. If the parameters cannot fit on one statement, code more than one //*NETACCT statement.
  • Enclose any parameter value that contains special characters, including embedded blanks, in apostrophes.

2.Parameter Definition

PNAME=programmer’s-name
Identifies the programmer. programmer’s-name is 1 through 20 characters.

ACCT=number
Gives the network account number. number is 1 through 8 characters.

BLDG=address
Gives the programmer’s building address. address is 1 through 8 characters.

DEPT=dept
Gives the programmer’s department number. dept is 1 through 8 characters.

ROOM=room
Gives the programmer’s room number. room is 1 through 8 characters.

USERID=userid
Gives the programmer’s network userid. userid is 1 through 8 characters.

3.Defaults
For any //*NETACCT parameter that is omitted, JES3 uses an installation default specified at JES3 initialization.

4.Location in the JCL
Place the //*NETACCT statement(s) for a job stream to be transmitted immediately after the first JOB statement and before any //*ROUTE XEQ or // XMIT statements.

Place the //*NETACCT statement(s) for a SYSOUT stream to be transmitted immediately after the first JOB statement and before any //*MAIN statements specifying ORG=nodename.

For jobs running at the submitting system and potentially having the destination changed to a network destination via an output service modify command (*MODIFY,U ...), place the //*NETACCT statement(s) for the SYSOUT immediately after the JOB statement.

5.Example of the //*NETACCT Statement

//*NETACCT  PNAME=COLLINS,ACCT=D58D921,USERID=NXT

//*OPERATOR Statement

Purpose

Use the //*OPERATOR statement to issue a message to the operator. Columns 1 through 80 are written on the operator console and in the job’s hard-copy log when JES3 reads in the job.

1.Syntax

//*OPERATOR message

The //*OPERATOR statement consists of the characters //* in columns 1 through 3, OPERATOR in columns 4 through 11, a blank in column 12, and the message for the operator in columns 13 through 80.

2.Location in the JCL
Place the //*OPERATOR statement anywhere after the JOB statement.

3.Example of the //*OPERATOR Statement

//*OPERATOR   CALL   EXT. 55523 WHEN  THIS  JOB  STARTS

//**PAUSE Statement

Purpose

Use the //**PAUSE statement to halt an input reader temporarily. When you enter a //**PAUSE statement through an input reader, JES3 issues a message and waits for the operator to reply. To start the input reader, the system operator must issue a *START command or a remote work station with console level 15 must send a start message.

The //**PAUSE statement is intended primarily for system checkout and test. It should be issued only by remote work stations.

1.Syntax

//**PAUSE [comments]

The //**PAUSE statement consists of the characters //** in columns 1 through 4, PAUSE in columns 5 through 9, a blank in column 10, and, optionally, comments starting in any column beginning with 11. JES3 ignores columns 73 through 80.

2.Location in the JCL
Place the //**PAUSE statement before the first JOB statement in an input stream. If it appears after the first JOB statement, JES3 ignores it.

3.Example of the //**PAUSE Statement

//**PAUSE THIS IS A TEST.

//*PROCESS Statement

Purpose
Use the //*PROCESS statement to control how JES3 processes a job. A job that contains //*PROCESS statements receives only the JES3 processing specified on the //*PROCESS statements plus certain required processing.

Specifically, the //*PROCESS statement calls a dynamic support program (DSP) in the DSP dictionary. JES3 must be able to process the called DSP.

Standard Job Processing

JES3 uses a series of processing functions to process a job. Standard processing consists of only the standard scheduler functions:

  • Converter/interpreter service
  • Main service
  • Output service
  • Purge service

Nonstandard Job Processing

A nonstandard job uses one or more special processing functions in place of or in addition to standard processing or skips one or more of the standard functions. Specify a nonstandard job by following the JOB statement with a JES3 //*PROCESS statement for each processing function.

Use of Nonstandard Job Processing

Nonstandard job processing is useful in testing. For example, a //*PROCESS statement can make JES3 bypass program execution so that the job’s JCL can be checked. Another //*PROCESS statement can make JES3 bypass output processing; then the operator can check by inquiry command whether the job reached execution.

If the job generates spin data sets during main execution, the next scheduler element will not be processed until the spin data sets have been processed. To avoid long waits or system hangs, make sure that the OUTSERV scheduler element is the next scheduler element after main processing.

1.Syntax

//*PROCESS dsp
[parameter[,parameter]...]

The //*PROCESS statement consists of the characters //* in columns 1 through 3, PROCESS in columns 4 through 10, a blank in column 11, and the DSP name beginning in column 12. The rest of the columns must be blank.

If the requested DSP requires parameters, code them on the following statement. The parameter statement consists of parameters in columns 1 through 72, separated by commas. Columns 73 through 80 must be blank. Only one parameter statement after a //*PROCESS statement is allowed, any others are ignored by JES3.

2.Parameter Definition

dsp

Identifies the DSP that JES3 is to use in processing the job. Table lists the valid DSP names and whether parameters can follow.

Table: DSPs for JES3 //*PROCESS Statements

3.Location in the JCL

  • Place all //*PROCESS statements for a job immediately after the JOB statement and before the first EXEC statement. If the job includes a //*NET statement, the //*NET statement must appear between the JOB statement and the first //*PROCESS statement.
  • The //*PROCESS statements can be separated only by their parameter statements.
  • JES3 processes the //*PROCESS statements in the order in which they appear in the input stream.
  • The first //*PROCESS statement must request an interpreter DSP if you want input service error messages, which indicate that a job is to be scheduled for interpreter processing before being purged.

4.Examples of the //*PROCESS Statement

Example 

//EXAM1      JOB
//*PROCESS   CI
//*PROCESS   MAIN
//*PROCESS   OUTSERV
//S1   EXEC  PGM=ANY
       .
       .
       JCL statements
       .

This example shows how to submit a simple job via //*PROCESS statements. It is processed like a standard job. The four standard scheduler functions are used for the job: CI, MAIN, OUTSERV, and PURGE. Note that PURGE is not specified; JES3 automatically creates this DSP.

Example 

//EXAM2   JOB
//*PROCESS   CI
//*PROCESS   MAIN
//*PROCESS   OUTSERV
//*PROCESS   PLOT
//*ENDPROCESS
//S1   EXEC  PGM=ANY
//DD1  DD    ...
       .
       .
       JCL statements
       .

This example shows how to request a user-written DSP: PLOT. PLOT is to be executed after output service has completed. Note that PURGE is again not specified but is automatically created.

Example 

//EXAM3   JOB
//*PROCESS   OUTSERV
//*FORMAT    PR,DDNAME=S1.DS1,COPIES=5
//*DATASET   DDNAME=S1.DS1
         .
         .
         data
         .
         .
//*ENDDATASET
//S1    EXEC   PGM=ANY
//DS1   DD     DSNAME=DATA1
        .
        .

This example uses JES3 output service and the //*DATASET statement. Five copies of data set DS1 are printed on any local printer.


//*ROUTE XEQ Statement

Purpose

Use the //*ROUTE XEQ statement to send the following input stream to a network node where the job is then executed. JES3 stops transmitting input stream records when it finds one of the following:

  • The second JOB statement after the //*ROUTE XEQ statement.
  • The input stream runs out of card images.

All output from the job is assumed to print/punch at the originating node unless otherwise specified on a DEST parameter. The //*ROUTE XEQ statement must be given 80 character records.

1.Syntax

//*ROUTE XEQ nodename[.vmguestid]

The //*ROUTE XEQ statement consists of the characters //* in columns 1 through 3,ROUTE in columns 4 through 8, a blank in column 9, and, starting in any column from 10
through 72: XEQ, followed by at least one blank and then parameters. JES3 ignores columns 73 through 80.

Do not imbed blanks in the nodename or vmguestid parameters.

2.Parameter Definition

nodename
Indicates the node. The nodename identifies an MVS JES2 system, an MVS JES3 (global) system, a VSE POWER node, or a VM system.

If nodename specifies a local node:

  • The job executes locally if the job begins with a JOB statement.
  • The job is terminated if the job begins with an NJE statement.

.vmguestid
Identifies a guest system running in a virtual machine (VM), for example, an MVS system running under VM.

Note: Do not specify a work station or terminal in this parameter.

3.Location in the JCL

  • Place the //*ROUTE XEQ statement after a JOB statement that is valid for the submitting location and any //*NETACCT statements.
  • JES3 requires a MVS JOB statement immediately after the //*ROUTE XEQ statement.
  • If the destination node is not a MVS system, any statement immediately following the MVS JOB statement must be a valid JOB statement for the executing node.

4.JOB Statement after //*ROUTE XEQ
An error in the //*ROUTE XEQ statement can cause the JOB statement following the //*ROUTE XEQ to be processed at the submitting node. To prevent this, code NJB instead of JOB on the second JOB statement; JES3 changes the NJB to JOB before transmitting the job.

Notes:

  1. TSO/E users must code NJB instead of JOB on the second JOB statement.
  2. If an MVS JOB statement is not immediately following the //*ROUTE XEQ statement, the XMIT JCL statement must be used instead of //*ROUTE XEQ.

5.Example of the //*ROUTE XEQ Statement

//JOBN1   JOB   options ...
//*ROUTE  XEQ   2
//JOBN2   JOB   options ...
//STEP1   EXEC  PGM=REPORTER
//DD1     DD    SYSOUT=A,DEST=N1R33
//DD2     DD    SYSOUT=A,DEST=N2R33
//DD3     DD    SYSOUT=B,DEST=R33
//DDIN    DD    *
          .
          .
          data
          .
/*

In this example, JOB statement JOBN1 is entered through the JES3 system at node 1. The //*ROUTE XEQ statement tells JES3 to send the following input stream to node 2. Transmission of the input stream is stopped by the /* delimiter statement. JOB statement JOBN2 and all following statements until the delimiter are read and executed by the system at node 2. The sysout data sets are sent to two work stations:

  • Sysout data set DD1 is produced at work station 33 attached to node 1.
  • Sysout data set DD2 is produced at work station 33 attached to node 2.
  • Sysout data set DD3 is produced at work station 33 attached to node 1. Because no node is specified, the originating node is assumed.


/*SIGNOFF Statement

Purpose

Use the /*SIGNOFF statement to tell JES3 to end a remote job stream processing session. At the completion of the current print and/or punch streams, JES3 disconnects the remote work station from the system. If JES3 is reading jobs from the station when the output completes, JES3 disconnects the station when the input is completed. Both systems network architecture (SNA) and binary synchronous communication (BSC) remote work stations use the /*SIGNOFF statement.

1.Syntax

/*SIGNOFF

The /*SIGNOFF statement consists of the characters /* in columns 1 and 2, SIGNOFF in columns 3 through 9, and blanks in columns 10 through 80.

Note that, unlike other JES3 statements, this statement starts with only one slash.

2.Location in the JCL

The /*SIGNOFF statement can appear anywhere in a local input stream or an input stream from a SNA or BSC remote work station.

3.Example of the /*SIGNOFF Statement

/*SIGNOFF

This statement requests that JES3 terminate a remote job stream processing session.


/*SIGNON Statement

Purpose

Use the /*SIGNON statement to tell JES3 to begin a remote job stream processing session. The /*SIGNON statement can override the remote identification number normally assigned to the remote work station. This statement is optional for all work stations except non-multi-leaving remote stations on a switched line. Systems network architecture (SNA) remote work stations must use the LOGON command instead of the /*SIGNON statement to notify JES3 of a connection request.

1.Syntax

/*SIGNON work-station-name {A|(blank)} {R|(blank)} passwd1 passwd2 new-passwd

The /*SIGNON statement consists of the following:

Column         Contents
1-2            /*
3-8            SIGNON
9-15           blanks
16-20          work-station-name, beginning in 16
21             blank
22             A or a blank
23             R or a blank
24             blank
25-32          password1, beginning in 25
33-34          blanks
35-42          password2, beginning in 35
43             blank
44-51          new-password, beginning in 44
52-80          blanks

Note that, unlike other JES3 statements, this statement starts with only one slash.

2.Parameter Definition

work-station-name
Specifies the name of the remote work station. The work-station-name is 1 through 5 characters and must have been defined on a JES3 RJPTERM initialization statement.

A Indicates an automatic reader. A can be coded only when the work station is a programmable terminal. Leave this column blank if you do not want to specify an automatic reader.

R Indicates that print or punch output will be rescheduled if the needed device is not ready. R can be coded only when the work station is a nonprogrammable terminal. Leave this column blank if you do not want to specify the R option.

password1

Specifies the password for the remote job processing (RJP) line. This parameter is one through eight characters and must have been initially defined at system initialization.

password2

Specifies the current password for the work station. This parameter is one through eight characters and must have been initially defined at system initialization.

new-password

Specifies a new password for the work station. This parameter is one through eight characters.

3.Location in the JCL
Place the /*SIGNON statement at the start of an input stream to be transmitted from a remote work station.

4.Example of the /*SIGNON Statement

/*SIGNON QUIN A PSWD1 PSWD2

This statement requests that remote work station QUIN begin a remote job stream processing session. The value A in column 22 specifies an automatic reader for the programmable terminal. PSWD1, beginning in column 25,is the password assigned to a dial line. PSWD2, beginning in column 35, is the password assigned to the remote work station. To change the current password PSWD2 for the remote work station, the preceding /*SIGNON statement can be specified as:

/*SIGNON QUIN A PSWD1 PSWD2 PSWDNEW

This statement assigns PSWDNEW, beginning in column 44, as the new password for the remote work station QUIN.


Pragna Meter
Related Jobs