JES2 And JES3 Job Entry Subsystems - IBM Mainframe

Job Entry Subsystem (JES) is a subsystem of the OS/390 and MVS mainframe operating systems that manages jobs (units of work) that the system does. Each job is described to the operating system by system administrators or other users in job control language (JCL). The operating system then sends the job to the JES program. The JES program receives the job, performs the job based on priority, and then purges the job from the system.

There are two versions, JES2 and JES3. JES3 allows central control of the processing of jobs using a common work queue. Both OS/390 and MVS provide an interactive menu for initiating and managing jobs.

Overview of JES2

JES2 is a decentralized system. In a decentralized system each computer acts independently in its selection of jobs, where as in a centralized system a group of computers are assigned the jobs that are to be processed from a job queue through a central computer.

All JES2 control statements should start with a '/*' in columns 1 and 2. JES2 statements cannot be placed inside cataloged procedures. The following list gives the JES2 control statements:

NETACCT Statement

NETACCT (Network Account) identifies the account number for the job that is being executed. The syntax of NETACCT is 'NETACCT acct_number where acct_number must be the same for all computers in the network.

An example is given below:

ROUTE Statement

The ROUTE statement is used to identify the destination of the output of a job. The syntax of this statement is 'ROUTE XEQ node or ROUTE PRINT node', where node is the identifier for a computer within the network.

An example is given below:

The first ROUTE statement is used to execute the job SEGS1 at the node identified as MDSOl and the second ROUTE statement is used to route the output to PRINTER5.

JOBPARM Statement

The JOBPARM statement specifies additional information for the job. Some of the parameters that can be coded in this statement are:

  • LINECT=n - This is used to specify the number of lines to be printed on each page of output. You can have 0 to 255 lines on a page.
  • NOLOC - This is used to specify that no job log is required for the job that is being executed.
  • COPIES=n - This is to specify the number of copies of output required.
  • BYTES=n - This is used to set a limit to the size of the output, in kilo bytes (KB).
  • RESTART=Y or RESTART=N - The RESTART parameter is used to restart a job if it terminates abnormally. Setting the RESTART to Y results in the job being restarted from the very beginning, and setting it to N results in the job being started from the step at which it terminated.
  • PACES=n - This is used to set the limit on the number of pages of output produced by a job. The limit can vary from 1 to 99999.

An example is given below:

OUTPUT Statement

The OUTPUT statement is used to route the output specific nodes. Some of the parameters that can be coded in this statement are:

  • LINECT=n - This is used to specify the number of lines to be printed on each page of output. You can have 0 to 255 lines on a page.
  • FORMS=forms - This is used to identify the print forms to which output is to be routed.
  • COPIES=n - This is to specify the number of copies of output required, 'n' can range from 1 to 255.
  • DEST=destination - This is used to specify the destination of the output.
  • UCS=character-set - This is used to specify the universal character-set of the output.

PRIORITY Statement

The PRIORITY statement is used to specify the priority of the job that is to be executed. It must precede the JOB statement. The syntax of this statement is 'PRIORITY number', where 'number' is the priority number assigned to the job and can range from 0 to 15; note that the higher the number the higher the priority.

An example is given below:

SETUP Statement

This statement is used to indicate the tape volumes that will be required in the execution of a job. The syntax of this statement is 'SETUP volume-number', where 'volume-number' is the volume serial number of the tapes required for the job. Volume-serial numbers are coded in columns 11 to 71. An example is given below:

MESSGE Statement

The MESSAGE statement is used to send messages to the computer operator. The syntax of this statement is 'MESSAGE text', where 'text' is the message text. An example is given below:

NOTIFY Statement

The NOTIFY statement is used to notify a user of the completion of a job. The syntax of this statement is 'NOTIFY node.userid', where 'node' is the computer to which the message is routed and 'user id' is the identifier assigned to the user to whom the message is to be routed.

An example is given below:

SIGNON Statement The SIGNON statement is used to start a job at a remote location. The syntax of this statement can be any one of the following:

Where 'nnn' is the number that identifies the remote node, PWl and PW2 are the passwords associated with the remote node at which the job is to be executed. Passwords are optional. The keywords, REMOTE, RMT, or RM must start in column 16, columns 9 through 15 must be blank. Also PWl must start in column 25, and PW2, if it is coded, must begin in column 73.

An example is given below:

SIGNOFF Statement

The SIGNOFF statement is used to terminate a job that has been started at a remote node. An example is given below: //SEGJ1 JOB (SEGAWL, SEG), CLASS=L /* SIGNOFF Overview of JES3

Unlike JES2, a JES3 environment is centralized. It has only one computer, called a global processor, which manages and controls the processing of all other computers within the network. All other computers are called local processors. The global processor schedules the I/O, as well as purge and conversion processes for every job in the system.

All JES3 control statements should start with '//** in columns 1, 2 and 3. They must follow the JOB statement, unless is a command statement. They cannot be placed inside cataloged procedures. In addition to this, note that if any parameters are coded, in JES3 control statements, they will take precedence over any corresponding parameters coded in regular JCL statements. The JES3 control statements are:

MAIN Statement

The MAIN statement is used to identify processor requirements for a job. The syntax of the MAIN statement is 'MAIN optional_parameters," where different parameters are used to indicate specific processor requirements for the job. The parameters that can be coded on this statement are given below:

  • SYSTEM=option - This parameter is used to identify the processor to the system, 'option' can have the following values: ANY (indicates that any global or local computer can be used as the processor), JGLOBAL (indicates that the job should use the global processor only), JLOCAL (indicates that the job should use local processor), 'name' (indicates that the job is to execute on the named processor).
  • U5ER=userid - This parameter is used to submit the job with a user id. It may be different from the one who actually submits the job.
  • CLASS=class - This parameter is used to identify the job class to the remote node. It overrides the CLASS parameter on the JOB statement.
  • HOLD=option - This parameter is used to hold a job before it finishes executing, or release? job, if it is already being held, 'option' can have the values YES or NO. It overrides the TYPRUN=HOLD parameter on the JOB statement.

An example is given below:

ROUTE XEQ Statement

This statement is used to identify the remote network node at which a job is to exec1 JOB (SSGAWL, SE6), CLASS=A /♦SIGNON WSNAM A AWL1 AWL2

SIGNOFF Statement

The SIGNOFF statement is used to terminate a remote job session. Like the SIGNON statement, it contains only a single slash followed by an asterisk. An example is given below:

The syntax of this statement is 'ROUTE XEQ node', where 'node' identifies the node at which the job is to execute. This statement should be placed after the JOB statement of the location at which the job is being submitted. It can be coded immediately before the JOB statement of the location at which the job is being executed. It should be placed after the NETACCT if coded.

An example is given below:

NETACCT Statement

This statement is used to specify the accounting information for a job to a node in the network. The syntax of the NETACCT statement is 'NETACCT parameters,' where different parameters can be used to indicate specific accounting information to the system. The parameters that can be coded on this statement are given below:

  • PNAME=programmer-name - This parameter is used to specify the programmer name, which can be 1 to 20 characters long.
  • ACCT=account-number - The account number can be 1 to 8 characters long.
  • DEPT=name - 'name' identifies the department number within the network, tt can be 1 to 8 characters long.
  • BLDG=building-number - building number is used to identify the building number. It can be 1 to 8 characters long.
  • USERID=user-id - User ID can be 1 to 8 characters long.

An example is given below:

FORMAT PR Statement

This statement is used to specify the processing instructions for print data sets. PR indicates that the specifications are for the print data sets only. The syntax of this statement is 'FORMAT PR parameter. The parameters that can be coded on this statement are given below: DDNAME=name - name identifies the name of the data set that is to be printed. It may be necessary to qualify the data set name by preceding it with the step name. In addition to this, DDNAME can be specified as one of the following: JESJCL (print JCL statements and associated messages), JESMSG (print JES3 statements and associated messages) and SYSMSG (print system messages).

  • DEST=destination - This parameter is used to specify the destination of the output data set. If DEST is coded on the DD statement then it should be the same as that destination. If it is not coded, then output is routed to the default printer.
  • PRTY=priority - This parameter is used to specify the priority of the print job in the output queue, 'priority' can be a number between 0 and 255.
  • COPIES=n - This parameter is used to specify the number of copies to be printed for the job.
  • CONTROL=option - This parameter is used to specify details with reference to the printed output, 'option' can be one of the following: PROGRAM (used to indicate that each logical record within the print data set begins with a carriage control character), SINGLE (used to specify forced single spacing of output), DOUBLE (used to specify forced double spacing of output) and TRIPLE (used to specify forced triple spacing of output).
  • THRESHLD=limit - This parameter is used to specify the maximum size of the output data set in lines, 'limit' is a number between 1 to 99999999.
  • FORMS=forms - This parameter is used to identify the type of form on which the output will be printed. FORMS=STAN>DARD is the default, implying the size of the installation standard forms.

NET Statement

This statement is used to define dependencies between jobs in a dependent job control network. JES3 organizes the set of dependent jobs in a specific manner, and then executes them. The syntax of this statement is 'NET ID=net-id, parameter, parameter', where net-id is an identifying name for the dependent node. It can be 1 to 8 characters in length. The first character must be alphabetic. The parameters that can be coded on this statement are given below:

  • ABCMP=option - The ABCMP parameter is used to specify the action that should be taken upon abnormal termination of the job. Option can be either KEEP (to keep the job until resubmitted) or NOKP (job is to be purged, given that it is not resubmitted, within the timeframe that other dependent jobs within the node have been executed).
  • NHOLD=n - This parameter is used to hold a job until the processing job have been completed, 'n' is a number specifying the total number of prior jobs that must be completed before the current job can be released for execution, 'n' can be a number form 0 to 32767. If this parameter is skipped then it is set to zero, the job is placed in a queue for immediate execution.
  • NORMAL=option - This parameter is used to specify the action that should be taken on normal execution of a prior job. 'option' can be any of the following: D (used to decrease the value stored in NHOLD by 1), F (used to finish this and submit the subsequent job after it) and R (used to retain the job in its current status).
  • ABNORMAL=option - This parameter is used to specify the action that should be taken upon abnormal termination of a prior job. 'option' assignments are the same as for the NORMAL parameter.

An example is given below:

DATASET Statement

This statement is used to specify the beginning of an in-stream data set. The in-stream data set can contain JCL and/or data. The parameters that can be coded on this statement are given below:

  • DDNAME=ddname - This parameter is used to identify the name of the data set. 'ddname' must be unique for the job.
  • J=YES or J=NO - This parameter is used to identify the kind of statement that will terminate the end of a data set. If NO is coded, it implies that a JOB statement will terminate it. If YES is coded, then a //"ENDDATASET statement is used to imply the same.
  • CLASS=MSCCLASS or CLASS=NO or CLASS=class - This parameter is used to specify the assignment of class. If MSGCLASS is coded, it implies that CLASS will be assigned the same value as the one assigned to the MSGCLASS parameter. If NO is coded then the default output class is assigned. You can also code a pre-defined value for this parameter; this would be the designation for class.

An example is given below:

OPERATOR Statement

This statement is used to send a message to the operator at the time that the JES3 control statements are processed. The syntax is 'OPERATOR text' where 'text' is the message to be sent.

An example is given below:

XMIT Statement

This statement is used to transmit a job or job stream to another JES3 or non-JES3 node. The job is transmitted, not executed.

An example is given below:

SIGNON Statement

The SIGNON statement is used to start a job at a remote workstation at a remote node. Unlike other JES3 statements, the SIGNON statement contains only a single slash followed by an asterisk. The syntax of this parameter is 'SIGNON parameters'. The parameters that can be used with SIGNON are given below:

  • work-station-name - This parameter is used to identify the name of the remote workstation that the job is to be executed at. The name can be 1 to 5 characters long and must begin in column 16.
  • reader - This parameter is coded as 'A', implying an automatic reader for the job. It must be code in column 22. If an automatic reader is not used, then this parameter must be omitted.
  • output-spec - This parameter is coded as 'R' and is used to specify information about the printed output produced by the job. It must be coded in column 23. If it is coded, then it specifies that the printed output of the job is to be suspended, if the device to which the output is to be sent is not ready.
  • password! - This parameter is used to identify the password required to execute the remote job. The password can be 1 to 8 characters long and must be coded in column 25.
  • password2 - This parameter is used to identify the password required to log into the remote workstation. The password can be 1 to 8 characters long and must be coded in column 35.

An example is given below:

SIGNOFF Statement

The SIGNOFF statement is used to terminate a remote job session. Like the SIGNON statement, it contains only a single slash followed by an asterisk.

An example is given below:


All rights reserved © 2018 Wisdom IT Services India Pvt. Ltd DMCA.com Protection Status

IBM Mainframe Topics