z/OS

MVS JCL Reference

SA22-7597-02

z/OS

MVS JCL Reference

SA22-7597-02

Note Before using this information and the product it supports, be sure to read the general information under “Notices” on page B-1.

Third Edition, March 2002 This is a major revision of SA22-7597-01. This edition applies to Version 1 Release 3 of z/OS (5694-A01) and to all subsequent releases and modifications until otherwise indicated in new editions. Order publications through your IBM representative or the IBM branch office serving your locality. Publications are not stocked at the address below. IBM welcomes your comments. A form for readers’ comments may be provided at the back of this publication, or you may address your comments to the following address: International Business Machines Corporation Department 55JA, Mail Station P384 2455 South Road Poughkeepsie, NY 12601-5400 United States of America FAX (United States & Canada): 1+845+432-9405 FAX (Other Countries): Your International Access Code +1+845+432-9405 IBMLink (United States customers only): IBMUSM10(MHVRCFS) Internet e-mail: mhvrcfs@us.ibm.com World Wide Web: http://www.ibm.com/servers/eserver/zseries/zos/webqs.html If you would like a reply, be sure to include your name, address, telephone number, or FAX number. Make sure to include the following in your comment or note: v Title and order number of this book v Page number or topic related to your comment When you send information to IBM, you grant IBM a nonexclusive right to use or distribute the information in any way it believes appropriate without incurring any obligation to you. © Copyright International Business Machines Corporation 1988, 2002. All rights reserved. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

Contents
Figures . . . . . . . . . . . . . . . . . . . . . . . . . . xxxiii About This Book . . . . . . . . . . . Who Should Use This Book . . . . . . . Related Information . . . . . . . . . . Programs . . . . . . . . . . . . . Hardware . . . . . . . . . . . . . Accessing licensed books on the Web . . . Using LookAt to look up message explanations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxv xxxv xxxv xxxv xxxv xxxvi xxxvi

Summary of changes . . . . . . . . . . . . . . . . . . . . . xxxix Chapter 1. Job Control Statements . . . . . . . . . . . . . . . . 1-1 JCL Statements . . . . . . . . . . . . . . . . . . . . . . . . 1-1 JECL Statements . . . . . . . . . . . . . . . . . . . . . . . . 1-2 Chapter 2. Job Control Entering Jobs . . . . Processing Jobs . . . Requesting Resources . Task Charts . . . . . Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1 2-1 2-2 2-2 2-2 3-1 3-1 3-3 3-4 3-4 3-4 3-4 3-5 3-6 3-6 4-1 4-1 4-3 4-5 4-5 4-6

Chapter 3. Format of Statements . . JCL Statement Fields . . . . . . . Parameter Field . . . . . . . . JES2 Control Statement Fields. . . . JES3 Control Statement Fields. . . . Continuing Statements . . . . . . . Continuing JCL Statements . . . . Examples of Continued Statements . Continuing JES2 Control Statements Continuing JES3 Control Statements Chapter 4. Syntax of Parameters . Notation Used to Show Syntax . . . Character Sets. . . . . . . . . Syntax Notes . . . . . . . . . Backward References . . . . . . Examples of Backward References . . . . . .

Chapter 5. Procedures and Symbols . . . . Cataloged and In-Stream Procedures . . . . In-stream Procedures . . . . . . . . . Cataloged Procedures . . . . . . . . . Using a Procedure . . . . . . . . . . Testing a Procedure . . . . . . . . . . Modifying Procedures . . . . . . . . . . Explanation . . . . . . . . . . . . . Examples of Procedures . . . . . . . . Nested Procedures . . . . . . . . . . . Nesting Procedures . . . . . . . . . . Modifying Nested Procedures . . . . . . Examples of Modifying Nested Procedures .
© Copyright IBM Corp. 1988, 2002

. 5-1 . 5-1 . 5-1 . 5-1 . 5-2 . 5-2 . 5-3 . 5-3 . 5-7 . 5-9 . 5-9 . . . . . . . . . . . . 5-10 . . . . . . . . . . . . 5-10

iii

Using System Symbols and JCL Symbols . . . . . What are System Symbols? . . . . . . . . . What are JCL Symbols?. . . . . . . . . . . Coding Symbols in JCL . . . . . . . . . . . Determining Equivalent JCL . . . . . . . . . Examples of Defining and Coding Symbols in JCL . Using Symbols in Nested Procedures . . . . . . Examples of Coding Symbols in Nested Procedures

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

5-12 5-12 5-13 5-17 5-19 5-24 5-26 5-27

Chapter 6. Job Control Statements on the Output Listing

. . . . . . . 6-1 7-1 7-1 7-1 7-2 7-3 7-3 7-3 7-5 7-5 7-6 7-6 7-7 7-7 7-7 7-7 7-8 . . . . 7-11 . . . . 7-12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1 8-1 8-1 8-1 8-2 8-2 8-2 8-2 8-2 9-1 9-1 9-1 9-2 9-2 9-2 9-2 9-2 9-2 9-3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Chapter 7. Started Tasks . . . . . . . . . . . . . . . . Determining Whether to Use a Started Task . . . . . . . . . . Determining the Source JCL for the Started Task . . . . . . . . START Command Processing when the Member is a Procedure . START Command Processing when the Member is a Job . . . . Review Current Started Tasks . . . . . . . . . . . . . . Convert Procedures to Jobs (Optional) . . . . . . . . . . . Determining System Services for a Started Task . . . . . . . . Deciding Under Which Subsystem a Started Task Should Run . . Running a Started Task Under a Job Entry Subsystem . . . . . Running a Started Task Under the Master Subsystem . . . . . Running a Started Task That Uses ICF Catalogs . . . . . . . Set Up the Master JCL . . . . . . . . . . . . . . . . Coding the JCL . . . . . . . . . . . . . . . . . . . . Coding the JOB Statement for the Started Task . . . . . . . Using Symbols in Started Task JCL . . . . . . . . . . . . Naming a Started Task (Source JCL is a Job) . . . . . . . . . Setting Up Operator Education for Your Started Task . . . . . . Chapter 8. JCL Command Statement . Description . . . . . . . . . . . Syntax. . . . . . . . . . . . Operation Field . . . . . . . . Parameter Field . . . . . . . . Comments Field . . . . . . . . Location in the JCL . . . . . . . Defaults . . . . . . . . . . . Examples of the Command Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Chapter 9. COMMAND Statement . . . Description . . . . . . . . . . . . Syntax. . . . . . . . . . . . . Name Field . . . . . . . . . . . Operation Field . . . . . . . . . Parameter Field . . . . . . . . . Comments Field . . . . . . . . . Location in the JCL . . . . . . . . Defaults . . . . . . . . . . . . Examples of the COMMAND Statement Chapter 10. Comment Statement . Description . . . . . . . . . Syntax . . . . . . . . . . Location in the JCL . . . . . Listing of Comments Statements . . . . . . . . . .

10-1 10-1 10-1 10-1 10-1

iv

z/OS V1R3.0 MVS JCL Reference

Examples of the Comment Statement . . . . . . . . . . . . . . . 10-1 Chapter 11. CNTL Statement . . . . . . Description. . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . Label Field. . . . . . . . . . . . . Operation Field . . . . . . . . . . . Parameter Field . . . . . . . . . . . Comments Field . . . . . . . . . . . Location in the JCL . . . . . . . . . Program Control Statements . . . . . . Program Control Statements in Procedures . Example of the CNTL Statement. . . . . Chapter 12. DD Statement . . . . . . . Description . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . Name Field . . . . . . . . . . . . Operation Field . . . . . . . . . . . Parameter Field . . . . . . . . . . . Comments Field . . . . . . . . . . Location in the JCL . . . . . . . . . Examples of DD Statements and ddnames * Parameter . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . Defaults . . . . . . . . . . . . . Relationship to Other Parameters . . . . Relationship to Other Control Statements . Location in the JCL . . . . . . . . . Unread Records . . . . . . . . . . Examples of the * Parameter . . . . . ACCODE Parameter . . . . . . . . . Syntax . . . . . . . . . . . . . . Subparameter Definition . . . . . . . Defaults . . . . . . . . . . . . . Overrides. . . . . . . . . . . . . Example of the ACCODE Parameter. . . AMP Parameter . . . . . . . . . . . Syntax . . . . . . . . . . . . . . Subparameter Definition . . . . . . . Relationship to Other Parameters . . . . Buffer Requirements. . . . . . . . . Examples of the AMP Parameter . . . . AVGREC Parameter. . . . . . . . . . Syntax . . . . . . . . . . . . . . Subparameter Definition . . . . . . . Overrides. . . . . . . . . . . . . Relationship to Other Parameters . . . . Examples of the AVGREC Parameter . . BLKSIZE Parameter. . . . . . . . . . Syntax . . . . . . . . . . . . . . Subparameter Definition . . . . . . . Defaults . . . . . . . . . . . . . Overrides. . . . . . . . . . . . . Relationship to Other Control Statements . Coexistence Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-1 11-1 11-1 11-1 11-1 11-1 11-1 11-2 11-2 11-2 11-2

. 12-1 . 12-1 . 12-1 . 12-1 . 12-3 . 12-3 . 12-15 . 12-15 . 12-18 . 12-18 . 12-19 . 12-19 . 12-19 . 12-20 . 12-20 . 12-21 . 12-21 . 12-22 . 12-22 . 12-22 . 12-22 . 12-23 . 12-23 . 12-23 . 12-24 . 12-25 . 12-30 . 12-30 . 12-30 . 12-31 . 12-31 . 12-31 . 12-32 . 12-32 . 12-32 . 12-32 . 12-33 . 12-33 . 12-33 . 12-33 . 12-33 . 12-34

Contents

v

Examples of the BLKSIZE Parameter . . . BLKSZLIM Parameter . . . . . . . . . . Syntax . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . Defaults . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . Example of the BLKSZLIM Parameter . . . BURST Parameter . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . Defaults . . . . . . . . . . . . . . Overrides. . . . . . . . . . . . . . Relationship to Other Parameters . . . . . Relationship to Other Control Statements . . Example of the BURST Parameter . . . . CCSID Parameter . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . Default. . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . Examples of the CCSID Parameter . . . . CHARS Parameter . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . Defaults . . . . . . . . . . . . . . Overrides. . . . . . . . . . . . . . Relationship to Other Parameters . . . . . Relationship to Other Control Statements . . Printing Device Reassignment . . . . . . Requesting a High-Density Dump . . . . . Examples of the CHARS Parameter . . . . CHKPT Parameter . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . Overrides. . . . . . . . . . . . . . Relationship to Other Parameters . . . . . Relationship to the SYSCKEOV DD Statement Checkpointing Concatenated Data Sets . . Examples of the CHKPT Parameter . . . . CNTL Parameter . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . Examples of the CNTL Parameter. . . . . COPIES Parameter . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . Defaults . . . . . . . . . . . . . . Overrides. . . . . . . . . . . . . . Relationship to Other Parameters . . . . . Relationship to Other Control Statements . . Examples of the COPIES Parameter. . . . DATA Parameter . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . Defaults . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . Relationship to Other Control Statements . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12-34 12-34 12-34 12-34 12-35 12-35 12-35 12-35 12-36 12-36 12-36 12-36 12-36 12-36 12-36 12-37 12-37 12-37 12-37 12-37 12-38 12-39 12-40 12-40 12-40 12-40 12-41 12-41 12-41 12-41 12-41 12-41 12-42 12-42 12-42 12-42 12-42 12-42 12-42 12-43 12-43 12-43 12-43 12-44 12-44 12-44 12-45 12-45 12-45 12-46 12-46 12-47 12-47 12-48 12-48 12-49

vi

z/OS V1R3.0 MVS JCL Reference

Location in the JCL . . . . . . . . . . . . . . Unread Records . . . . . . . . . . . . . . . Examples of the DATA Parameter . . . . . . . . . DATACLAS Parameter . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . Defaults . . . . . . . . . . . . . . . . . . Overrides. . . . . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . . . . . Examples of the DATACLAS Parameter . . . . . . DCB Parameter . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . Completing the Data Control Block . . . . . . . . Relationship to Other Parameters . . . . . . . . . Examples of the DCB Parameter . . . . . . . . . DCB Subparameters . . . . . . . . . . . . . DDNAME Parameter . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . Overrides. . . . . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . . . . . Location in the JCL . . . . . . . . . . . . . . Referenced DD Statement . . . . . . . . . . . Backward References . . . . . . . . . . . . . Examples of the DDNAME Parameter . . . . . . . DEST Parameter . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . Subparameter Definition for JES2 Systems . . . . . Subparameter Definition for JES3 Systems . . . . . Defaults . . . . . . . . . . . . . . . . . . Overrides. . . . . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . . . . . Relationship to Other Control Statements . . . . . . Example of the DEST Parameter . . . . . . . . . DISP Parameter . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . Defaults . . . . . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . . . . . Disposition of QSAM Data Sets . . . . . . . . . Disposition of Generation Data Sets . . . . . . . . Disposition of Temporary Data Sets . . . . . . . . Disposition of Partitioned Data Sets (PDSs and PDSEs) Adding a Volume to a Cataloged Data Set . . . . . DISP=MOD for a Multivolume Data Set. . . . . . . Summary of Disposition Processing . . . . . . . . Examples of the DISP Parameter . . . . . . . . . DLM Parameter . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . Default. . . . . . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . . . . . Invalid Delimiters . . . . . . . . . . . . . . . Example of the DLM Parameter . . . . . . . . . DSID Parameter . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12-49 12-49 12-49 12-50 12-51 12-51 12-51 12-52 12-52 12-52 12-53 12-53 12-54 12-55 12-56 12-56 12-57 12-75 12-75 12-75 12-75 12-75 12-75 12-76 12-78 12-78 12-80 12-81 12-81 12-82 12-83 12-83 12-83 12-84 12-84 12-84 12-85 12-85 12-89 12-90 12-90 12-90 12-90 12-90 12-91 12-91 12-93 12-95 12-96 12-96 12-97 12-97 12-97 12-97 12-97 12-97

Contents

vii

Syntax . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . Relationship to Other Parameters . . . . . . Example of the DSID Parameter . . . . . . DSNAME Parameter . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . Relationship to Other Parameters . . . . . Examples of the DSNAME Parameter . . . . DSNTYPE Parameter . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . Defaults . . . . . . . . . . . . . . . Overrides . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . Examples of the DSNTYPE Parameter . . . DUMMY Parameter . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . Parameters on DD DUMMY Statements . . . Relationship to Other Parameters . . . . . Relationship to Other Control Statements . . Relationship to Access Methods . . . . . . Examples of the DUMMY Parameter . . . . DYNAM Parameter . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . Relationship to Other Control Statements . . Example of the DYNAM Parameter . . . . . EXPDT Parameter . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . Overrides . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . Deleting a Data Set Before its Expiration Date. Examples of the EXPDT Parameter. . . . . FCB Parameter . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . Defaults . . . . . . . . . . . . . . . Overrides . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . Relationship to Other Control Statements . . Defining an FCB Image for a Work Station . . Requesting a High-Density Dump . . . . . Examples of the FCB Parameter . . . . . . FILEDATA Parameter . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . Defaults . . . . . . . . . . . . . . . Overrides . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . Example of the FILEDATA Parameter . . . . FLASH Parameter . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . Defaults . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .

. 12-98 . 12-98 . 12-98 . 12-99 . 12-99 . 12-100 . 12-101 . 12-106 . 12-106 . 12-108 . 12-109 . 12-109 . 12-109 . 12-109 . 12-109 . 12-109 . 12-110 . 12-111 . 12-111 . 12-111 . 12-112 . 12-112 . 12-112 . 12-113 . 12-113 . 12-113 . 12-114 . 12-114 . 12-114 . 12-114 . 12-115 . 12-115 . 12-115 . 12-115 . 12-116 . 12-116 . 12-117 . 12-117 . 12-117 . 12-117 . 12-118 . 12-118 . 12-118 . 12-118 . 12-118 . 12-119 . 12-120 . 12-120 . 12-120 . 12-120 . 12-120 . 12-120 . 12-120 . 12-121 . 12-121 . 12-121

viii

z/OS V1R3.0 MVS JCL Reference

Overrides . . . . . . . . . . . . . Relationship to Other Parameters . . . . Relationship to Other Control Statements . Verification of Forms Overlay Frame . . . Printing without Flashing. . . . . . . . Example of the FLASH Parameter . . . . FREE Parameter . . . . . . . . . . . Syntax . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . Defaults . . . . . . . . . . . . . . Overrides . . . . . . . . . . . . . Relationship to Other Parameters . . . . Relationship to Other Control Statements . Relationship to the CLOSE Macro Instruction Examples of the FREE Parameter . . . . HOLD Parameter . . . . . . . . . . . Syntax . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . Defaults . . . . . . . . . . . . . . Overrides . . . . . . . . . . . . . Relationship to Other Parameters . . . . Relationship to Other Control Statements . Examples of the HOLD Parameter . . . . KEYLEN Parameter . . . . . . . . . . Syntax . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . Overrides . . . . . . . . . . . . . Relationship to Other Parameters . . . . Examples of the KEYLEN Parameter . . . KEYOFF Parameter . . . . . . . . . . Syntax . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . Overrides . . . . . . . . . . . . . Relationship to Other Parameters . . . . Example of the KEYOFF Parameter . . . LABEL Parameter . . . . . . . . . . . Syntax . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . Defaults . . . . . . . . . . . . . . Relationship to Other Parameters . . . . Relationship to Other Control Statements . Data Conversion . . . . . . . . . . Examples of the LABEL Parameter . . . . LGSTREAM Parameter . . . . . . . . . Syntax . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . Defaults . . . . . . . . . . . . . . Overrides . . . . . . . . . . . . . Relationship to Other Parameters . . . . Example of the LGSTREAM Parameter . . LIKE Parameter . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . Overrides . . . . . . . . . . . . . Relationship to Other Parameters . . . . Examples of the LIKE Parameter . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12-121 12-121 12-122 12-122 12-122 12-122 12-122 12-123 12-123 12-123 12-123 12-123 12-124 12-124 12-124 12-125 12-125 12-126 12-126 12-126 12-127 12-127 12-127 12-127 12-128 12-128 12-128 12-128 12-128 12-129 12-129 12-129 12-129 12-130 12-130 12-130 12-131 12-131 12-134 12-134 12-135 12-135 12-135 12-136 12-136 12-137 12-137 12-137 12-137 12-137 12-138 12-139 12-139 12-139 12-139 12-139

Contents

ix

LRECL Parameter . . . . . . . . . . Syntax . . . . . . . . . . . . . Subparameter Definition . . . . . . . Overrides . . . . . . . . . . . . Relationship to Other Parameters . . . Examples of the LRECL Parameter. . . MGMTCLAS Parameter . . . . . . . . Syntax . . . . . . . . . . . . . Subparameter Definition . . . . . . . Defaults . . . . . . . . . . . . . Overrides . . . . . . . . . . . . Relationship to Other Parameters . . . Example of the MGMTCLAS Parameter . MODIFY Parameter . . . . . . . . . Syntax . . . . . . . . . . . . . Subparameter Definition . . . . . . . Defaults . . . . . . . . . . . . . Overrides . . . . . . . . . . . . Relationship to Other Parameters . . . Relationship to Other Control Statements Example of the MODIFY Parameter . . OUTLIM Parameter . . . . . . . . . Syntax . . . . . . . . . . . . . Subparameter Definition . . . . . . . Default . . . . . . . . . . . . . Relationship to Other Parameters . . . Relationship to Other Control Statements Example of the OUTLIM Parameter . . OUTPUT Parameter . . . . . . . . . Syntax . . . . . . . . . . . . . Subparameter Definition . . . . . . . Defaults . . . . . . . . . . . . . Overrides . . . . . . . . . . . . Relationship to Other Parameters . . . Location in the JCL . . . . . . . . No Match for OUTPUT Name . . . . . Processing Options in Multiple References Examples of the OUTPUT Parameter . . PATH Parameter . . . . . . . . . . Syntax . . . . . . . . . . . . . Subparameter Definition . . . . . . . Defaults . . . . . . . . . . . . . Relationship to Other Parameters . . . Relationship to Other Statements . . . Dummy HFS Files . . . . . . . . . Example of the PATH Parameter. . . . PATHDISP Parameter. . . . . . . . . Syntax . . . . . . . . . . . . . Subparameter Definition . . . . . . . Defaults . . . . . . . . . . . . . Relationship to Other Parameters . . . Example of the PATHDISP Parameter . . PATHMODE Parameter . . . . . . . . Syntax . . . . . . . . . . . . . Subparameter Definition . . . . . . . Defaults . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12-140 12-140 12-140 12-141 12-141 12-141 12-141 12-142 12-142 12-142 12-142 12-143 12-143 12-143 12-143 12-144 12-144 12-144 12-144 12-144 12-145 12-145 12-145 12-145 12-145 12-145 12-146 12-146 12-146 12-146 12-147 12-147 12-147 12-148 12-148 12-148 12-148 12-149 12-150 12-150 12-150 12-151 12-151 12-152 12-152 12-153 12-153 12-153 12-154 12-154 12-154 12-154 12-155 12-155 12-155 12-157

x

z/OS V1R3.0 MVS JCL Reference

Relationship to Other Parameters . . . . . . . . . . . Example of the PATHMODE Parameter . . . . . . . . . PATHOPTS Parameter . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . Defaults . . . . . . . . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . . . . . . . File Status . . . . . . . . . . . . . . . . . . . . Example of the PATHOPTS Parameter . . . . . . . . . PROTECT Parameter. . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . Overrides . . . . . . . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . . . . . . . Requirements for Protecting a Tape Data Set . . . . . . . Requirements for Protecting a Tape Volume . . . . . . . Requirements for Protecting a Direct Access Data Set. . . . Examples of the PROTECT Parameter . . . . . . . . . QNAME Parameter . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . . . . . . . Examples of the QNAME Parameter . . . . . . . . . . RECFM Parameter . . . . . . . . . . . . . . . . . . Coding RECFM for BDAM Access Method . . . . . . . . Coding RECFM for BPAM Access Method . . . . . . . . Coding RECFM for BSAM, EXCP, and QSAM Access Methods Coding RECFM for QISAM Access Method . . . . . . . . Syntax: QISAM Access Method . . . . . . . . . . . . Overrides . . . . . . . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . . . . . . . Examples of the RECFM Parameter . . . . . . . . . . RECORG Parameter . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . Defaults . . . . . . . . . . . . . . . . . . . . . Overrides . . . . . . . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . . . . . . . Example of the RECORG parameter . . . . . . . . . . REFDD Parameter . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . Overrides . . . . . . . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . . . . . . . Examples of the REFDD Parameter . . . . . . . . . . RETPD Parameter . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . Overrides . . . . . . . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . . . . . . . Deleting a Data Set Before its Retention Period Passes . . . Examples of the RETPD Parameter . . . . . . . . . . RLS Parameter . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . Overrides . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12-157 12-158 12-158 12-159 12-159 12-160 12-161 12-161 12-162 12-162 12-162 12-163 12-163 12-163 12-163 12-163 12-164 12-164 12-164 12-165 12-165 12-165 12-165 12-165 12-166 12-166 12-167 12-168 12-168 12-169 12-169 12-169 12-169 12-170 12-170 12-170 12-170 12-170 12-170 12-170 12-171 12-171 12-172 12-172 12-172 12-172 12-173 12-173 12-173 12-173 12-174 12-174 12-174 12-175 12-175 12-175

Contents

xi

Relationship to Other Parameters . . . . Examples of the RLS Parameter . . . . . SECMODEL Parameter . . . . . . . . . Syntax . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . Overrides . . . . . . . . . . . . . Relationship to Other Parameters . . . . Examples of the SECMODEL Parameter. . SEGMENT Parameter . . . . . . . . . Syntax . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . Overrides . . . . . . . . . . . . . Relationship to Other Parameters . . . . Example of the Segment Parameter . . . SPACE Parameter . . . . . . . . . . . Syntax . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . Overrides . . . . . . . . . . . . . Relationship to Other Parameters . . . . SPACE for New Data Sets with SMS . . . Examples of the SPACE Parameter . . . SPIN Parameter . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . Defaults . . . . . . . . . . . . . . Overrides . . . . . . . . . . . . . Relationship to Other Parameters . . . . Examples of the SPIN Parameter . . . . STORCLAS Parameter . . . . . . . . . Syntax . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . Defaults . . . . . . . . . . . . . . Overrides . . . . . . . . . . . . . Relationship to Other Parameters . . . . Examples of the STORCLAS Parameter . . SUBSYS Parameter . . . . . . . . . . Syntax . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . Relationship to Other Parameters . . . . Examples of the SUBSYS Parameter . . . SYSOUT Parameter . . . . . . . . . . Syntax . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . Defaults . . . . . . . . . . . . . . Overrides . . . . . . . . . . . . . Relationship to Other Parameters . . . . Relationship to Other Control Statements . Starting an External Writer when Requested Held Classes in a JES2 System . . . . . Held Classes in a JES3 System . . . . . Significance of Output Classes . . . . . Examples of the SYSOUT Parameter . . . TERM Parameter . . . . . . . . . . . Syntax . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . Relationship to Other Parameters . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12-175 12-175 12-176 12-177 12-177 12-177 12-177 12-177 12-177 12-178 12-178 12-178 12-178 12-178 12-178 12-180 12-180 12-185 12-185 12-186 12-186 12-187 12-187 12-187 12-187 12-188 12-188 12-188 12-189 12-189 12-189 12-189 12-190 12-190 12-190 12-190 12-191 12-191 12-192 12-193 12-193 12-194 12-194 12-195 12-196 12-196 12-197 12-197 12-197 12-197 12-197 12-198 12-199 12-199 12-199 12-199

xii

z/OS V1R3.0 MVS JCL Reference

. . . . . STEPCAT DD Statement . . . Parameters on STEPCAT DD Statements Relationship to Other Control Statements Location in the JCL . . . . . . . . . . . . . . 13-1 13-1 13-1 13-1 13-1 13-2 13-2 13-2 13-2 13-2 13-2 13-2 13-3 13-3 13-4 13-4 13-4 13-5 13-6 13-7 13-8 13-8 13-8 13-8 13-8 13-9 13-9 13-9 | Contents xiii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Examples of the UCS Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . Defaults . . . . . Chapter 13. . Examples of the UNIT Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . UNIT Parameter . . . . . . . . . . . . . . . . . . . . . . Parameters on JOBCAT DD Statements . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overrides . . . . . . . . . . . . . . . . . . . . Relationship to Other Parameters . . VOLUME Parameter in a JES3 System . . . . . . . . . . . . . Example of the JOBCAT DD Statement . . . . . . . . . . . Using Special Character Sets . . . . . . . . . . . . . UCS Parameter . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . VOLUME Parameter for Nonspecific Volume Requests . . . . . . . . . . . . . . . . Description . . . . . . . . 12-199 12-200 12-200 12-201 12-201 12-202 12-202 12-202 12-203 12-203 12-203 12-204 12-204 12-207 12-207 12-208 12-208 12-210 12-211 12-212 12-218 12-218 12-218 12-218 12-218 12-219 12-219 . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . .Location in the JCL . . . . . . . Relationship between JOBLIB and Passed Examples of the JOBLIB DD Statement . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . Relationship to Other Control Statements Location in the JCL . . . . . . . . . . . . . . . . . . Examples of the TERM Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data Sets . . . . . . . Overrides . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Relationship to STEPCAT DD Statement Relationship to Other Control Statements Location in the JCL . Examples of the VOLUME Parameter . . . . . . . Syntax . . . . . Parameters on JOBLIB DD Statements . . . . . . . . . Special ddnames . . . . . . . . . . . . . . JOBCAT DD Statement . . . . . . . . . . . . . Location in the JCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parameters on STEPLIB DD Statements . . . . . . . . Syntax . . . . Special DD Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VOLUME Parameter . . . . . . . . . . . . . . . . . . . . . . . Overrides . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . Relationship of a JOBLIB to a STEPLIB . . . . . . . . . . VOLUME parameter for Specific Multi-Volume Tape Requests . . . . . . . . . . . VOLUME Parameter for Optical Readers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example of the STEPCAT DD Statement STEPLIB DD Statement . . . . . . . Relationship of the UNIT Parameter to Other Parameters . . . JOBLIB DD Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

.0 MVS JCL Reference . . . . . . . . . Location in the JCL . . . . . . . . . . . . . Overriding Dump DD Statements . . . . . . . . . . . . . . . . . . . . . EXEC Statement . . Printing a Dump . . . . . . . . . . . . . . . . . . . . . . . . . . Label Field. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Examples of the STEPLIB DD Statement . . . Example of the SYSCKEOV DD Statement . . . . . . . . SYSIN DD Statement . . . . . . . . . . Chapter 16. . . . . . . . . . . . Operation Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Location in the JCL . . . . . . Duplicate Dump Requests . . . Examples of EXEC Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Examples of the SYSABEND. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SYSCHK DD Statement . . . Relationship of a STEPLIB to a JOBLIB . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . Syntax . . . Delimiter Statement . . . . . . . . . . . . . . . . . Relationship to Other Control Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-1 14-1 14-1 14-1 14-1 14-2 14-2 15-1 15-1 15-1 15-1 15-1 15-1 15-1 15-1 16-1 16-1 16-1 16-1 16-2 16-2 16-5 16-5 16-5 Chapter 15. . . . . . . . . . . . . . . . . . . . Chapter 14. . . . . . . . . Parameter Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . Relationship to the DLM Parameter Location in the JCL . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . Location in the JCL . . . Description . Storing a Dump . . . . . . . . . . . . . . . . . . . . . . . . . . . . Examples of the SYSCHK DD Statement . . . . . . . Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parameters on SYSCKEOV DD Statements . . . . . . . . . . . . . . . . Parameters on SYSCHK DD Statements . . . . . . . . . . . . . . . .Relationship to Other Control Statements . . . . Location in the JCL . . . . . . . . Location in the JCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example of the ENDCNTL Statement . . . . . . and SYSUDUMP Statements . Comments Field. . . . . . . . . SYSMDUMP. . . . . . . . Syntax . . . . . . . Name Field . . . Examples of SYSIN DD Statements . . . . and SYSUDUMP DD Statements. . . . . . . . . . . DD . . . . SYSMDUMP. . . . . . . . . . . . . Location in the JCL . 13-10 13-11 13-11 13-11 13-12 13-13 13-13 13-13 13-13 13-14 13-14 13-14 13-15 13-15 13-16 13-17 13-17 13-17 13-17 13-18 13-18 13-18 13-18 13-18 13-19 13-19 13-19 13-19 . . . . . . . . . . . . . . . Location in the JCL . . . . . . . . . . . . . . . . . . . . . . . . xiv z/OS V1R3. . . . . . . . . SYSCKEOV DD Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SYSABEND. . . . . Comments Field. . . . . . . . . Operation Field . . . . Comments Field. . . . ENDCNTL Statement . . . . . . . . Description . . . . . . . . . . Parameters on SYSIN DD Statements . . . . . . . . . . . . . . . . . Examples of the Delimiter Statement . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . .

. . . . MEMLIMIT Parameter . . . . . . 16-21 . . . . . . . . 16-19 . . . . 16-18 . 16-19 . . . . . . . . . . . . . . . . . . . . . . . . . . . Examples of the ACCT Parameter . . . . . . . . . . . . . . 16-18 . . . . . . . . . . . . . . . . . . COND Parameter. . . ADDRSPC Parameter . . . . . . . Syntax . 16-18 . . . Example of the PERFORM Parameter . . 16-9 . . . . . . . . On an EXEC Statement that Calls a Procedure . . . 16-19 . . . 16-8 . . . . . . Syntax . . . . 16-13 . . . . . . . . . Overrides . . . . Syntax . . . . . . . . . . . . 16-8 . . . . . . . . . . . . . . . . . . . . . . Defaults. . . . . . . . . . PERFORM Parameter . . . . . . . . Subparameter Definition . Relationship to the EXEC REGION Parameter . . . . . . . . . . . . . . .ACCT Parameter . . 16-11 . . . . . . . . . . . . . . . 16-9 . . . . . . . . . . . . . . . . On an EXEC Statement that Calls a Procedure . PARM Parameter . . . . . . . 16-15 . . . . . . . 16-10 . . . . . . . . . . . . . . Overrides. . . . . . . 16-6 . . . . Syntax . . . . . 16-18 . . . . . 16-13 . 16-13 . . . . . Subparameter Definition . . . . . . . . . . . . . Syntax . . . . . 16-8 . 16-21 . . Examples of the COND Parameter . . . 16-18 . . . . . . . . . . . . Defaults . . . . . 16-9 . . . . . . Examples of the PGM Parameter . . . . . . . . . . . . . . . . . . Default. . . . . . . . . . . . . . . . . . . 16-10 . . . . . . . . . Relationship to Other Parameters . . . Syntax . . . . 16-10 . . . . . . . . Syntax . . 16-8 . . . . . . . . . . . . . . . . . . . . 16-21 . . Subparameter Definition . . . . . . . . Subparameter Definition . . Subparameter Definition . . . . . . . . 16-22 . 16-8 . . . . . . . . . . . . . . . . . . . . . . 16-24 Contents xv . . . . Example of the MEMLIMIT Parameter . . On an EXEC Statement that Calls a Procedure . 16-10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-20 . . . . . Examples of the PARM Parameter . . . . . Overrides. . . . . . . . . . . . . . . . . . . . . . . . . . 16-13 . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-23 . . . . Summary of COND Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-23 . . . . . . . . . . . . . . . . . . . . . . . . Considerations when Using the COND Parameter . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . DYNAMNBR Parameter . . . . 16-7 . . . . 16-12 . . . 16-7 . . . . . . . . . . . . On an EXEC Statement that Calls a Procedure . . . . . . Examples of the CCSID Parameter . . Defaults . 16-22 . . . . . . . . . . . . . . 16-19 . . . . . . . . . . . . . . . Overrides. . . . . . . . . . 16-19 . . . . . . . On an EXEC Statement that Calls a Procedure . . . . . . 16-23 . . . . . . . . . . . . 16-22 . 16-6 . . 16-22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example of the DYNAMNBR Parameter . . . . . . . Syntax . . . . . . . . . . . . . 16-21 . . . . 16-7 . . . . . . 16-8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-22 . . . . . Examples of the ADDRSPC Parameter . . . . . . . . . . . . . . 16-19 . . . Defaults . . . . . . . . . . . . . Syntax . . . . . . . . . . Location in the JCL . 16-10 . . 16-20 . . . . . . . . . . . . . . . . . . . . . . . . 16-20 . PGM Parameter . . . . . . . . . . . . On an EXEC Statement that Calls a Procedure . . . . . . . . . . . . . . . . . . . . . . . . . 16-16 . . . . . . . Subparameter Definition . . . . . . . . . . . Subparameter Definition . . . . . . . . CCSID Parameter . . . . 16-23 . . 16-10 . .

. . . . . . . . . 17-10 . . . . . . . 17-1 . . . . . . . . . . Comments Field. . . . . . . . . . . Relationship to the EXEC ADDRSPC Parameter On an EXEC Statement that Calls a Procedure . . . . . Overrides. . . . . . . INCLUDE Statement . . . . . . . . . . . . . 17-8 . . . . . . Defaults . . . . . . Subparameter Definition . . . 16-25 . . . . . . THEN and ELSE Clauses . . . . . . Considerations when Using the IF/THEN/ELSE/ENDIF Construct. . . . . . . . . . . . . . . . . . . . . . . . . . . . Examples of the RD Parameter .PROC and Procedure Name Parameters . . . . . . Description . . . . . . . . . . 17-1 . . . . . . . . Syntax . . 19-1 xvi z/OS V1R3. . . . . . . . . . . . . . . . . . . . Overrides. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comments Field. . . . . . . . . . . . . . . Name Field . Defaults . . . . . . . . . . Location in the JCL . . . . . . . Considerations for Using INCLUDE Groups Examples of the INCLUDE Statement: . . . . . . . . . . . . . . . . . . Examples of the REGION Parameter . 17-7 . . . . . . . . . . . . . . . . . . . . . . . Operation Field . . 17-7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Examples of the TIME Parameter . . . . . . . . . . . . . . . . . . Parameter Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . Relationship to Other Control Statements . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . Description . . . . . . . Name Field . . . . . . . . . . . . . . . . 16-25 . . . 17-1 . 17-7 . Syntax . . . . . . . . . . . . . . . . Effect of PROC Parameter on Other Parameters Statements . . . . . . . . . . . . . . . . . . . . . . . 17-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Examples of IF/THEN/ELSE/ENDIF Statement Constructs . . . . . . . Defaults . . . . . . . . . . . . . . . . . . . . 17-1 . . REGION Parameter . . . . . . . . . . . . Operation Field . . . . . . Syntax . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . On an EXEC Statement that Calls a Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . RD Parameter . . . . . . . . . . . . . . . . . 16-25 . . . . . . . . . . . . . . . . . Examples of the PROC Parameter . . . . . . . . . . . JCLLIB Statement . . . . . . . . . . . Subparameter Definition . . . . . . . . On an EXEC Statement that Calls a Procedure . . . . . . . . Chapter 18. . . . . 16-25 16-25 16-26 16-27 16-27 16-28 16-28 16-28 16-28 16-28 16-29 16-29 16-29 16-30 16-30 16-30 16-31 16-31 16-31 16-32 16-32 16-32 16-32 16-32 16-33 Chapter 17. . . . . . . . . . . . . . . . . . . . 17-7 . . . Relational-Expression Field . . . . . . . . . Location in the JCL . . . . . . . . . Syntax . . . . . . . . . . . 17-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IF/THEN/ELSE/ENDIF Statement Construct . . . . . . . . . . . TIME Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 MVS JCL Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Relationship to Other Parameters . . . . Overrides. . . . . . . . . 19-1 Description . . . . . . . . . . . . . . . . . . . 18-1 18-1 18-1 18-1 18-1 18-1 18-2 18-2 18-2 18-2 Chapter 19. . . . . . and Following . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . 20-11 . Overrides. . . . . . . . . . . 20-12 . . . . . 20-10 . . . . . . . . . . . . . . . . Examples of JOB Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-6 . . . 20-6 . . . . . . . . . . . . . . . . . . . . . . . . Accounting Information Parameter . . . . . Syntax . . . . . 20-14 . . . . . . . . Relationship to Other Control Statements . . . . . . . . . Parameter Field . . . . . . . . . . . Syntax . . . . . . . . Defaults . . . . . . . . . . . . . Default. . . . . . . . . . Defaults . . . 20-14 . . . . . 20-15 . . . . . . . . . . . Syntax . . . 20-9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CARDS Parameter . . 20-1 . . . Relationship to Other Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Examples of the CCSID Parameter . . . . . 20-10 . Operation Field . . . . . . . . . . . Subparameter Definition . . . . 20-8 . . . . . . . . . . . . . . . . . . . .Syntax . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . Operation Field . . . . . . . . . . . . . . . . . . . 20-13 . . . . . Subparameter Definition . . Comments Field. . . . . . . . . . . 20-15 . . . . . . . . . Overrides. 20-2 . . . . 20-12 . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . Relationship to Other Control Statements . . . . . . . . . . . . . . . . . . 20-11 . . . BYTES Parameter . . . . . . . 20-11 . . . . . . . . . . Subparameter Definition . . . Parameter Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . JOB Statement . . . . . . . . . . 20-14 . . . . . . . . . . . . . . . . Name Field . 20-10 . . . . . . . . . . . . . . . . . . . . Overrides. CLASS Parameter . . . . . . . . . . . . . ADDRSPC Parameter . . . . . . . . . . 20-13 . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . Relationship to Other Parameters . . . . . . . . . . . . . . . . 19-1 19-2 19-2 19-2 19-3 19-3 19-3 19-3 Chapter 20. . Location in the JCL . . Relationship to the JOB REGION Parameter. . . . . . . . . . . Relationship to Other Control Statements . . . . . . . 20-1 . 20-6 . . . . . . . . . . . . . . . . . . Description . . . Syntax . . . . . . . . . . . . . . . . . Examples of the BYTES Parameter . . . . . 20-6 . 20-8 . . Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-12 . . . . . 20-7 . 20-12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-10 . . . . . . . . . . . . . . Examples of the ADDRSPC Parameter . . . . . . . . . . . . . 20-13 . . . . . . . . . . . . . . . . . . . . . . . . . 20-7 . . . . . . . . . . . . . . . 20-14 . Relationship to Other Parameters . . Overrides. . . 20-2 . 20-15 . . . . . . . . . . . . . . . . Comments Field. . . . . . . . . . . . . . . . . . . . . . 20-15 . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-14 . Examples of the Accounting Information Parameter . . Examples of the CARDS Parameter . . 20-1 . . . 20-1 . . . . . . . . 20-15 . . . . . . . . . Name Field . . Considerations for Using the JCLLIB Examples of the JCLLIB Statement . . . . . . . . . . . . . . . . . . . . 20-12 . . . . . . . 20-16 Contents xvii . Location in the JCL . . . . . . . . . . . . . . . 20-10 . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . 20-16 . . . . . . . . . . . . . . . . CCSID Parameter . . . . . . . . . . . . . 20-11 . JES2 Accounting Information Format . . . . . . . . . . . . . . . . . . . . . . 20-7 . . . . 20-15 . . . . . . . . . . . . . . . . . . . . . . . . . . . Statement . . . .

. . . . . . . GROUP Parameter . . . . . . . . . Overrides. . . . . . . . . Examples of the LINES Parameter . . . . . . . . . . . . . . . . . Overrides. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Examples of the NOTIFY Parameter . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overrides. . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . COND Parameter. . . . . . . . Summary of COND Parameters . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . PAGES Parameter . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Examples of the MSGLEVEL Parameter . Syntax . . . . MSGLEVEL Parameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 MVS JCL Reference . . . . . . . . . . . . . Subparameter Definition for JES2 Systems Subparameter Definition for JES3 Systems Receiving Notification of Job Completion . . . . MSGCLASS Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . Examples of the JESLOG Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . Examples of the MEMLIMIT Parameter . . . . . . .| | | | | Syntax . . . LINES Parameter . . . . . . . . . . . . . Example of the CLASS Parameter . . 20-17 20-17 20-17 20-17 20-17 20-17 20-17 20-18 20-18 20-19 20-19 20-19 20-19 20-20 20-20 20-20 20-20 20-21 20-21 20-21 20-21 20-21 20-22 20-22 20-22 20-23 20-23 20-23 20-23 20-23 20-24 20-24 20-24 20-24 20-24 20-24 20-25 20-25 20-25 20-25 20-25 20-26 20-26 20-27 20-27 20-27 20-28 20-28 20-28 20-28 20-29 20-29 20-29 20-30 20-30 20-30 xviii z/OS V1R3. . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . Syntax . . . . . . . . . Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . JESLOG Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Relationship to Other Control Statements . Significance of Output Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . Defaults . . . . . . . Overrides. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Examples of the MSGCLASS Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MEMLIMIT Parameter . . . . . Subparameter Definition . . . Syntax . . . . . . . . . . . . . . Relationship to Other Control Statements . . . . . . . . . . . . . . Example of the GROUP Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . NOTIFY Parameter . . Defaults . . . . Relationship to Other Parameters . Defaults . . . . . . Examples of the COND Parameter . . . Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . Relationship to Other Control Statements . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Examples of the PASSWORD Parameter . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . Examples of the Programmer’s Name Parameter PRTY Parameter . . . . . . . . . . . . . . . . . . . . . . . . . Relationship to Other Control Statements . . . . . . . . . . . . . . . . . . . Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Defaults . . . . . . . Example of the PRTY Parameter . . . . Syntax . . . . Syntax . . . . . . . . . . . . . . . Parameter Definition. . . . . . . . . . . . . . . Defaults . . . . . . . . . . . . . . . .Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Defaults . Subparameter Definition . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Examples of the RD Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . Defaults . . . . . . . . . . . . . . . . . Overrides. Examples of the PERFORM Parameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . Syntax . SCHENV Parameter. . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . Relationship to Other Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . Overrides. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . Relationship to Other Control Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . REGION Parameter . . . Cautions when Coding the RESTART Parameter Generation Data Sets in Restarted Jobs . . . . . . . . . . . . . RESTART Parameter . . . . Examples of the PAGES Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programmer’s Name Parameter . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PASSWORD Parameter . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . 20-31 20-31 20-31 20-31 20-31 20-31 20-32 20-32 20-33 20-33 20-33 20-34 20-34 20-34 20-34 20-34 20-35 20-35 20-35 20-36 20-36 20-37 20-37 20-37 20-37 20-37 20-38 20-38 20-39 20-39 20-40 20-40 20-40 20-41 20-41 20-41 20-42 20-42 20-42 20-42 20-43 20-43 20-43 20-44 20-44 20-44 20-45 20-45 20-45 20-46 20-46 20-46 20-46 20-46 20-47 20-47 Contents xix . . . . . . Overrides. . . . . . Example of the SECLABEL Parameter . . . . . . . . . . . . . . . . . . . . . . . Relationship to the JOB ADDRSPC Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SECLABEL Parameter . . . . . . . . Examples of the RESTART Parameter . Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overrides. . . . . . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . . Syntax . . RD Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . Examples of the REGION Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . PERFORM Parameter . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example of the Null Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Defaults . . . . EXEC Statements . . . . . . . . . . . . . . . . . . . . . . . . TIME Parameter . . . . . . . . . . . . . . Overrides. . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Name Field . . . . . . . . . . . . . . Subparameter Definition . Overrides. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overrides. . . . . . . . . . . . . . . . . Example of the SCHENV Parameter . . . . Examples of the TIME Parameter on JOB and TYPRUN Parameter . . . . . . . . . . . . . . . . . . . . . . . . . Description . . . . . . . . . . . . Description . . . . . . . . . . . . . . . . . 22-1 22-1 22-1 22-1 22-1 22-2 22-9 22-9 22-11 22-11 22-11 22-11 22-12 22-12 22-12 22-13 22-13 22-13 22-14 22-14 22-14 22-14 22-15 22-15 22-15 22-15 22-15 22-16 22-16 xx z/OS V1R3. Example of the TYPRUN Parameter . . . . Syntax . . . . . . . . . . . . . . . Chapter 21. . . . . . . . . . . . . . . Null Statement . . . . . . . . . . .0 MVS JCL Reference . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Relationship to the JES3 //*FORMAT Statement ADDRESS Parameter . . . Operation Field . . . . . . . . . Examples of the ADDRESS Parameter . . . . . . . . . . . . Subparameter Definition . . Syntax . . . . . . . . . . . OUTPUT JCL Statement . . . . . . . . . . . . . Parameter Field . . BUILDING Parameter . . . . . . . Location in the JCL . . . . . . . . . . . Overrides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example of the USER Parameter . . . . . Syntax . . . Defaults . . . . . . . . . . . . . . .Relationship to Other Control Statements . . . . . . . Defaults . . . . . . . . . . . . . . . . . Overrides. . . . . . Relationship to Other Parameters . . . . . . . . . . Subparameter Definition . . . . Subparameter Definition . . 21-1 21-1 21-1 21-1 21-1 Chapter 22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . Subparameter Definition . . . . . . . . . . . Comments Field. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . Defaults . . . . . . . . . . . . Location in the JCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BURST Parameter . . . . . . . . . USER Parameter . . . . . . . . . . . . . . . . Example of the BUILDING Parameter . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Relationship to the JES2 /*OUTPUT Statement . . . . . . . . Examples of the TIME Parameter . . . . . . . . Relationship to Sysout DD Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Defaults . . . . . . . . . Relationship to Other Control Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-47 20-47 20-47 20-48 20-48 20-48 20-48 20-49 20-49 20-50 20-50 20-50 20-51 20-52 20-52 20-53 20-53 20-53 20-53 20-53 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Overrides. . . . . . . . . . . . . . . . . . . . . . . . Requesting a High-Density Dump . . . . . . . . . . . . . . . . . . . . . . Syntax . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Example of the BURST Parameter . . . . . Defaults . . . . . . . . Defaults . . . . CKPTSEC Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example of the COLORMAP Parameter COMPACT Parameter . . . . . . . . . . . . . . . . . . . . . . . . . Example of the COMPACT Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . CKPTPAGE Parameter. . . . . . . . . . . . . . . . . . Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . Defaults . . . Held Classes in a JES2 System . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example of the CKPTPAGE Parameter . . . . . . . COMSETUP Parameter . . . CKPTLINE Parameter . . . . . . . CLASS Parameter . . . . . . . Examples of the CLASS Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . Example of the CKPTSEC Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CHARS Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . Held Classes in a JES3 System . Subparameter Definition . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overrides. . . . . . . . . . . . . . . . . . . . . . . . . . . . Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . Syntax . . . Syntax . . . . . . . . . . . . . . . . . . . . . Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . COPIES Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example of the COMSETUP Parameter CONTROL Parameter . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . Significance of Output Classes . . . . . . . . . . . Relationship to Other Parameters . Example of the CKPTLINE Parameter . . . 22-16 22-16 22-16 22-16 22-17 22-17 22-17 22-17 22-18 22-18 22-18 22-18 22-18 22-18 22-19 22-19 22-19 22-19 22-19 22-19 22-19 22-20 22-20 22-20 22-20 22-20 22-20 22-20 22-21 22-21 22-21 22-21 22-22 22-22 22-22 22-22 22-23 22-23 22-23 22-23 22-23 22-23 22-23 22-23 22-24 22-24 22-24 22-24 22-24 22-24 22-25 22-25 22-25 22-25 22-25 22-26 Contents xxi . . . . . . . . . . . Defaults . . . . . . . . . . . . . . . . . Overrides. . Example of the CONTROL Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example of the CHARS Parameter . . . . . . . . . . . . . COLORMAP Parameter . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . FCB Parameter . . DPAGELBL Parameter . . . . . . . . Examples of the DEST Parameter . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . Subparameter Definition . . DEST Parameter . . . . . . . . . . . . . . . . . . . . Defaults . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . Subparameter Definition . . . . . . . . . . Syntax . . Relationship to Other Parameters . . . . . . Syntax . Overrides. . . . . . . . . . . . Requesting a High-Density Dump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Relationship to Other Keywords on This Statement Example of the DUPLEX Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Defaults . DATACK Parameter . . . . . . . . . . . . . . . . DEPT Parameter . . . . . . . Relationship to Other Parameters . . . . . . . . . . . . . . . . . Defaults . . . . . . . . . . . . . . .Overrides. . . . . . FLASH Parameter . . . . . . . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . . . . . . . . . . . . . . . . . Example of the DEPT Parameter . . . . . . . . . Overrides. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overrides. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example of the DPAGELBL Parameter . . . . . . . . . . . Location in the JCL . . . . . . . . . . . . . . . Subparameter Definition . . . . Relationship to Other Control Statements . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . Overrides. . . . . . . . . . . Syntax . . . . . . . . Syntax . . . References to Default OUTPUT JCL Statements . . . . . . Subparameter Definition . . . . . . . . . Relationship to Other Parameters . Defaults . . . . . . . . Examples of the COPIES Parameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DEFAULT Parameter . . Subparameter Definition . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . Example of the DATACK Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 MVS JCL Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-26 22-26 22-26 22-26 22-27 22-28 22-28 22-28 22-28 22-28 22-28 22-29 22-29 22-29 22-29 22-29 22-30 22-31 22-31 22-31 22-32 22-32 22-32 22-32 22-33 22-33 22-34 22-35 22-35 22-35 22-35 22-36 22-36 22-36 22-37 22-37 22-37 22-37 22-37 22-37 22-38 22-38 22-38 22-38 22-39 22-39 22-39 22-39 22-39 22-40 22-40 22-40 22-40 22-41 22-41 22-41 xxii z/OS V1R3. . . . . . . . . . . . . . . . . . . . . . . . Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DUPLEX Parameter . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition for JES2 Systems . . . . . . . Example of the FCB Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example of the DEFAULT Parameter . Relationship to Other Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . . . . . . . . . . . . . . . Defaults . . . . . . . . . . . . . . . Subparameter Definition for JES3 Systems . . . . . . . . . . . . . . . . .

. . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . .Verification of Forms Overlay Frame . . . . . . . . . . . . . Overrides. Defaults . . . . . . . . . . . . . . Defaults . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GROUPID Parameter . . . . . . . . . Overrides. . . . . . . . . . . . . . . . . . . . . . . . . . Relationship to Other Control Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . INDEX Parameter . . . . JES3 Processing with JESDS . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . FORMLEN Parameter . . . . . . Example of the JESDS Parameter . . . . . . . . . . . . . . . . . . . LINDEX Parameter . . . . . . . . Printing without Flashing . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . JES2 Processing with JESDS . . . . . . Example of the FLASH Parameter . . . . . . . . . . . Subparameter Definition . . . . . . . 22-41 22-41 22-41 22-42 22-42 22-42 22-42 22-42 22-43 22-43 22-43 22-43 22-43 22-44 22-44 22-44 22-44 22-44 22-44 22-44 22-45 22-45 22-46 22-46 22-46 22-46 22-46 22-47 22-47 22-47 22-47 22-47 22-48 22-48 22-49 22-49 22-49 22-49 22-49 22-49 22-49 22-49 22-49 22-50 22-50 22-50 22-51 22-51 22-51 22-51 22-51 22-51 22-52 22-52 22-52 22-52 Contents xxiii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example of the INDEX Parameter. . . . . . FORMDEF Parameter . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . Subparameter Definition . . . . . . . . Syntax . . . . . . Syntax . . . Relationship to Other Parameters . . . . . . . . . . . . . . . Overrides. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Relationship to Other Keywords on This Statement Example of the INTRAY Parameter . . . . . . . . . . . . . . . . . . . . . . . . . Location in the JCL . . . . . . . . . . . . . . . . . . . . . . . . . INTRAY Parameter . . . . . . . Syntax . . . . Examples of the FSSDATA Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overrides. . . . . . . . . . . . . . . . . . . FSSDATA Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Defaults . . . . . . . . . . . . . . . . . . Examples of the GROUPID Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . JESDS Parameter . . . . . . . . . . . . Syntax . Examples of the FORMLEN Parameter . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . FORMS Parameter . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . Destination for the System Data Sets . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example of the FORMDEF Parameter . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example of the FORMS Parameter . . . . . . . . . . . . . . . . . . . . . . . . Relationship to Other Control Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Relationship to Other Keywords on this Statement Relationship to Other System Functions . . . . . . .

. . . . . . OVERLAYF Parameter . . . . . . . . Relationship to Other Keywords on This Statement Example of the OFFSETXB Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OFFSETYB Parameter . . . . . . . . . . . . Syntax . . . . . . . . . . Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OFFSETYF Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example of the LINDEX Parameter . 22-52 22-52 22-52 22-53 22-53 22-53 22-53 22-53 22-54 22-54 22-54 22-54 22-54 22-54 22-55 22-55 22-55 22-55 22-56 22-56 22-56 22-56 22-57 22-57 22-57 22-57 22-57 22-57 22-58 22-58 22-58 22-58 22-58 22-59 22-59 22-59 22-59 22-59 22-59 22-59 22-59 22-60 22-60 22-61 22-61 22-61 22-61 22-62 22-62 22-62 22-62 22-62 22-62 22-63 22-63 22-63 xxiv z/OS V1R3. . . . . . . . . . . . . . . . . . . . OFFSETXF Parameter . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . Defaults . . . . . . . . . . . . Syntax . . Defaults . . . . . . . . . . . . . . . . . . Subparameter Definitions . . . . . . . . . . . . . . . . . . . . . . . OVERLAYB Parameter. . . . . . . . . . . . . . . . . . . . . . . . . . OFFSETXB Parameter . . . . . . . . . . . . . . Syntax . . . . . . NOTIFY Parameter . . . Relationship to Other System Functions . . . Defaults . . Overrides. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Relationship to Other Keywords on This Statement Example of the OVERLAYB Parameter . . . . . . . . Overrides. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example of the MODIFY Parameter . . . . . Syntax . . . . . . . . . . . . . . . . . . Example of the OUTBIN Parameter . . . . . . . . . .0 MVS JCL Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . Syntax . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . Examples of the OUTDISP parameter . . . . . . . . . . . .Relationship to Other Parameters . . . . . . . . . . Examples of the NOTIFY Parameter . . . . . . . . . . . . Relationship to Other Control Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NAME Parameter . . . . . . . . . . . Relationship to Other Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definitions . . . Example of the LINECT Parameter . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . MODIFY Parameter . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OUTDISP Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Defaults . Subparameter Definition . . . . . Overrides. . . . OVFL Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LINECT Parameter . . . . . . . . OUTBIN Parameter . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example of the NAME Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . Overrides. . . . . . . . .

. Subparameter Definition . . . . . . . . . . . . Relationship to Other System Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example of the PRMODE Parameter . . . . . . . . . . . . . . . . RESFMT Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example of the PRTOPTNS Parameter. . . . . . . . 22-63 22-63 22-63 22-64 22-64 22-64 22-64 22-65 22-65 22-65 22-66 22-66 22-66 22-66 22-67 22-67 22-67 22-67 22-67 22-67 22-67 22-68 22-68 22-68 22-68 22-68 22-69 22-69 22-69 22-69 22-70 22-70 22-70 22-70 22-70 22-70 22-70 22-71 22-71 22-71 22-71 22-71 22-71 22-71 22-71 22-72 22-72 22-72 22-72 22-72 22-73 22-73 22-73 22-73 22-73 22-74 Contents xxv . . . . . . . Examples of the PRTERROR Parameter . . . . . . Syntax . Subparameter Definition . . . . . Example of the PORTNO Parameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example of the RESFMT Parameter . . . . . PRMODE Parameter . . . . . . . . . Syntax . . . . . . . . . . . . . . . PIMSG Parameter . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PAGEDEF Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . Overrides. . . . . . . . . . . . . . . . . . Syntax . . . . . . . RETRYL and RETRYT Parameters . . . . . . . . . Subparameter Definition . RETAINS and RETAINF Parameters . . . . . . . . . . . . . . . . . Printing a Line-Mode Data Set Using PSF. . Syntax . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . Example of the PAGEDEF Parameter . . . . . . . . . . . . . . . . Relationship to Other Control Statements . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PORTNO Parameter . . . . . . . Subparameter Definition . . . . . . Relationship to Other Control Statements . . . . . . . . . . Relationship to Other System Functions . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . PRTQUEUE Parameter . Example of the PRTQUEUE Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Defaults . . . . . . . . . .Defaults . . . . . . . Relationship to Other System Functions . . . . . . . . . . . . . . . . Defaults . . . . . . . . . . . . . . . . Example of the OVFL Parameter . . . . . . . . . . . . Syntax . . . . . . . . . . Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PRTOPTNS Parameter. . . . . PRTERROR Parameter . . . . . . . . . Relationship to Other System Functions . . . . . . . . . Relationship to Other Control Statements . . . . . . . . . . . . . . . . . . . . . . . . . . Example of the PRTY Parameter . Subparameter Definition . . . . . . . . . . . . . . . . . . . Overrides. . . . . . . . . . . . . . . . . . . . . . . . . . . Examples of the RETAIN Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . Syntax . . . . . . . . . . . . . . . . . . . . PRTY Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Examples of the PIMSG Parameter . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . Example of the SYSAREA Parameter . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . Syntax . . . . WRITER Parameter . . . . . . . . . . . . . . . . . . . . . . . Relationship to Other Control Statements . . . . . . . Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . Overrides. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . TITLE Parameter . . . Examples of the USERDATA Parameter . . . . . . . Syntax . . . . . . . Syntax . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Relationship to Other System Functions . . . . USERLIB Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . Syntax . . . . . USERDATA Parameter . . . . ROOM Parameter . . . Example of the THRESHLD Parameter . . . . . . . . . . . . . . . Overrides. . . . . . . . . . . . . . . . . . . . . . . . . . . Examples of the RETRY Keywords . . . . . . . . . . . . . . . . . . . . . . Requirements for USERLIB Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . Defaults . . . . . . . . . TRC Parameter . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example of the ROOM Parameter . . . . . . . . . . SYSAREA Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Relationship to Other Parameters . . . . . . . . . . . . . . . . . . . .0 MVS JCL Reference . . . . . . Using Special Characters Sets . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Relationship to Other Parameters . Overrides. . . . . . . . . . . . . . . Relationship to Other System Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . Relationship to Other Keywords on this Statement Relationship to Other Control Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . UCS Parameter . . Subparameter Definition . . . . . . . . . Defaults . Example of the UCS Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example of the TRC Parameter . . . . . . . . . . . . . . . . . . . . . . . . . Example of the TITLE Parameter . . . . . . . . . . . . . . Subparameter Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-74 22-74 22-74 22-74 22-75 22-75 22-75 22-75 22-76 22-76 22-76 22-76 22-77 22-77 22-77 22-77 22-77 22-77 22-78 22-78 22-78 22-78 22-79 22-79 22-79 22-79 22-80 22-80 22-80 22-80 22-80 22-80 22-81 22-81 22-81 22-81 22-82 22-83 22-83 22-83 22-83 22-84 22-84 22-84 22-84 22-84 22-85 22-85 22-87 22-87 22-87 22-88 22-88 22-88 22-88 22-88 xxvi z/OS V1R3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Defaults . . . .Syntax . Examples of the USERLIB Parameter . . Defaults . . . . . . . . Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overrides. . THRESHLD Parameter. . .

. . . . . Operation Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operation Field . Error on XMIT JCL Statement. . . . . . . . . . . . Examples of the WRITER Parameter Chapter 23. . . . . . Operation Field . . . . . . SET Statement . . . . . . . Name Field . . . . . . . Location in the JCL . . . . . . . . . . . . . Subparameter Definition . . . . Comments Field. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PROC Statement . . . . . DLM Parameter . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . Starting an External Writer . . . . . . . . . . . . . . . . . . . . . . . . . . Operation Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapter 26. . . . . . . . . . . . . . . . . . . . . . . . . Parameter Field . . . . . . . . . . . . . Location in the JCL . . . . . . . . . . . . . . . . . . . . . . . . 22-89 22-89 22-89 22-89 22-89 22-89 22-89 . . . . . . . . . Syntax . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . DEST Parameter . . . . . . . . . . . . . . . Overrides. . . . . . . . . Comments Field. . . . . . . . . . . . . . . . . . . . . Name Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description . . . . . . . . . . . . . . . . . . . . PEND Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Contents xxvii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Subparameter Definition . . . . . . . . . . . . . . . . . . Name Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Location in the JCL . . . Location in the JCL . . . . . . . . . . . . . . . . . Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Examples of the XMIT JCL Statement. Description . . . . . . . . . . . . . . . . . . . . . . . . . Overrides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description . . . Overrides . . . . . . . 23-1 23-1 23-1 23-1 23-1 23-1 23-1 23-1 24-1 24-1 24-1 24-1 24-2 24-2 24-2 24-2 24-2 24-2 25-1 25-1 25-1 25-2 25-2 25-2 25-2 25-3 25-3 25-3 25-3 25-3 26-1 26-2 26-2 26-2 26-2 26-2 26-2 26-2 26-3 26-3 26-4 26-4 26-4 26-4 26-5 Chapter 25. . . . . . . . Comments Field. . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . Description . . . . . . . .Syntax . . . . . . . . . . . . . . . . . . . . . . . Parameter Field . . . . . . . . . . . Relationship to Other Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . Examples of the DEST Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Examples of the PROC Statement . . . . . . . . . . . . . . . Name Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parameter Field . . . . . . . . . . . . . . . . . . Relationship to Other Control Statements . . . . . . . . . . . . . . Considerations for Using the SET Statement Examples of the SET Statement . . . . . . Examples of the PEND Statement Chapter 24. . . . . . . XMIT JCL Statement . . . . . . . . . . . . . . . Comments Field. . .

. 27-21 xxviii z/OS V1R3. . . Overrides . . . . . . . . . . . . 27-1 . . . . . . . . . . . . . . . . . . . . . 27-8 . . . . Overrides . . . . . . . . . . . . . . 27-13 . . . . . . . . . . . . . . . Syntax . . . . . . . . . . Location in the JCL . . . . . . . . . . . . . . . . . 27-10 . . . . . 27-20 . . . . . . . . . . . . . . . . . . . . . . . . . 27-20 . . . . Location in the JCL . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parameter Definition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Execution Node . . . . . . . . . . . . . . . Invalid Substitute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-5 . . . . . . . . . . . . . . . . . 27-9 . . . . /*MESSAGE Statement . . . . . . . . . Relationship to the /*ROUTE XEQ Statement . 27-1 . . . . . . . . . . . 27-1 . . . . . . . . . . . . . /*NOTIFY Statement. . . . . . . . . . . . . . . . . . 27-10 . . . 27-11 . Syntax . . 27-9 . . . . . . . . . . . . . 27-11 . . Considerations for Started Tasks . 26-5 26-5 26-5 26-5 26-6 26-6 26-6 26-7 26-7 26-7 26-7 Chapter 27. . . . . . . . 27-20 . . . . . . . . . . . . . . . . . . . . . . Default . . Subparameter Definition . . . . . Syntax . . . . . . . 27-10 . . . 27-10 . /*JOBPARM Statement . . . . . . . . . . Location in the JCL . . . . Example of the /*OUTPUT Statement . . . . Example of the /*MESSAGE Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-11 . . . . . . Parameter Definition . . . 27-3 . . . . . . . . . . . . . . Examples of the DLM Parameter . . . 27-4 . . . 27-9 . 27-9 . . . . . . . . . . . . . . . . . Location in the JCL . . . . . . . . . . . . . . . . .Syntax . . . . . . Examples of the /*JOBPARM Statement . . . . . . . . . Subparameter Definition . . Internal Reader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-10 . . . . . . . . . . . . Syntax . . . . . . . . . Parameter Definition. . . . . . . . . . . . . . . Location in the JCL . . . . Considerations for an APPC Scheduling Environment . . . . 27-8 . . . . . . . . . . 27-8 . . 27-2 . . . . . . . . . . . Invalid Delimiters . . . . . . . Relationship to Other Control Statements . . . . . . . . . . . Parameter Definition . . . . . . Syntax . . . . . . . . . . .0 MVS JCL Reference . . 27-1 . . . . . . . . . . . Default . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-11 . . . . . 27-2 . . . . Defaults . . . . . . . . . . . . . . . Parameter Definition . . . . . . . 27-12 . . Examples of the SUBCHARS Parameter. . . Location in the JCL . . . . . . . . . . . . . . . . . . . 27-3 . . . . . . . . . SUBCHARS Parameter . . 27-9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-10 . . . . . . . . . . . . . . . . . . . . . . . 27-14 . . . . . . . . . . 27-1 . . . 27-1 . . . . . . . 27-2 . . Examples of the NOTIFY Statement . . . . . 27-20 . . Examples of the Command Statement . . . . . . . . . . . . . . . . . . . . 27-8 . . . . . Overrides. . . . . . . . . . . . . . . . . . . Example of the /*NETACCT Statement . . . . . . . . . . . . . . . JES2 Command Statement . . . . . . . . . . . . . Location in the JCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overrides. . . . . . . . . . . . . . . . . . . . . . /*OUTPUT Statement . . . . . . . . . 27-12 . . . . . . /*PRIORITY Statement . . 27-9 . . . . . . . . . . . . . . . . Description . . . JES2 Control Statements . . . . . . . . . . . . 27-1 . . . . . . . . . . . . . . . . . . . . . /*NETACCT Statement . . . . . 27-10 . . . . . . . . . .

. . Considerations for an APPC Scheduling Environment Considerations for Started Tasks . . . . . . . . . Example of the /*SIGNOFF Statement . . . . . . Parameter Definition. . . Parameter Definition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . /*XMIT Statement. . . . . . . . . . . Examples of the /*SIGNON Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parameter Definition. . . . . . . Internal Reader . . . . . . . . . . . . . . Example of the /*SETUP Statement . . . . . . . . . . . . . . . . . . Parameter Definition. . . . . . . 27-21 27-21 27-21 27-21 27-21 27-22 27-22 27-22 27-22 27-24 27-24 27-24 27-24 27-25 27-25 27-25 27-25 27-26 27-26 27-26 27-26 27-26 27-27 27-27 27-27 27-28 27-28 27-29 27-29 27-29 27-30 27-30 27-30 27-30 27-31 27-31 27-32 27-32 27-32 . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Location in the JCL . . . . . . . JES3 Control Statements . . . . . . . . . . . . . . . . . . . . . . . Location in the JCL . . . . . . . . Examples of the Command Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Examples of the ROUTE Statement . . . . . . . . /*SETUP Statement . . . /*ROUTE Statement . . . . . . . . Overrides. . . . . . Example of the XEQ Statement . . . . . . . . . . . . . . . Description . . . . . . . . Multiple /*XEQ Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Multiple /*ROUTE Statements . . Location in the JCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Relationship to Other Control Statements Location in the JCL . . . . . . . . . . . . . . . . . . . . . . . . . . . //*DATASET Statement . . . . . . . . . . . . . . . . . . . Location in the JCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-1 28-1 28-1 28-1 28-1 28-1 28-1 28-2 28-2 28-3 28-3 28-3 28-4 28-4 28-4 28-5 Chapter 28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . /*SIGNON Statement . . . . . . . . . . . Location in the JCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parameter Definition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Location in the JCL . . . . . . . . Syntax . . . . . . . . Syntax . . . . . . . . . . . Examples of JES3 Control Statements . . . . . . . . . . . Syntax . . Parameter Definition . Processing of /*ROUTE Statements . . . . . . . . Example of the PRIORITY Statement . . . . . . . . . . Parameter Definition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . /*SIGNOFF Statement . . . . . Location in the JCL . . . . . . . . . . . . . . . . . . . . . . . . . . Location in the JCL . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Syntax . . . . . . . . . . . . Examples of the XMIT Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . Location in the JCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Contents xxix . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . /*XEQ Statement . . . . . . . Parameter Definition . JES3 Command Statement . . . . . . . . . . . . . . . . . . .

. . . . 28-43 . . 28-38 . . . . . . . . . . . . . . . . //*ENDPROCESS Statement . . . . . . .Example of the //*DATASET Statement . . . . . . . . . . 28-18 . . . . . . . . Parameter Definition. . Example of the //*ENDPROCESS Statement . . . . . . . . . . . . . Examples of the //*MAIN Statement . . . . . 28-21 . . . . . . . . 28-6 . . . . . . Defaults . . . . Example of the //**PAUSE Statement . . . . . . . . . . 28-6 . . 28-6 . Relationship to Sysout DD and OUTPUT JCL Statements . . . . . . . Location in the JCL . . . . . . . . . . . . . . . . . . 28-24 . . . . . . . . . . Examples of the //*FORMAT PR Statement . . 28-43 . . . . . . . 28-43 . Relationship to //*PROCESS Statement . . . . . . . Relationship to Sysout DD and OUTPUT JCL Statements . . . . . . . . . . . . . . . 28-44 . . . 28-37 . . . . Syntax . . . . . 28-44 . . . . . . . . . . 28-16 . . . . . . . . . 28-42 . . . . . . . . . . . Location in the JCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-16 . . . . . . . . . . . . . . . . . . . . . . . . 28-43 . . . . . . 28-21 . . . . . . . 28-23 . . . . . . . . . . . . Parameter Definition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-22 . . . . . . . . . . Syntax . . . . . . 28-44 . . . . . . . . . . . . . Syntax . . . . 28-42 . . . . . . . . . . . . . . . . . . . 28-42 . . . . . . . . . . . . . . . . . . . . . . 28-38 . 28-22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parameter Definition. . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-18 . . . . Location in the JCL . . . . . . 28-17 . . . . . . . . 28-5 . 28-47 . . . . . Example of the //*NETACCT Statement. . . . . . Location in the JCL . . . . . . . . . //*FORMAT PU Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parameter Definition. . . . . . . . . 28-6 . . . . . . . . . . Syntax . //*PROCESS Statement . . . . . . . . . . . . . //*ROUTE XEQ Statement . . . . . . . . . . . . 28-45 . . 28-21 . . . . . . . . . . . . 28-43 . . .0 MVS JCL Reference . . . Syntax . . 28-6 . . Syntax . . . . . . . . . . . . . . . 28-7 . . . . . . . . . . . . . . . //*FORMAT PR Statement . . . . . . . . . . . . . . 28-6 . . 28-36 . . . . Syntax . . //*MAIN Statement . . . . 28-8 . . . . . . . . . . . . . . . . . . . . . . 28-44 . . . . . . Location in the JCL . . . . . . //*OPERATOR Statement . . . . . . . . . . 28-16 . . . . . 28-7 . . Syntax . . . . . . . . . . . . Location in the JCL . . . . 28-45 . . . . 28-41 . . . . . . . . . . . . . . . . Examples of the //*PROCESS Statement . . . . . . . . . . . . . . 28-43 . . Syntax . . . //*NETACCT Statement . . . . . . . . . . . . . . . 28-47 . . . Example of the //*OPERATOR Statement . . . . . . . . . //*NET Statement . . . Parameter Definition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Location in the JCL . . . . . . . . . . . . Location in the JCL . . 28-48 xxx z/OS V1R3. . . . . . . . . . . . . . . . . . . . 28-46 . . . 28-43 . . . . . . . . . . . . . . Location in the JCL . . . . . . . //*ENDDATASET Statement . . . . . . 28-6 . . . . Parameter Definition . . Examples of the //*FORMAT PU Statement . . . . . . . . 28-42 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Location in the JCL . . //**PAUSE Statement . Syntax . . . . . . . . . . . . . . . 28-16 . . . . . 28-46 . . . 28-48 . . . . . . . . . . 28-43 . . Relationship to //*PROCESS Statement . . . . . . . . . . . . . . . . . . . Location in the JCL . 28-36 . . . . . . . Example of the //*ENDDATASET Statement . 28-9 . . . Parameter Definition. Examples of the //*NET Statement . . . . . . .

. . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . /*SIGNON Statement . . . A-1 Using assistive technologies . . B-1 Trademarks . . . . . . . . . . . . . . . . . Example of the //*ROUTE XEQ Statement /*SIGNOFF Statement . . . . . . . . . . . .JOB Statement after //*ROUTE XEQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parameter Definition. . . . Location in the JCL . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . B-2 Index . . . . . . . . . . . . . . . X-1 Contents xxxi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-48 28-48 28-49 28-49 28-49 28-49 28-50 28-50 28-50 28-51 28-51 Appendix. A-1 Keyboard navigation of the user interface . . . . . . . . . . . . . Accessibility . . . . . . . . . . . . . . . . . . Example of the /*SIGNOFF Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example of the /*SIGNON Statement . . . . . . . . . . . . . . . . . . . . . . . . . A-1 Notices . . Location in the JCL . . . . . . .

0 MVS JCL Reference .xxxii z/OS V1R3.

. . . . . Operators on IF/THEN/ELSE/ENDIF Statement Construct . . 17-3 © Copyright IBM Corp.Figures 17-1. . . 1988. . . . . . 2002 xxxiii .

0 MVS JCL Reference .xxxiv z/OS V1R3.

The following tables list the short titles. Those using this book should understand the concepts of job management and data management. SA22-7598. to be used while coding the statements. control the system’s processing of jobs. z/OS MVS JCL User’s Guide. programmers code ″job control statements. For complete titles and order numbers of the books for all products that are part of z/OS. SA22-7598 Where necessary. see z/OS Information Roadmap. The book also contains a chapter that describes ″started tasks″ and how to set them up. and order numbers for books related to non-OS/390 products that this book references. this book references information in other books. Programs Short Title Used in This Book Title Order Number ACF/TCAM Installation Reference PSF/MVS System Programming Guide PSF/MVS Application Programming Guide Advanced Communications Function for TCAM. titles. SC30-3133 Version 2 Installation Reference PSF/MVS System Programming Guide PSF/MVS Application Programming Guide SH35-0091 S544-3084 Hardware Short Title Used in This Book Title Order Number GA24-3312 GC24-5111 GC26-3846 2821 Component Description 3540 Programmer’s Reference 3800 Programmer’s Guide IBM 2821 Control Unit Component Description OS/VS2 IBM 3540 Programmer’s Reference IBM 3800 Printing Subsystem Programmer’s Guide © Copyright IBM Corp. using shortened versions of the book title. To perform job control or started tasks. which include: v Job control language (JCL) statements v Job entry control language (JECL) statements. 1988. and request the resources needed to run jobs. Who Should Use This Book This book is needed by system and application programmers who enter programs into the operating system. Related Information To have complete JCL information. you need the following book: z/OS MVS JCL User’s Guide.″ This book describes how to code these statements. 2002 xxxv . Full explanations of the job control tasks are presented in a companion book.About This Book This book describes the job control tasks needed to enter jobs into the OS/390 operating system. It contains some introductory material. which encompass: Job entry subsystem 2 (JES2) control statements Job entry subsystem 3 (JES3) control statements This book is designed as a reference book.

2. Click on z/OS.html xxxvi z/OS V1R3. and a key code.ibm. 5. and some codes. Access the licensed book by selecting the appropriate element. 6. Supply your key code where requested and click on the Submit button. Click on Library. 5. If you supplied the correct key code you will receive confirmation that your request is being processed. 4.ibm.com/servers/eserver/zseries/zos/bkserv/lookat/lookat. Click on Software. Access to these books requires an IBM Resource Link Web userid and password. 4. You can access LookAt from the Internet at: http://www. To 1. 3. system abends.com/servers/resourcelink Licensed books are available only to customers with a z/OS license.ibm. Using LookAt to find information is faster than a conventional search because in most cases LookAt goes directly to the message explanation. Log on to Resource Link using your Resource Link userid and password. 2.0 MVS JCL Reference . Using LookAt to look up message explanations LookAt is an online facility that allows you to look up explanations for z/OS messages.com/servers/resourcelink To register for access to the z/OS licensed books: 1. Click on zSeries. To obtain your IBM Resource Link Web userid and password log on to: http://www. Click on Request Access to Licensed books. Click on User Profiles located on the left-hand navigation bar. After your request is processed you will receive an e-mail confirmation. Note: You cannot access the z/OS licensed books unless you have registered for access to them and received an e-mail confirmation informing you that your request has been processed. Click on Access Profile. access the licensed books: Log on to Resource Link using your Resource Link userid and password.Short Title Used in This Book Title Order Number GA26-1633 Forms Design Reference Guide for the 3800 Forms Design Reference Guide for the IBM 3800 Printing Subsystem Accessing licensed books on the Web z/OS licensed documentation in PDF format is available on the Internet at the IBM Resource Link Web site at: http://www. With your z/OS order you received a memo that includes this key code. 3.

Find the lookat. TSO prompt. ISPF. 3. To use LookAt as a TSO command. To find a message explanation on the Internet. You can obtain the LookAt code for TSO from a disk on your z/OS Collection. Note: Some messages have information in more than one book. You can select a specific release to narrow your search. Then select the appropriate release. SK3T-4269 or from the LookAt Web site. simply enter: lookat message-id. IEC192I has routing and descriptor codes listed in z/OS MVS Routing and Descriptor Codes. Scroll to Download LookAt Code for TSO and VM.me file and follow its detailed instructions. You can also download code from the z/OS Collection. SK3T-4269 and the LookAt Web site so you can access LookAt from a PalmPilot (Palm VIIx suggested). About This Book xxxvii .ibm. go to the LookAt Web site and simply enter the message identifier (for example. For such messages.com/servers/eserver/zseries/zos/bkserv/lookat/lookat. which will take you to a list of operating systems.or from anywhere in z/OS where you can access a TSO command line (for example. LookAt will display the message explanation for the message requested. Go to http://www. 4.html. IAT1836 or IAT*). To obtain the code from the LookAt Web site. 5. you must have LookAt installed on your host system. For example. Click the News button. Select the appropriate operating system. To find a message explanation from a TSO command line. do the following: 1. 2. Click the ftp link. z/OS UNIX System Services running OMVS). LookAt prompts you to choose which book to open.

xxxviii z/OS V1R3.0 MVS JCL Reference .

and procedures that have a different look and format. headings that use uppercase for the first letter of initial words only. and editorial changes. New information v An appendix with z/OS product accessibility information has been added. New information v MEMLIMIT is a new keyword on JOB and EXEC statements. and editorial changes. The changes are ongoing improvements to the consistency and retrievability of information in our books. which supports z/OS Version 1 Release 2. you may notice changes in the style and structure of some content in this book—for example. © Copyright IBM Corp. which supports z/OS Version 1 Release 1. maintenance. SA22-7597-01. maintenance. Technical changes or additions to the text and illustrations are indicated by a vertical line to the left of the change. Summary of changes for SA22-7597-01 z/OS Version 1 Release 2 The book contains information previously presented in z/OS MVS JCL Reference. Summary of changes for SA22-7597-00 z/OS Version 1 Release 1 The book contains information also presented in OS/390 MVS JCL Reference. MEMLIMIT specifies the limit on the total number of usable virtual pages above the bar for a single address space. Starting with z/OS V1R2.Summary of changes Summary of changes for SA22-7597-02 z/OS Version 1 Release 3 The book contains information previously presented in z/OS MVS JCL Reference. 2002 xxxix . SA22-7597-00. including changes to improve consistency and retrievability. This book contains terminology. 1988. This book contains terminology.

0 MVS JCL Reference .xl z/OS V1R3.

// INCLUDE include Identifies a member of a partitioned data set (PDS) or partitioned data set extended (PDSE) that contains JCL statements to include in the job stream. Job Control Statements This chapter lists. identifies the program or the cataloged or in-stream procedure to be executed in this step. Note: A user can designate any two characters to be the delimiter. Specifies an MVS or JES command that the system issues when the JCL is converted. MVS Job Control Language (JCL) Statements Statement // command Name JCL command Purpose Enters an MVS system operator command through the input stream. Later chapters describe each statement in detail. Identifies and describes a data set. all but one of the statements in the MVS Job Control Language (JCL). Marks the beginning of a job step.) JCL Statements Table 1-1. is documented in the manual PSF for OS/390 & z/OS: Customization. Indicates the end of data placed in the input stream. assigns a name to the step.Chapter 1. // JCLLIB JCL library © Copyright IBM Corp. 2002 1-1 . in Table 1-1. The command statement is used primarily by the operator. 1988. Marks the beginning of one or more program control statements. Use the COMMAND statement instead of the JCL command statement. The comment statement is used primarily to document a program and its resource requirements. and in Table 1-2 on page 1-2. (The PRINTDEV JCL statement. all of the Job Entry Control Language (JECL) statements for the JES2 and JES3 subsystems. // ENDCNTL // EXEC end control execute Marks the end of one or more program control statements. // COMMAND command //* comment comment // CNTL // DD /* control data definition delimiter // IF/THEN/ELSE/ENDIF IF/THEN/ELSE/ENDIF Specifies conditional execution of job statement construct steps within a job. together with the purpose of each statement. Identifies the libraries that the system will search for: v INCLUDE groups v Procedures named in EXEC statements. Use the COMMAND statement instead of the JCL command statement. for use by the person starting the Print Services Facility. Contains comments.

// PEND // PROC procedure end procedure // SET set // XMIT transmit JECL Statements Table 1-2. Indicates a job or data stream to be transmitted to another JES2 node or eligible non-JES2 node. Ends a remote job stream processing session. Marks the end of a job. except *DUMP and *RETURN. Transmits input stream records from one node to another.0 MVS JCL Reference . Defines and assigns initial values to symbolic parameters used when processing JCL statements. Requests mounting of volumes needed for the job. Changes or nullifies the values assigned to symbolic parameters. assigns a name to the job. Marks the end of an in-stream or cataloged procedure. Marks the beginning of an in-stream procedure and may mark the beginning of a cataloged procedure. Specifies certain job-related parameters at input time.Statements Table 1-1. assigns default values to parameters defined in the procedure. Specifies the destination of notification messages. Note: The XMIT JCL statement is supported only on JES3 systems. Specifies processing options for sysout data set(s). Job Entry Control Language (JECL) Statements Statement Purpose Job Entry Subsystem 2 (JES2) Control Statements /*$command /*JOBPARM /*MESSAGE /*NETACCT /*NOTIFY /*OUTPUT /*PRIORITY /*ROUTE /*SETUP /*SIGNOFF /*SIGNON /*XEQ /*XMIT Enters JES2 operator commands through the input stream. Specifies an account number for a network job. Sends messages to the operator via the operator console. Job Entry Subsystem 3 (JES3) Control Statements //**command Enters JES3 operator commands. Specifies the output destination or the execution node for the job. through the input stream. Assigns a job queue selection priority. Specifies the execution node for a job. Begins a remote job stream processing session. 1-2 z/OS V1R3. Specifies the processing options that the job entry subsystem is to use for printing a sysout data set. MVS Job Control Language (JCL) Statements (continued) Statement // JOB // // OUTPUT Name job null output JCL Purpose Marks the beginning of a job.

Specifies the execution node for the job. Job Control Statements 1-3 . Ends the input data set that began with a //*dataset statement. Specifies an account number for a network job. Sends messages to the operator. Ends a series of //*PROCESS statements. Specifies the processing options for a sysout or JES3-managed print or punch data set. Defines selected processing parameters for a job. Identifies relationships between predecessor and successor jobs in a dependent job control net. Job Entry Control Language (JECL) Statements (continued) Statement //*DATASET //*ENDDATASET //*ENDPROCESS //*FORMAT //*MAIN //*NET //*NETACCT //*OPERATOR //*PAUSE //*PROCESS //*ROUTE /*SIGNOFF /*SIGNON Purpose Begins an input data set in the input stream. Halts the input reader.Statements Table 1-2. Begins a remote job stream processing session. Ends a remote job stream processing session. Chapter 1. Identifies a nonstandard job.

0 MVS JCL Reference .Statements 1-4 z/OS V1R3.

SYS1. a procedure in an input stream is called an in-stream procedure. The maximum number of in-stream procedures you can code in any job is 15. Jobs A job is a collection of related job steps. For the operating system to process a program. The operating system reads an input stream into the computer from an input/output (I/O) device or an internal reader. programmers must perform certain job control tasks. link-edit. 2002 2-1 . for example.Chapter 2. is called a cataloged procedure. a magnetic tape device. A job step consists of the job control statements that request and control execution of a program and request the resources needed to run the program. These tasks are performed through the job control statements. you can prepare sets of job control statements and place. © Copyright IBM Corp. Cataloged and In-Stream Procedures You often use the same set of job control statements repeatedly with little or no change. assemble. Job Control Tasks For your program to execute on the computer and perform the work you designed it to do. To test a procedure before placing it in the catalog. Such a set of job control statements in the system procedure library. The operating system distinguishes job control statements from data by the contents of the records. Your operating system consists of an MVS/SP base control program (BCP) with a job entry subsystem (JES2 or JES3) and DFSMS/MVS DFSMSdfp installed with it. 1988. or catalog. An internal reader is a buffer that is read from a program into the system as though it were an input stream.PROCLIB (or an installation-defined procedure library). The job step can also contain data needed by the program. or a direct access device. The input device can be a card reader. A job is identified by a JOB statement. Input Streams Jobs placed in a series and entered through one input device form an input stream. The data set attributes of a procedure library should match SYS1. to compile.PROCLIB (record length of 80 and record format of FB). A job step is identified by an EXEC statement. place it in an input stream and execute it. which consist of: JCL statements JES2 control statements JES3 control statements Entering Jobs Job Steps You enter a program into the operating system as a job step. them in a partitioned data set (PDS) or partitioned data set extended (PDSE) known as a procedure library. To save time and prevent errors. your program must be processed by your operating system. a terminal. and execute a program.

v Execution: The program or procedure to be executed must be named in a PGM or PROC parameter on an EXEC statement. punches it. Sysout Data Set Resources A sysout data set is a system-handled output data set. In many cases. Specification of a greater number of steps produces a JCL error. the job entry subsystem selects jobs for execution. The system is designed to enable users to perform many types of job control in many ways. This data set is placed temporarily on direct access storage. which are described in the z/OS MVS JCL User’s Guide. Because sysout data sets are processed by the system. Later. in four groups: v Entering jobs in Table 2-1 on page 2-3 v Processing jobs in Table 2-2 on page 2-5 v Requesting data set resources in Table 2-3 on page 2-6 v Requesting sysout data set resources in Table 2-4 on page 2-8 For each task. Requesting Resources Data Set Resources To execute a program. You can influence the way your job is processed by the JCL and JES2 or JES3 parameters you code. you must request the data sets needed to supply data to the program and to receive output records from the program. it can consist of one step or of many steps that call many in-stream and cataloged procedures. A job can consist of up to 255 job steps. To allow this flexibility. the system prints it. Therefore. Task Charts The following charts list the job control tasks. only two job entry tasks are required: v Identification: The job must be identified in the jobname field of a JOB statement. including all steps in any procedures that the job calls. at the convenience of the system.Tasks Steps in a Job A job can be simple or complex. For example. the same task can be performed using different parameters on different statements. Processing Jobs The operating system performs many job control tasks automatically. but you can speed up or delay selection of your job by the parameters you code. the charts list the parameters and statements that can be used to perform it. Where a parameter can appear on both a JOB and EXEC statement. the following statements are the minimum needed to perform a job control task: 2-2 z/OS V1R3. or sends it to a specified location. the programmer can specify many parameters to control that processing. it applies to the entire job when coded on the JOB statement but only to a step when coded on an EXEC statement.0 MVS JCL Reference .

DEPT. UPDATE. Tasks for Entering Jobs TASKS FOR ENTERING JOBS Identification of job of step of procedure of INCLUDE group of account accounting information or pano in JOB JES2 accounting information programmer’s name and room in JOB JES2 accounting information USER ACCT jobname field stepname field PROC PEND INCLUDE /*NETACCT //*NETACCT null statement (JES3 only) STATEMENTS AND PARAMETERS JCL Statements JOB EXEC Other JCL JES2 Statements JES3 Statements of programmer ROOM on /*JOBPARM PNAME. or CLASS on //*MAIN //*NET //*PAUSE TYPRUN CLASS /*SIGNON /*SIGNOFF /*SIGNON /*SIGNOFF 2-3 . ROOM. BLDG.Tasks //jobname JOB // EXEC {PGM=program-name } {PROC=procedure-name} {procedure-name} Table 2-1. Job Control Tasks PGM PROC RESTART RD RD SYSCHK DD RESTART on /*JOBPARM FAILURE and JOURNAL on //*MAIN DEADLINE on //*MAIN //*NET XMIT JCL (JES3 only) /*ROUTE XEQ /*XEQ /*XMIT //*ROUTE XEQ TYPRUN CLASS HOLD. and USERID on //*NETACCT Execution of program of procedure when restarting and with checkpointing deadline or periodic when dependent on other jobs at remote node Job Input Control by holding job entrance by holding local input reader by copying input stream (JES2 only) from remote work station Communication Chapter 2.

CARDS. DD defining PDS or PDSE member JCLLIB PROCLIB on /*JOBPARM PROCLIB on /*JOBPARM PROC and UPDATE on //*MAIN PROC and UPDATE on //*MAIN of procedure library of INCLUDE group JCLLIB 2-4 z/OS V1R3. CARDS. also comment field on all statements but null STATEMENTS AND PARAMETERS JCL Statements JOB EXEC Other JCL COMMAND Command JES2 Statements /*$command /*MESSAGE JES3 Statements //**command //*OPERATOR Comment field on //*ENDPROCESS and //*PAUSE from JCL to program from system to operator WARNING on BYTES. LINES. and PAGES PARM FETCH on //*MAIN WARNING on BYTES. Tasks for Entering Jobs (continued) TASKS FOR ENTERING JOBS from JCL to system from JCL to operator from JCL to programmer Comment field unless no parameter field Comment field //*comment. LINES. and PAGES on //*MAIN /*NOTIFY NOTIFY on OUTPUT JCL statement ACMAIN on //*MAIN with JOB NOTIFY USER on //*MAIN PIMSG on OUTPUT JCL MSGCLASS MSGLEVEL log in JOB JES2 accounting information JESDS on OUTPUT NOLOG on JCL /*JOBPARM from system to userid -of job completion -of print completion from TSO/E userid to system from functional subsystem to programmer through job log NOTIFY Protection through RACF GROUP PASSWORD SECLABEL USER Resource Control of program library JOBLIB DD.0 MVS JCL Reference .Tasks Table 2-1. STEPLIB DD.

by dumping after error PGM=IEFBR14 PGM=JCLTEST PGM=JSTTEST (JES3 only) SYSMDUMP DD SYSUDUMP DD SYSABEND DD To format dump on 3800 Printing Subsystem. FCB=STD3 and CHARS=DUMP on dump DD //*PROCESS //*ENDPROCESS DUMP in BYTES. CARDS. CARDS. Tasks for Entering Jobs (continued) TASKS FOR ENTERING JOBS STATEMENTS AND PARAMETERS JCL Statements JOB of address space REGION ADDRSPC of processor of spool partition EXEC REGION ADDRSPC SYSAFF on /*JOBPARM Other JCL JES2 Statements JES3 Statements LREGION on //*MAIN SYSTEM on //*MAIN SPART and TRKGRPS on //*MAIN Table 2-2. and PAGES by timing execution TIME or time in JOB JES2 accounting information TYPRUN CLASS DUMP on BYTES. Tasks for Processing Jobs TASKS FOR PROCESSING JOBS STATEMENTS AND PARAMETERS FOR TASK JCL Statements JOB Processing Control by conditional execution COND CANCEL on BYTES. CARDS. Job Control Tasks 2-5 .Tasks Table 2-1. and PAGES TIME COND IF/THEN/ELSE/ ENDIF statement construct CANCEL on BYTES. and PAGES on //*MAIN Performance Control by job class assignment by selection priority by performance group assignment by I/O-to-processing ratio CLASS PRTY PERFORM PERFORM /*PRIORITY CLASS on //*MAIN IORATE on //*MAIN Chapter 2. CARDS. and PAGES on //*MAIN EXEC Other JCL JES2 Statements JES3 Statements for testing: 1. and PAGES on /*JOBPARM TIME on /*JOBPARM CANCEL on BYTES. by altering usual processing 2. CARDS. LINES. LINES. LINES. LINES. LINES.

Tasks Table 2-3.0 MVS JCL Reference .by modeling TERM DISP DCB AMP DATACLAS KEYLEN DSNTYPE KEYOFF LRECL RECFM RECORG LIKE REFDD of data for ISO/ANSI Version 4 tapes of migration and backup Protection through RACF CCSID MGMTCLAS PROTECT SECMODEL 2-6 z/OS V1R3. Tasks for Requesting Data Set Resources TASKS FOR REQUESTING DATA SET RESOURCES Identification of data set DSNAME /* or xx delimiter UPDATE on //*MAIN //*DATASET //*ENDDATASET STATEMENTS AND PARAMETERS FOR TASK JCL Statements DD OUTPUT JCL Other JCL JES2 Statements JES3 Statements of in-stream data * or DATA SYSIN set DD DLM of data set on DSID 3540 Diskette Input/Output Unit through catalog through label by location on tape JOBCAT DD STEPCAT DD label-type on LABEL data-setsequencenumber on LABEL QNAME as TCAM message data set from or to terminal Description of status of data attributes .

Job Control Tasks 2-7 . Tasks for Requesting Data Set Resources (continued) TASKS FOR REQUESTING DATA SET RESOURCES for ISO/ANSI/FIPS Version 3 tapes and ISO/ANSI Version 4 tapes by passwords STATEMENTS AND PARAMETERS FOR TASK JCL Statements DD ACCODE OUTPUT JCL Other JCL JES2 Statements JES3 Statements PASSWORD and NOPWREAD on LABEL IN and OUT on LABEL of access to BSAM and BDAM data sets Allocation of device UNIT STORCLAS VOLUME STORCLAS SPACE AVGREC DATACLAS UNIT DSNAME= temporary data set CLASS on JOB (JES3 only) SETUP and CLASS on //*MAIN EXPDTCHK and RINGCHK on //*MAIN of tape or direct access volume of direct access space of virtual I/O with deferred DEFER on UNIT volume mounting with volume pre-mounting dynamic Processing Control by suppressing processing by postponing specification with checkpointing by subsystem by TCAM job or task End Processing unallocation FREE DUMMY NULLFILE on DSNAME DDNAME CHKPT SYSCKEOV DD SYSCHK DD SUBSYS CNTL QNAME RESTART on JOB RD on EXEC CNTL ENDCNTL DYNAMNBR on EXEC /*SETUP Chapter 2.Tasks Table 2-3.

Tasks Table 2-3.0 MVS JCL Reference . Tasks for Requesting Sysout Data Set Resources TASKS FOR REQUESTING DATA SET RESOURCES Identification as a sysout data set name (last qualifier) of output class SYSOUT DSNAME class on SYSOUT CLASS MSGCLASS on JOB with SYSOUT=* or CLASS=* and SYSOUT=(. Tasks for Requesting Data Set Resources (continued) TASKS FOR REQUESTING DATA SET RESOURCES disposition of data set STATEMENTS AND PARAMETERS FOR TASK JCL Statements DD DISP RETPD EXPDT release of unused direct access space disposition of volume RLSE on SPACE OUTPUT JCL Other JCL JES2 Statements OUTDISP on /*OUTPUT JES3 Statements RETAIN and PRIVATE on VOLUME Table 2-4.) STATEMENTS AND PARAMETERS FOR TASK JCL Statements DD OUTPUT JCL Other JCL JES2 Statements JES3 Statements DSID of data set on 3540 Diskette Input/Output Unit Description of data attributes Protection of printed output Performance Control by queue selection Processing Control with additional parameters by segmenting with other data sets OUTPUT code-name on SYSOUT SEGMENT class on SYSOUT THRESHLD (JES3 only) GROUPID (JES2 only) DEFAULT PRTY DPAGELBL SYSAREA DCB 2-8 z/OS V1R3.

Tasks Table 2-4. Tasks for Requesting Sysout Data Set Resources (continued) TASKS FOR REQUESTING DATA SET RESOURCES STATEMENTS AND PARAMETERS FOR TASK JCL Statements DD OUTPUT JCL WRITER PRMODE HOLD class on SYSOUT CLASS OUTDISP Other JCL JES2 Statements JES3 Statements by external writer writer-name on SYSOUT by mode by holding by suppressing output with checkpointing by Print Services Facility (PSF) DUMMY class on OUTDISP=PURGE SYSOUT on OUTPUT CKPTLINE CKPTPAGE CKPTSEC COLORMAP COMSETUP DUPLEX FORMDEF FORMLEN INTRAY OFFSETXB OFFSETXF OFFSETYB OFFSETYF OVERLAYB OVERLAYF PAGEDEF PRTERROR RESFMT USERLIB PORTNO CKPLNS and CKPPGS on /*OUTPUT by IP Printway End Processing unallocation FREE SPIN Destination Control to local or remote DEST class on SYSOUT device or to another node to another processor to internal reader INTRDR as writer-name on SYSOUT to terminal to assist in sysout distribution TERM ADDRESS BUILDING DEPT NAME ROOM TITLE ROOM on /*OUTPUT /*EOF /*DEL /*PURGE /*SCAN DEST COMPACT /*ROUTE PRINT /*ROUTE PUNCH ORG on //*MAIN ACMAIN on //*MAIN Output Formatting Chapter 2. Job Control Tasks 2-9 .

and PAGES on JOB BYTES.Tasks Table 2-4. and PAGES on //*MAIN USERDATA Specifications Installation specifications USERDATA 2-10 z/OS V1R3. and PAGES on /*JOBPARM BYTES. LINES. LINES. FLASH. FORMS. CARDS. copies. FCB. and BURST on /*OUTPUT INDEX (JES2 LINDEX only) COPIES FCB form-name on SYSOUT DCB=FUNC=I CHARS=DUMP FCB=STD3 COPIES FCB FORMS CHARS=DUMP FCB=STD3 JES3 Statements COPIES and FORMS on //*FORMAT PR to 3800 Printing Subsystem in addition to most of printer parameters to 3211 Printer with indexing feature to punch BURST CHARS FLASH MODIFY DCB= OPTCD=J CHARS and FLASH on //*FORMAT PR of dumps on 3800 Printing Subsystem Output Limiting OUTLIM lines and cards on JOB JES2 accounting information BYTES. CARDS. CARDS. Tasks for Requesting Sysout Data Set Resources (continued) TASKS FOR REQUESTING DATA SET RESOURCES to any printer STATEMENTS AND PARAMETERS FOR TASK JCL Statements DD COPIES FCB form-name on SYSOUT UCS OUTPUT JCL COPIES FCB FORMS LINECT (JES2 only) UCS CONTROL BURST CHARS FLASH MODIFY TRC Other JCL forms. and FORMS on /*OUTPUT BURST on /*JOBPARM CHARS.0 MVS JCL Reference . and linect on JOB JES2 accounting information JES2 Statements COPIES. and LINECT on /*JOBPARM COPIES. LINES.

v The comments field must be preceded by at least one blank. v The name is 1 through 8 alphanumeric or national ($. v The operation follows the name field. Code the operation field as follows: v The operation field consists of the characters in the syntax box for the statement.Chapter 3. JES2. The identifier field consists of the following: v Columns 1 and 2 of all JCL statements. the command. #. or. You can code comments after the parameter field even though you continue the parameter field on a subsequent statement. Operation field The operation field specifies the type of statement. Comments field The comments field contains any information you deem helpful when you code the control statement. All five fields do not appear on every statement. v The first character must be an alphabetic or national ($. also sometimes referred to as the operand field. contains parameters separated by commas. see “Continuing JCL Statements” on page 3-4. Code the comments field as follows: v The comments field follows the parameter field. code the name as follows: v The name must begin in column 3. @). © Copyright IBM Corp. See Table 4-2 on page 4-3 for the character sets. #. and JES3 statements. Format of Statements This chapter describes the fields in JCL. v The name must be followed by at least one blank. except the delimiter statement. or operand field The parameter field. v The parameter field must be preceded by at least one blank. and 3 of a JCL comment statement contain //* Name field The name field identifies a particular statement so that other statements and the system can refer to it. v The operation must be preceded and followed by at least one blank. It ends with the conventions for continuing statements. JCL Statement Fields A JCL statement consists of one or more 80-byte records. 2002 3-1 . for the command statement. Each JCL statement is logically divided into the following five fields. Identifier field The identifier field indicates to the system that a statement is a JCL statement rather than data. 1988. See “Parameter Field” on page 3-3 for details on coding the parameter field. contain // v Columns 1 and 2 of the delimiter statement contain either /* or two other characters designated in a DLM parameter to be the delimiter v Columns 1. Code the parameter field as follows: v The parameter field follows the operation field. For JCL statements. Parameter. Each record is in the form of an 80-column punched-card image. 2. see Table 3-1 on page 3-2 for the fields that can appear on each statement. @) characters.

with no intervening blanks. except on the comment statement. If the total length of the fields would exceed 71 columns. JCL Statement Fields Statement JCL Command COMMAND Comment CNTL DD Delimiter ENDCNTL EXEC Fields // command [parameter] [comments] [comments] //[name] COMMAND ‘command command-operand’ //* comments //label CNTL DD DD [* comments] [comments]] //[ddname] //[ddname] [parameter /* [comments] xx [comments] //[label] ENDCNTL EXEC [comments] parameter [comments] [comments] //[stepname] IF/THEN/ELSE/ENDIF //name IF [relational expression] THEN //name ELSE [comments] //name ENDIF [comments] INCLUDE JCLLIB JOB Null OUTPUT JCL PEND PROC (cataloged) PROC (in-stream) SET XMIT //[name] //[name] //jobname //jobname // //name //[name] //[name] //[name] //name //name //[name] //[name] OUTPUT PEND PROC PROC PROC PROC SET XMIT parameter [comments] [parameter [parameter parameter INCLUDE JCLLIB JOB JOB parameter parameter [parameter [comments] [comments] [comments]] [comments] [comments]] [comments]] [comments] parameter[. Use Keywords Only for Parameters or Subparameters 3-2 z/OS V1R3. and comments fields in free form. Continuing fields is described under “Continuing JCL Statements” on page 3-4. Between fields leave at least one blank. The comment statement can be coded through column 80. parameter. Table 3-1. Free form means that the fields need not begin in a particular column. continue the fields onto one or more following statements.0 MVS JCL Reference .Format: Fields For most statements. Do not code fields. past column 71. the blank serves as the delimiter between fields. if you do not code any parameters. do not code any comments.parameter] [comments] Location of Fields on Statements Code the identifier field beginning in column 1 and the name field immediately after the identifier. Code the operation.

programmer’s-name on a JOB statement. A subparameter list can consist of both positional and keyword subparameters. If the list is a single keyword subparameter or a single positional subparameter with no omitted preceding subparameters. never code a comma to indicate the absence of a keyword parameter. DATA on a DD statement. Code any of the keyword parameters for a statement in any order in the parameter field after the positional parameters. Because of this positional independence. and PGM=program-name on an EXEC statement. Keyword parameters follow the positional parameters. If you omit a positional parameter and code a following positional parameter. RD=R and MSGCLASS=class-name on the JOB statement. v Only keyword parameters follow. Chapter 3. or JES3 statements as symbolic parameters. JES2. Parameter Field The parameter field consists of two types of parameters: positional parameters and keyword parameters. called a subparameter list. v All following positional parameters are also omitted. keyword parameters. For example. All positional parameters must precede all keyword parameters. or v A combination. Do not code the replacing comma if: v The omitted positional parameter is the last positional parameter. For example. separate the subparameters by commas and enclose the subparameter list in parentheses or. omit the parentheses or apostrophes. v All positional parameters are omitted. Commas Use commas to separate positional parameters. Multiple Subparameters A positional parameter or the variable information in a keyword parameter sometimes consists of more than one item. if indicated in the syntax. Keyword Parameters A keyword consists of characters that appear in uppercase in the syntax and must be coded as shown followed by an equals sign followed by either characters that must be coded as shown or variable information. names. Code positional parameters first in the parameter field in the order shown in the syntax. These subparameters follow the same rules as positional and keyword parameters. Positional Parameters A positional parameter consists of: v Characters that appear in uppercase in the syntax and must be coded as shown v Variable information. Format of Statements 3-3 . and subparameters in the parameter field. or labels. When a parameter contains more than one subparameter.Format: Fields Do not use parameter or subparameter keywords from any JCL. by apostrophes. code a comma to indicate the omitted parameter.

Format: Fields
Null Positional Subparameters
You are allowed to specify null (that is, omitted) positional subparameters except where the Syntax section of a particular parameter states otherwise. (For example, null positional subparameters are not allowed on a COND parameter of an EXEC statement or on an AMP parameter of a DD statement.) You specify a null positional subparameter by following the coding rules listed above for an omitted positional parameter.

JES2 Control Statement Fields
The rules for coding JES2 control statements are the same as the rules for JCL statements, with the following additions: v Columns 1 and 2 always contain the characters /* v Do not code comments on any JES2 statements. Where comments are needed, code a JCL comment statement. v If you code the same parameter on the same statement more than once, JES2 uses the value in the last parameter. When coding a JES2 control statement more than once, be aware of the following JES2 actions: v If the same parameter appears on more than one statement, JES2 uses the value coded on the last statement. v If the statements contain different parameters, JES2 uses all parameters combined.

JES3 Control Statement Fields
The rules for coding JES3 control statements are the same as the rules for JCL statements, with the following additions: v Columns 1, 2, and 3 generally contain the characters //* (slash-slash-asterisk). Some JES3 control statements may contain, and certain other JES3 control statements must contain only a single slash-asterisk (/*) in columns 1 and 2. v Columns 3 and 4 must not be blank. v To code a comment on a JES3 control statement, code a blank after the control statement, and end the comment before column 72.

Continuing Statements Continuing JCL Statements
When the total length of the fields on a control statement exceeds 71 columns, continue the fields onto one or more card images. The following are JCL statements that you cannot continue. While you cannot continue these statements, you can code as many separate statements as you need. JCL Command statement Comment statement Delimiter statement Null statement For all other JCL statements, you can continue the parameter field or the comments field on the JCL statement. If you continue both the parameter field and the

3-4

z/OS V1R3.0 MVS JCL Reference

Format: Continuing Statements
comments field on the same card image, the system ignores the indication to continue the comment. How you continue a parameter field depends on whether or not the parameter is enclosed in apostrophes.

Continuing the Parameter Field
1. Interrupt the field after a complete parameter or subparameter, including the comma that follows it, at or before column 71. 2. Code // in columns 1 and 2 of the following statement. 3. Code a blank character in column 3 of the following statement. If column 3 contains anything but a blank or an asterisk, the system assumes the following statement is a new statement. The system issues an error message indicating that no continuation is found and fails the job. 4. Continue the interrupted parameter or field beginning in any column from 4 through 16.

Continuing Parameter Fields Enclosed in Apostrophes
To continue a parameter that is enclosed in apostrophes: 1. Extend the parameter to column 71. Do not code an apostrophe in column 71 of a JCL statement that is continued. The system interprets the apostrophe in column 71 as the final character in the statement and ignores the continuation. See the following example:
column 71 | // COMMAND ’R0 MVSA,S GTF.RLW,,,MBR=UNITTEST,SPC=(CYL,(100,100)),VLSR=’ // ’VOL=SER=VOL001,’,ODSN-W123456’

To correct this problem, split the statement in a different way. For example, start COMMAND in a later column or interchange non-positional parameters in the statement. 2. Code // in columns 1 and 2 of the following statement. 3. Continue the parameter in column 16 of the following statement even if this splits the parameter. Trailing blanks or commas within the apostrophes do not indicate a continued statement; the system treats them as part of the parameter.

Continuing the Comments Field
Include comments by following an interrupted parameter field with at least one blank. To continue a comment: 1. Interrupt the comment at a convenient place before column 72, up to and including column 71. 2. Code a nonblank character in column 72. 3. Code // in columns 1 and 2 of the following statement. 4. Code a blank character in column 3 of the following statement. 5. Continue the comments field beginning in any column after column 3. You can use JCL comment statements as an alternative way to imbed comments in the JCL stream.

Examples of Continued Statements
Example 1
//DD1 DD DSNAME=SWITCH.LEVEL18.GROUP12,UNIT=3350, // VOLUME=335023,SPACE=(TRK,(80,15)),DISP=(,PASS)

Chapter 3. Format of Statements

3-5

Format: Continuing Statements
This example shows continuation of the parameter field. The parameter field is continued from the first card image to the second card image.

Example 2
//DS1 DD DSNAME=INDS,DISP=OLD,CHKPT=EOV, MY INPUT DATA SET // UNIT=SYSSQ,VOLUME=SER=(TAPE01,TAPE02,TAPE03)

This example shows continuation of the parameter field. The parameter field is continued from the first card image to the second card image. The comment on the first card image is not continued to the next card image.

Example 3
//STP4 // // // // EXEC PROC=BILLING,COND.PAID=((20,LT),EVEN), COND.LATE=(60,GT,FIND), COND.BILL=((20,GE),(30,LT,CHGE)) THIS STATEMENT CALLS THE BILLING PROCEDURE AND SPECIFIES RETURN CODE TESTS FOR THREE PROCEDURE STEPS. X X

This example shows continuation of the parameter field and the comments field. The parameter field is continued from the first card image to the second and third card images. The comments field is continued from the third card image to the fourth and fifth card images.

Example 4
//S1 // EXEC PGM=IEFBR14,PARM=’THIS IS A LONG PARAMETER WITHIN APOST ROPHES, CONTINUED IN COLUMN 16 OF THE NEXT RECORD’

This example shows continuation of a parameter field when a parameter is enclosed in apostrophes. The parameter field is continued from column 71 of the first card image to column 16 of the second.

Continuing JES2 Control Statements
The only JES2 control statement that you can continue is the /*OUTPUT statement. For all other JES2 control statements, code the statement as many times as needed.

Continuing JES3 Control Statements
Continue JES3 statements, except the command statement or //*NETACCT statement, by: 1. Coding a comma as the last character of the first statement. 2. Coding //* in columns 1 through 3 of the continuation statement. 3. Resuming the code in column 4 of the continuation statement. On the JES3 //*NET statement, each parameter must appear entirely on one statement; a subparameter cannot be continued after a comma, except for the RELEASE parameter. 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)

If the parameters on a //*NETACCT statement cannot fit on one statement, code more than one //*NETACCT statement.

3-6

z/OS V1R3.0 MVS JCL Reference

Chapter 4. Syntax of Parameters
Syntax rules define how to code the fields and parameters on job control statements. The syntax indicates: v What the system requires. v What is optional for the specific purpose or process you are requesting. v How the parameters are to appear. The syntax rules apply to all job control statements: JCL statements, JES2 control statements, and JES3 control statements. You must follow the syntax rules in coding job control statements to achieve specific results. If you do not follow the rules, you may get error messages or unpredictable results. IBM does not support the use of statements or parameters to achieve results other than those stated in this publication.

Notation Used to Show Syntax
The syntax of the job control statements and of their parameters appear in the chapters that describe the statements. The notation used in this publication for the syntax is shown in Table 4-1.
Table 4-1. Notation Used to Show Syntax
Notation Uppercase letters, words, and characters Meaning Code uppercase letters, words, and the following characters exactly as they appear in the syntax. & ampersand * asterisk , comma = equal sign () parentheses . period / slash Lowercase letters, words, and symbols in the syntax represent variables. Substitute specific information for them. Syntax: on JOB statement CLASS=jobname Coded: CLASS=A | (vertical bar) A vertical bar indicates an exclusive OR. Never code | on a control statement. It is used between choices within braces or brackets; it indicates that you code only one of the items within the braces or brackets. Syntax: on DD DCB parameter BFALN={F|D} Coded: BFALN=F or BFALN=D Examples

Lowercase letters, words, and symbols

© Copyright IBM Corp. 1988, 2002

4-1

Syntax: Notation
Table 4-1. Notation Used to Show Syntax (continued)
Notation { } (braces) Meaning Braces surround required, related items and indicate that you must code one of the enclosed items. Never code { or } on a control statement. Examples Syntax: on DD SPACE parameter {TRK } {CYL } {blklgth} {reclgth} Coded: TRK or CYL or 960

[ ] (brackets)

Brackets surround an optional item or Syntax: on DD UNIT parameter items and indicate that you can code one [,DEFER] or none of the enclosed items. Never code [ or ] on a control statement. Coded: ,DEFER or omitted Syntax: on DD LABEL parameter [,RETPD=nnnn ] [,EXPDT= {yyddd }] [ {yyyy/ddd}] Coded: ,RETPD=nnnn or ,EXPDT=yyddd or ,EXPDT=yyyy/ddd or omitted

{ , } or [ , ]

One of the items in braces or brackets can Syntax: on DD UCS parameter be a comma. Code the comma when you UCS=(character-set-code[,FOLD|,] [,VERIFY]) do not code any of the other items in the braces or brackets but you are coding a following part of the parameter. Coded: UCS=(character-set-code) UCS=(character-set-code,FOLD) UCS=(character-set-code,FOLD, VERIFY) UCS=(character-set-code,,VERIFY) Note that the comma is not coded if both FOLD and VERIFY are omitted, but must appear if FOLD is omitted and VERIFY follows.

__ (underline)

An underline indicates the default that the system uses when you do not code a subparameter.

Syntax: on JOB or EXEC statement ADDRSPC={VIRT|REAL} Coded: ADDRSPC omitted means ADDRSPC=VIRT Syntax: on DD statement COND=((code,operator)[,(code,operator)]....) Coded: Can repeat ,(code,operator) Thus: COND=((12,GE),(8,EQ),(4,EQ))

... (ellipsis)

An ellipsis follows an item that you can code more than once. Never code ... on a control statement.

4-2

z/OS V1R3.0 MVS JCL Reference

Syntax: Notation
Table 4-1. Notation Used to Show Syntax (continued)
Notation .. (two consecutive periods) Meaning Two consecutive periods indicate that a parameter consists of a symbolic parameter followed by a period and then by other code, so that only part of the parameter is variable. Examples Coded: &DEPT..NYC Meaning: If &DEPT is D27: D27.NYC is the value

Character Sets
To code job control statements, use characters from the character sets in Table 4-2. Table 4-3 lists the special characters that have syntactical functions in job control statements.
Table 4-2. Character Sets
Character Set Alphanumeric National (See note) Contents Alphabetic Numeric “At” sign Dollar sign Pound sign Comma Period Slash Apostrophe Left parenthesis Right parenthesis Asterisk Ampersand Plus sign Hyphen Equal sign Blank EBCDIC printable character set Capital A through Z 0 through 9 @ (Characters that can be $ represented by hexadecimal # values X'7C', X'5B', and X'7B') , . / ' ( ) * & + = Characters that can be represented by hexadecimal X'40' through X'FE'

Special

EBCDIC text

Note: The system recognizes the following hexadecimal representations of the U.S. National characters; @ as X'7C'; $ as X'5B'; and # as X'7B'. In countries other than the U.S., the U.S. National characters represented on terminal keyboards might generate a different hexadecimal representation and cause an error. For example, in some countries the $ character may generate a X'4A'.

Table 4-3. Special Characters Used in Syntax
Character , = ( & && . ) Syntactical Function To separate parameters and subparameters To separate a keyword from its value, for example, BURST=YES To enclose subparameter list or the member name of a PDS or PDSE To identify a symbolic parameter, for example, &LIB To identify a temporary data set name, for example, &&TEMPDS, and, to identify an in-stream or sysout data set name, for example, &&PAYOUT To separate parts of a qualified data set name, for example, A.B.C., or parts of certain parameters or subparameters, for example, nodename.userid
Chapter 4. Syntax of Parameters

4-3

Syntax: Character Sets
Table 4-3. Special Characters Used in Syntax (continued)
Character * Syntactical Function To refer to an earlier statement, for example, OUTPUT=*.name, or, in certain statements, to indicate special functions: //label CNTL * //ddname DD * RESTART=* on the JOB statement To enclose specified parameter values which contain special characters To delimit fields

’ (blank)

Special Characters in Parameters
The syntax or parameter description indicates if the variable that you code can contain special characters or not. Parameters and subparameters that can contain special characters not used for syntactical functions usually must be enclosed in apostrophes, for example, ACCT='123+456'. Code each apostrophe that is part of the parameter or subparameter as two consecutive apostrophes, for example, code O’NEIL as 'O''NEIL'. Table 4-4 lists the parameters that can contain certain special characters without requiring enclosing apostrophes. Ampersands are used in JCL to indicate the beginning of a symbolic parameter (see “Using System Symbols and JCL Symbols” on page 5-12). If a parameter contains an ampersand and you do not want the system to interpret the ampersand as a symbolic parameter, code the ampersand as two consecutive ampersands. For example, code
//S1 EXEC //DD1 DD PGM=IEFBR14,ACCT=’&&ABC’ DSN=&&TEST,UNIT=SYSDA,SPACE=(TRK,(1,1))

The system treats double ampersands as a single character. IBM recommends that you use apostrophes to enclose parameters that contain ampersands (other than a DSNAME parameter representing a temporary data set) to further reduce the possibility of error.
Table 4-4. Special Characters that Do Not Require Enclosing Apostrophes
Statement and Parameter or Subparameter JOB accounting information JOB programmer’s-name Special Characters Not Needing Enclosing Apostrophes Hyphens (-) Examples //JOBA JOB D58-D04

Hyphens (-), leading periods, or embedded //JOBB JOB ,S-M-TU periods. Note that a trailing period requires //JOBC JOB ,.ABC enclosing apostrophes. //JOBD JOB ,P.F.M //JOBE JOB ,’A.B.C.’ Hyphens (-) or plus zero (+0, an overpunch) Hyphens (-) Periods to indicate a qualified data set name Double ampersands to identify a temporary data set name, and to identify an in-stream or sysout data set name //S1 EXEC PGM=A,ACCT=D58-LOC //S2 EXEC PGM=B,ACCT=D04+0 DSNAME=A-B-C DSNAME=A.B.C DSNAME=&&TEMPDS DSNAME=&&PAYOUT

EXEC ACCT DD DSNAME

4-4

z/OS V1R3.0 MVS JCL Reference

Syntax: Character Sets
Table 4-4. Special Characters that Do Not Require Enclosing Apostrophes (continued)
Statement and Parameter or Subparameter Special Characters Not Needing Enclosing Apostrophes Examples

Parentheses to enclose the member name DSNAME=PDS1(MEMA) DSNAME=ISDS(PRIME) of a partitioned data set (PDS) or partitioned data set extended (PDSE), the DSNAME=GDS(+1) area name of an indexed sequential data set, or the generation number of a generation data set name of a partitioned data set (PDS) or partitioned data set extended (PDSE), the area name of an indexed sequential data set, or the generation number of a generation data set Plus (+) or minus (-) sign to identify a generation of a generation data group DD VOLUME=SER DD UNIT device-type Hyphens (-) Hyphens (-) DSNAME=GDS(-2) VOLUME=SER=PUB-RD UNIT=3330-1

Syntax Notes
JCL positional parameters and keywords can have at most two levels of subparameters. Therefore, when parentheses are used to delimit a list of subparameters, a maximum of two levels of parenthesis nesting is permitted. This restriction applies even if the parentheses are empty.

Backward References
Many parameters in job control statements can use a backward reference to fill in information. A backward reference is a reference to an earlier statement in the job or in a cataloged or in-stream procedure called by a job step. A backward reference is in the form: v *.name or *.ddname where name or ddname is the name field of the referenced statement. v *.stepname.name or *.stepname.ddname where the referenced statement, name or ddname, is in an earlier step, stepname, in the same job. v *.stepname.procstepname.name or *.stepname.procstepname.ddname where this job step or an earlier job step, stepname, calls a procedure; the procedure contains procedure step, procstepname, which contains the referenced statement, name or ddname. If stepname is specified without a procstepname, it identifies an EXEC statement that contains a PGM parameter, not one that invokes a procedure. Similarly, if stepname.procstepname is coded, procstepname identifies an EXEC statement containing the PGM parameter in the procedure invoked by stepname. The backward reference lets you copy previously coded information or refer to an earlier statement. The following parameters can make backward references: v DD CNTL refers to earlier CNTL statement v DD DCB refers to earlier DD statement to copy its DCB parameter v DD DSNAME refers to earlier DD statement to copy its DSNAME parameter, whether or not the data set is a partitioned data set, and whether or not the data set is a temporary data set
Chapter 4. Syntax of Parameters

4-5

Syntax: Backward References
v DD OUTPUT refers to earlier OUTPUT JCL statement v DD REFDD refers to earlier DD statement to copy its data set attributes v DD VOLUME=REF refers to earlier DD statement to use the same volume(s). The LABEL label type subparameter is also copied from the referenced DD statement. v EXEC PGM refers to an earlier DD statement that defines the program to be executed as a member of a partitioned data set The following statements cannot be referenced: v DD * statement in DCB, DSNAME, or VOLUME parameter v DD DATA statement in DCB, DSNAME, or VOLUME parameter v DD DUMMY statement in VOLUME or UNIT parameter. The referring DD statement acquires a dummy status. v DD DYNAM statement v DD statement containing FREE=CLOSE in VOLUME or UNIT parameters v Nested procedure statements v Sysout DD statement v DD statement that is the target of a DDNAME= reference. v A DD statement containing a PATH parameter

Examples of Backward References
Example 1
//JOB1 //STEPA //DD1 //DD4 JOB ... EXEC ... DD DSNAME=REPORT . . DD DSNAME=*.DD1

The referring and referenced DD statements are in the same step.

Example 2
//JOB2 //STEP1 //DDA //STEP2 //DDB JOB ... EXEC ... DD DSNAME=D58.POK.PUBS01 . . EXEC ... DD DSNAME=*.STEP1.DDA

The referring and referenced DD statements are in different steps in the same job.

Example 3
Cataloged procedure PROC1 contains:
//PS1 EXEC ... . . //PSTEP1 EXEC ... //DS1 DD DSNAME=DATA1 //PSTEP2 EXEC ... //DS2 DD DSNAME=DATA2 .

The job contains:

4-6

z/OS V1R3.0 MVS JCL Reference

Syntax: Backward References
//JOB5 //CALLER //REF1 //NEXT //REF2 JOB EXEC . DD EXEC DD . ... PROC=PROC1 DSNAME=*.CALLER.PSTEP2.DS2 ... DSNAME=*.CALLER.PSTEP1.DS1

DD statement REF1 in the calling step refers to DD statement DS2 in procedure step PSTEP2. DD statement REF2 in a step after the calling step refers to DD statement DS1 in procedure step PSTEP1. Note that the entire procedure is processed when the calling EXEC statement is processed; therefore, all DD statements in the procedure are earlier than all DD statements in the calling step.

Chapter 4. Syntax of Parameters

4-7

4-8

z/OS V1R3.0 MVS JCL Reference

Chapter 5. Procedures and Symbols
This chapter describes how to use procedures, including nested procedures. It also explains how to use JCL symbols and system symbols.

Cataloged and In-Stream Procedures
For jobs that you run frequently or types of jobs that use the same job control, prepare sets of job control statements, called procedures.

In-stream Procedures
When you place a procedure in the job input stream, it is called an in-stream procedure. An in-stream procedure must begin with a PROC statement, end with a PEND statement, and include only the following other JCL statements: CNTL, comment, DD, ENDCNTL, EXEC, IF/THEN/ELSE/ENDIF, INCLUDE, OUTPUT JCL, and SET. You must observe the following restrictions regarding in-stream procedures: v Do not place any JCL statements (other than the ones listed above) or any JES2 or JES3 control statements in the procedure. v Do not place an in-stream data set (one that begins with DD * or DD DATA) in the procedure. v Do not define one in-stream procedure within another, that is, nested. For information about nesting procedures, see “Nested Procedures” on page 5-9. v Do not use an in-stream procedure if the procedure will be run as a started job under the MASTER subsystem, that is, includes a JOB statement and is started via a START command such as S procname,SUB=MSTR.

Cataloged Procedures
A procedure that you catalog in a library is called a cataloged procedure. A cataloged procedure may consist of these JCL statements: CNTL, command, DD, ENDCNTL, EXEC, IF/THEN/ELSE/ENDIF, INCLUDE, OUTPUT JCL, and SET. Optionally, a cataloged procedure can begin with a PROC statement and end with a PEND statement. If coded, PROC must be the first statement in the procedure.

Cataloging a Procedure
The library containing cataloged procedures is a partitioned data set (PDS) or a partitioned data set extended (PDSE). The system procedure library is SYS1.PROCLIB. The installation can have many more procedure libraries with different names. You can also have procedures in a private library. The name of a cataloged procedure is its member name or alias in the library. When a cataloged procedure is called, the calling step receives a copy of the procedure; therefore, a cataloged procedure can be used simultaneously by more than one job. If you are modifying a cataloged procedure, do not run any jobs that use the procedure during modification. In a JES3 system, you can specify UPDATE on the JES3 //*MAIN statement to update a procedure library.

© Copyright IBM Corp. 1988, 2002

5-1

Procedures

Using a Procedure
To execute a procedure, call it on an EXEC statement in an in-stream job. Specify the name of the procedure in the PROC parameter of the EXEC statement. The step uses the JCL statements in the procedure as if the JCL statements appeared in the input stream immediately following the EXEC statement. If necessary, you can modify the procedure for the current execution of the job step. When you call a procedure, the system retrieves it using the following search order: 1. From the input stream If the called procedure is an in-stream procedure, the system retrieves it from the job input stream. You must place the in-stream procedure before the EXEC statement that calls it. 2. From a private library If the called procedure is cataloged in a private library, the system retrieves it from the private library that you specify on the JCLLIB statement that appears earlier in the job stream. 3. From the system library (in a non-APPC scheduling environment) If the called procedure is cataloged in a system library, the subsystem retrieves it as follows: v In JES2, from the library name on the PROCLIB= parameter on a JES2 /*JOBPARM statement. See “/*JOBPARM Statement” on page 27-3 for more information. v In JES3, from the library name on the PROC= parameter of the JES3 //*MAIN statement. See “//*MAIN Statement” on page 28-22 for more information. v In MSTR, the data set specified by the IEFPDSI DD statement in the currently active master JCL is searched for procedures. The default master JCL specifies SYS1.PROCLIB.

Testing a Procedure
Before putting a procedure into a system procedure library, you should test it. There are two ways to test a procedure: v Place a PROC statement before the procedure and a PEND statement after it and place it in a job input stream. For the test, call this in-stream procedure with an EXEC statement that appears later in the same job. v Put a procedure to be tested in a private library, identify the library on a JCLLIB statement, and call the procedure with an EXEC statement. After testing a procedure, the type of environment in which you are running the job determines where you can catalog it. v In an APPC scheduling environment: Catalog the procedure in a private library, and define the library with a JCLLIB statement. v In a non-APPC scheduling environment: Catalog the procedure in the system procedure library SYS1.PROCLIB, an installation-defined procedure library, or a private library. Cataloging the procedure in the system procedure library allows anyone to use the procedure by calling it with an EXEC statement. Cataloged and in-stream procedures are not checked for correct syntax until an EXEC statement that calls the procedure is checked for syntax. Therefore, a procedure can be tested only if an EXEC statement calls it.

5-2

z/OS V1R3.0 MVS JCL Reference

Modifying Procedures

Modifying Procedures
There are two ways you can modify a procedure: v Using system symbols and JCL symbols v Using overrides. Using system symbols and JCL symbols, you can design your procedures to be easily modified. If the procedure does not contain required system symbols and JCL symbols, you can override the statement. For its current execution, you can override an in-stream or cataloged procedure by: v Overriding, nullifying, or adding EXEC statement parameters v Overriding, nullifying, or adding parameters to DD or OUTPUT JCL statements v Adding DD or OUTPUT JCL statements Overriding a parameter modifies only that parameter; the system uses all other parameters on the original statement. For example, if you override the data set name on a DD statement that includes a UNIT and VOL=SER parameter, the system will still use the UNIT and VOL=SER parameters. Invalid parameters in a procedure cannot be corrected through overrides. Before processing overrides, the system scans the original procedure statements for errors and issues error messages.

Explanation
Modifying EXEC Statement Parameters
All keyword parameters on the calling EXEC statement affect the execution of the procedure, as follows:

All procedure statements
If a keyword parameter is to override the parameter or be added to every EXEC statement in the procedure, code the parameter in the usual way. For example, the ACCT parameter applies to all steps:
//STEP1 EXEC PROC=RPT,ACCT=5670

Note: A PARM parameter without a procstepname qualifier applies only to the first procedure step. A TIME parameter without a procstepname qualifier applies to the entire procedure and nullifies any TIME parameters on procedure step EXEC statements. If the keyword parameter is to nullify the parameter on every EXEC statement in the procedure, code it without a value following the equal sign. For example, the ACCT parameter is nullified in all steps:
//STEP2 EXEC PROC=RPT,ACCT=

Only one procedure statement
If the keyword parameter is to override the parameter or be added to only one EXEC statement in the procedure, code .procstepname immediately following the keyword. The procstepname is the name field of the procedure EXEC statement containing the keyword parameter to be overridden. For example, the ACCT parameter applies to only step PSTEPWED:
//STEP1 EXEC PROC=RPT,ACCT.PSTEPWED=5670
Chapter 5. Procedures and Symbols

5-3

Modifying Procedures
If the keyword parameter is to nullify the parameter on only one EXEC statement in the procedure, code it with the procstepname. For example:
//STEP2 EXEC PROC=RPT,ACCT.PSTEPTUE=

The override, nullification, or addition applies only to the current execution of the job step; the procedure itself is not changed.

Rules for Modifying EXEC Parameters v You cannot modify a PGM parameter. v The calling EXEC statement can contain changes for more than one parameter and for the same parameter in more than one step in a called procedure. (If you code multiple overrides for any parameter in the same step, only the last specification will be effective.) v Modifying parameters should appear in the following order: – Parameters without a procstepname qualifier. – All parameters modifying the first step, then the second step, then the third step, and so forth. v You do not need to code the parameters for each step in the same order as they appear on the procedure EXEC statement. v You must code an entire overriding parameter even if you are changing only part of it.

Modifying OUTPUT JCL and DD Statements
OUTPUT JCL and DD statements that follow the calling EXEC statement v Override, nullify, or add parameters to OUTPUT JCL and DD statements in the procedure, or v Are added to the procedure. These changes affect only the current execution of the job step; the procedure itself is not changed. When an OUTPUT JCL statement is modified, the sysout data set is processed according to the parameters as modified by the overriding statement. In a procedure, to ensure that OUTPUT JCL and DD statements are overridden correctly by modifying statements, place the OUTPUT JCL statements before the DD statements in each step of the procedure.

Location in the JCL
Place modifying OUTPUT JCL and DD statements in the following order, after the EXEC statement that calls the procedure: v For each procedure step in the invoked procedure: 1. Overriding statements can appear in any order when they explicitly specify the step that is being overridden. Added statements can appear in any order when they specify the step explicitly. 2. Overriding and added statements that do not explicitly specify the step are applied to the step named in the previous overriding or added OUTPUT JCL or DD statement. If no previous override statement named a step, then they are applied to the first step in the procedure. v For all procedure steps in the invoked procedure, place the modifying statements for each procedure step in the same order in which the procedure steps are specified.

Coding an Overriding Input Stream DD Statement

5-4

z/OS V1R3.0 MVS JCL Reference

Modifying Procedures
Code overriding input stream DD statements in the order of the steps that they are overriding. Within a step, code the overriding statements in the order of the DD statements that they are overriding. If you do not code the overriding input stream DD statements in the proper order, the system considers the overriding statements to be additions to the step.

Coding an Overriding OUTPUT JCL or DD Statement
To override, nullify, or add parameters to a procedure OUTPUT JCL or DD statement, code in the name field of the overriding OUTPUT JCL or DD statement the name of the procedure step containing the overridden statement, followed by a period, followed by the name of the procedure OUTPUT JCL statement or the ddname of the procedure DD statement.
//pstepname.name OUTPUT parameters //pstepname.ddname DD parameters

Rules for Modifying OUTPUT JCL or DD Parameters
The override operation merges the parameters from an overriding statement with those in the overridden statement. Follow these rules in coding overriding statements: v You can code more than one change on an overriding statement. v You can code modifying parameters in any order on an overriding statement. v Code an entire overriding parameter even when changing only part of that parameter. v If you code a parameter on an overriding statement that is not on the procedure statement, the override operation adds it to the procedure statement. v Nullify a parameter by not coding a value after the equal sign. Omitting the value causes the system to treat the keyword as if it had been removed from the procedure statement. This is the only way to nullify keywords that do not permit a null parameter value. v If you add a parameter that is mutually exclusive with a parameter on a procedure statement, the override operation automatically nullifies the procedure parameter. This is the only exception to the rule that the only way to override a parameter is to specify it explicitly.
Example: If a DD statement within a procedure reads: //ddname DD DSN=FRED,DISP=SHARE,UNIT=TAPE,VOL=SER=111111 and you wish to modify that DD statement to read in data set GEORGE, which is cataloged to a DASD volume, it is NOT sufficient to specify: //stepname.ddname DD DSN=GEORGE Instead you must specify: //stepname.ddname DD DSN=GEORGE,UNIT=,VOL= This nullifies the UNIT and VOLUME information, allowing the system to retrieve that information from the catalog. (An overriding DD statement without those parameters would cause the system to find data set GEORGE on tape volume serial 111111.)

Additional Rules for Modifying DD Parameters

Chapter 5. Procedures and Symbols

5-5

Modifying Procedures
v To nullify all parameters but the DCB parameter, code DUMMY on the overriding DD statement. v Special rules apply when overriding a DCB parameter: – Code only the keyword subparameters to be changed; the other DCB subparameters remain unchanged. – If a positional subparameter is needed, code it, regardless of whether it appears in the overridden DCB parameter. If a positional subparameter is not needed or is to be nullified, omit it from the overriding DCB parameter. – To nullify the entire DCB parameter, nullify each subparameter appearing in the overridden DCB parameter. v To nullify a DUMMY parameter on the procedure statement, code one of the following on the overriding statement: – A DSNAME parameter with a name other than NULLFILE – A SYSOUT parameter – A * or DATA parameter – A SUBSYS parameter.

Adding an OUTPUT JCL or DD Statement
To add OUTPUT JCL or DD statements to a procedure step, code in the name field of the added OUTPUT JCL or DD statement the name of the procedure step, followed by a period, followed by a name or ddname. The name must not appear on any procedure statement.
//pstepname.name OUTPUT parameters //pstepname.ddname DD parameters

If you omit the procedure step name, the statement is added to the step named in the previous OUTPUT JCL or DD statement that named a step. If no previous statements named steps, the statement is added to the first step in the procedure. Added OUTPUT JCL and DD statements can contain symbols. If the statement is being added to the last procedure step, any symbols it contains must appear elsewhere in the procedure.

Supplying In-stream Data for a Procedure
To supply a procedure step with data from the input stream, code a DD * or DD DATA statement in the calling step after the last overriding and added DD statement. The name field of this statement must contain the name of the procedure step, followed by a period, followed by a ddname. The ddname can be of your choosing or predefined in the procedure. If it is predefined, it appears in a DDNAME parameter on a procedure DD statement. For example:
//PROCSTP1.ANYNAME DD * //PROCSTP2.PREDEFN DD DATA

Rules for Modifying DD Statements in Concatenated Data Sets v To override the first DD statement in a concatenation, code only one overriding DD statement. v To override any following DD statements in the concatenation, code an overriding DD statement for each concatenated DD statement. v The overriding DD statements must be in the same order as the concatenated DD statements.

5-6

z/OS V1R3.0 MVS JCL Reference

Modifying Procedures
v Code a ddname on only the first overriding DD statement. Leave the ddname field blank on the following statements. v To leave a concatenated statement unchanged, code its corresponding overriding DD statement with a blank operand (or parameter) field.

Examples of Procedures
Example 1
In the input stream: //JOBA JOB ACCT23,’G. HILL’ //STEPA EXEC PROC=REP //PSTEP1.INDS DD * . (data) . /* In SYS1.PROCLIB member REP: // PROC //PSTEP1 EXEC PGM=WRIT22 //OUTDS DD SYSOUT=A

In this example, the EXEC statement STEPA calls the cataloged procedure named REP and supplies in-stream data. The procedure executes a program named WRIT22. The output from the program will appear in the sysout class A data set.

Example 2
In the input stream: //JOB1 //ADD1 //STEPA //PS1.OUTA //PS1.DSB //PS1.DSE JOB OUTPUT EXEC OUTPUT DD DD . (data) . OUTPUT ,’H.H. MORRILL’ COPIES=2 PROC=P CONTROL=DOUBLE,COPIES=5 OUTPUT=*.ADD1 *

/* //PS2.OUTB

DEFAULT=YES,DEST=STL

In SYS1.PROCLIB member P: //PS1 //OUTA //DSA //DSB //PS2 //DSC EXEC OUTPUT DD DD EXEC DD PGM=R15 CONTROL=PROGRAM SYSOUT=C,OUTPUT=*.OUTA SYSOUT=D,OUTPUT=*.OUTA PGM=T48 SYSOUT=A

In this example, added statements are: v ADD1, which is an OUTPUT JCL statement added at the job level. v PS1.DSE, which is an in-stream data set added to procedure step PS1. v PS2.OUTB, which is a default OUTPUT JCL statement added to procedure step PS2. Overriding statements are: v PS1.OUTA, which changes the CONTROL parameter and adds a COPIES parameter to OUTPUT statement OUTA in procedure step PS1.
Chapter 5. Procedures and Symbols

5-7

Modifying Procedures
v PS1.DSB, which changes the OUTPUT parameter on DD statement DSB in procedure step PS1.

Example 3
//JOBB //STEPB //PSTEP1.DD1 //PSTEP1.INDS JOB ACCT23,’G. HILL’ EXEC PROC=WRIT35,COND.PSTEP3=(4,GT,PSTEP1),RD=R DD VOLUME=SER=,UNIT=SYSDA,DISP=(NEW,CATLG) DD * . . (data) . DD DD DD DD DISP=(OLD,KEEP) DUMMY DSNAME=A.B.C EXPDT=

/* //PSTEP2.DD3 //PSTEP3.DD5 //PSTEP3.DD6 //PSTEP3.DD8

In SYS1.PROCLIB member WRIT35: // //PSTEP1 //DD1 // //DD2 // //PSTEP2 //DD3 //PSTEP3 //DD4 //DD5 // //DD6 //DD7 //DD8 // PROC EXEC PGM=WT1,TIME=(,50) DD DSNAME=DATA1,DISP=(NEW,DELETE),SPACE=(TRK,(10,2)), UNIT=3330,VOL=SER=1095 DD DSNAME=&&WORK,UNIT=SYSDA,SPACE=(CYL,(10,1)), DISP=(,PASS) EXEC PGM=WT2,TIME=(,30) DD DSNAME=*.PSTEP1.DD2,DISP=(OLD,DELETE) EXEC PGM=UPDT,TIME=(,45),RD=RNC DD SYSOUT=* DD DSNAME=DATA3,UNIT=3340,DISP=OLD, VOLUME=SER=335006 DD DSNAME=QOUT,UNIT=3400-5 DD SYSOUT=H DD DSNAME=A.B,DISP=(NEW,CATLG,DELETE), SPACE=(TRK,(1)),EXPDT=92365,UNIT=SYSDA

In this example, EXEC statement STEPB calls the cataloged procedure WRIT35. The COND parameter is added to the EXEC statement for PSTEP3. The RD parameter is added to the EXEC statements for PSTEP1 and PSTEP2, and overrides the RD parameter on the EXEC statement for PSTEP3. In-stream DD statement PSTEP1.DD1 modifies DD statement DD1 in PSTEP1; it nullifies the VOLUME=SER parameter and overrides the UNIT and DISP parameters. Note that the parameters are not in the same order in the overriding and overridden statements. In-stream DD statement PSTEP1.INDS is added to PSTEP1, supplying in-stream data to be read by program WT1. In-stream DD statement PSTEP2.DD3 modifies DD statement DD3 in PSTEP2; it overrides the DISP parameter. Note that the entire parameter is coded, even though only the second subparameter is being changed. In-stream DD statement PSTEP3.DD5 nullifies DD statement DD5 in PSTEP3. However, DD statement DD5 will be checked for correct syntax. In-stream DD statement PSTEP3.DD6 modifies DD statement DD6 in PSTEP3; it overrides the DSNAME parameter.

5-8

z/OS V1R3.0 MVS JCL Reference

Modifying Procedures
In-stream DD statement PSTEP3.DD8 modifies DD statement DD8 in PSTEP3; it nullifies the EXPDT parameter. Note that the EXPDT keyword cannot have a null value. Therefore, you cannot nullify EXPDT by setting it to a substitution text in the procedure DD and then nullifying the symbol on the invoking EXEC statement. EXPDT can only be nullified by not coding a value for it on the overriding DD statement. Note that procedure DD statements DD2, DD4, and DD7 were not modified.

Nested Procedures
Cataloged and in-stream procedures can invoke other procedures (up to 15 levels of nesting). In a procedure, an EXEC statement can invoke another procedure, which can contain an EXEC statement to invoke another procedure, and so on. Note that an in-stream procedure cannot be defined within another procedure. The sequence PROC, PROC, PEND, PEND is not valid.

Nesting Procedures
The following shows how procedures can be nested:
Procedure C: //C PROC //CS1 EXEC . // PEND Procedure B: //B PROC //BS1 EXEC . //BS2 EXEC . // PEND Procedure A: //A PROC //AS1 EXEC . //AS2 EXEC . // PEND Job Stream: //JOB1 JOB //STEP1 EXEC . //STEP2 EXEC . . PGM=GHI

PROC=C PGM=DEF

PROC=B PGM=ABC

PROC=A PGM=JKL

The following statements are equivalent to the nested procedures shown above and show the levels of nesting (scoping) for the procedures.
//JOB1 //CS1 //BS2 //AS2 JOB EXEC . EXEC . EXEC PGM=GHI PGM=DEF PGM=ABC Level 0 Level 3 Level 2 Level 1

Chapter 5. Procedures and Symbols

5-9

Nested Procedures
//STEP2 . EXEC . . PGM=JKL Level 0

Modifying Nested Procedures
The rules for modifying OUTPUT JCL and DD statements described in “Modifying OUTPUT JCL and DD Statements” on page 5-4 apply to nested procedures. In addition, the following rules apply to modifying statements in nested procedures. 1. Procedure and step names referenced by other statements in the job should be unique within the job. 2. Modifying or additional JCL statements must appear in the job stream following the EXEC statement for the procedure they are to modify and prior to the next EXEC statement. 3. Modifying or additional JCL statements apply to one level of nesting only. You can use statements to modify statements in a procedure only for the level of nesting at which the EXEC statement for that procedure appears. 4. Modifying or additional JCL statements cannot themselves be modified. Do not modify statements that are overrides or additions to a procedure. 5. Modifying or additional JCL statements can only have procstepname.name or procstepname.ddname in their name field. Do not specify backward references to nested procedures, such as procstepname.procstepname.ddname DD parameters. These rules are illustrated in the examples in this topic.

Examples of Modifying Nested Procedures
Examples are shown on the following pages.

Example 1
The following example shows overrides and additions to DD statements.
Procedure C: //C //CS1 //CS1DD1 //CS1DD2 // PROC EXEC DD DD PEND PGM=CCC DSNAME=A.B.C,DISP=SHR SYSOUT=A

Procedure B: //B PROC //BS1 EXEC PROC=C //CS1.CS1DD1 DD DSNAME=X.Y.Z //* //* //* //CS1.CS1DD3 DD SYSOUT=A //* //BS2 EXEC PGM=BBB //BS2DD1 DD DSNAME=E,DISP=SHR // PEND

This statement is a valid override of procedure C, stepCS1 for DD CS1DD1 This statement is a valid addition to procedure C, step CS1

Procedure A: //A PROC //AS1 EXEC PROC=B //BS2.BS2DD2 DD DSNAME=G,DISP=SHR This statement is a valid //* addition to procedure B, step BS2

5-10

z/OS V1R3.0 MVS JCL Reference

Nested Procedures
//AS2 EXEC //AS2DD1 DD // PEND PGM=AAA DSNAME=E,DISP=SHR

Job Stream: //JOB1 JOB //STEP1 EXEC PROC=A //AS2.AS2DD2 DD DSNAME=G,DISP=SHR This statement is a valid //* addition to procedure A, step AS2 //STEP2 EXEC PGM=IEFBR14 .

The following statements are equivalent to the nested procedures shown above.
//JOB1 JOB //CS1 EXEC PGM=CCC //CS1DD1 DD DSNAME=X.Y.Z,DISP=SHR //* //CS1DD2 DD SYSOUT=A //CS1DD3 DD SYSOUT=A //* //BS2 EXEC PGM=BBB //BS2DD1 DD DSNAME=E,DISP=SHR //BS2DD2 DD DSNAME=G,DISP=SHR //* //AS2 EXEC PGM=AAA //AS2DD1 DD DSNAME=E,DISP=SHR //AS2DD2 DD DSNAME=G,DISP=SHR //STEP2 EXEC PGM=IEFBR14

Example 2
The following example shows nested procedures and invalid overrides of DD statement parameters that result in JCL errors. The example refers to the rules that appear in “Modifying Nested Procedures” on page 5-10.
Procedure C: //C //CS1 //CS1DD1 //CS1DD2 // PROC EXEC PGM=CCC DD DSN=A.B.C,DISP=SHR DD SYSOUT=A PEND

Procedure B: //B PROC //BS1 EXEC PROC=C //CS1.CS1DD1 DD DSNAME=X.Y.Z //CS1.CS1DD3 DD SYSOUT=A //BS2 EXEC PGM=BBB //BS2DD1 DD DSN=E,DISP=SHR // PEND Procedure A: //A PROC //AS1 EXEC //BS1.CS1.CS1DD1 //* //* //* //BS1.CS1.CS1DD3 //* //* //* //BS1.BS1DD1 DD //* //* //AS2 EXEC

PROC=B DD DSN=X.Y.Z

This statement is an invalid override of procedure B, step BS1, DD CS1.CS1DD1 (rules 4 and 5) This statement is an invalid override of procedure B, step BS1, DD CS1.CS1DD3 (rules 4 and 5) This statement is an invalid addition to procedure B, step BS1 (rule 3)

DD SYSOUT=A

DSN=G,DISP=SHR PGM=AAA

Chapter 5. Procedures and Symbols

5-11

Displaying Static System Symbols If you are authorized to do so. (A started task is a task resulting from JCL that is processed immediately as a result of a START command. except for &SYSUID.CS1. Before you use system symbols in JCL. you can enter the DISPLAY SYMBOLS command to display the static system symbols and associated substitution texts that are in effect for a member. v Within started task JCL you can use system symbols wherever you use JCL symbols (described under “What are JCL Symbols?” on page 5-13). v Substitution texts for JCL symbols can be controlled through input job stream modifications to their definitions. Then read the rest of this section for specific information about using system symbols in started task JCL.Nested Procedures //AS2DD1 // DD PEND DSN=E. They allow you to modify JCL statements in a job easily. 5-12 z/OS V1R3.) Rules for governing system symbol use are: v You can use system symbols in started task JCL (for both jobs and procedures) and in TSO logon procedures. A symbol-defining string is limited to eight characters. not including an identifying ampersand. see z/OS MVS Initialization and Tuning Reference for a complete list of system symbols and for details about how they work.0 MVS JCL Reference .DISP=SHR Job Stream: //JOB1 JOB //STEP1 EXEC PROC=A //AS1. v You cannot use system symbols. in batch JCL.BS1. A system replaces those symbols with its own values when it processes started task JCL (jobs and procedures read from a procedure library) and TSO logons. For additional information about started tasks.CS1DD1 (rules 3 and 5) Using System Symbols and JCL Symbols System symbols and JCL symbols are character strings that represent variable information in JCL. DD BS1.CS1. The output from DISPLAY SYMBOLS shows you the system symbols that you can specify. See the description of DISPLAY SYMBOLS in z/OS MVS System Commands for the command syntax. see Chapter 7. step AS1.CS1DD1 DD DSN=X //* //* //STEP2 EXEC PGM=IEFBR14 This statement is an invalid override of procedure A. “Started Tasks” on page 7-1. What are System Symbols? System symbols represent values that are unique to each system. The difference between system symbols and JCL symbols is: v Substitution texts for system symbols are either fixed for the life of an IPL (static system symbols) or determined by the system (dynamic system symbols). This section: v Describes system symbols and JCL symbols and the differences between them v Explains how to define JCL symbols v Shows how to code system symbols and JCL symbols.

See “Using Symbols in Nested Procedures” on page 5-26 for more information. see “Using Symbols in Started Task JCL” on page 7-8. code the substitution text on one or more of the following: 1. The EXEC statement that calls procedures. there is no need to define system symbols. the system does not substitute text for JCL symbols. For example. The substitution texts you assign override the default substitution texts assigned on the PROC statement. which means that the system could assign different substitution texts to the same dynamic system symbol within the same job. For further information about specifying system symbols in started task JCL. and use JCL symbols in JCL. The rules for coding JCL symbols are the same as for coding system symbols. not the name of the JCL job being processed. You can code system symbols anywhere in started task JCL that you code JCL symbols. v Although dynamic system symbols are supported in started task JCL.System Symbols and JCL Symbols Using System Symbols in Started Task JCL The general rules and recommendations for using system symbols (which are described in z/OS MVS Initialization and Tuning Reference) apply to started task JCL. This section explains how to define. To define or nullify a JCL symbol. A JCL symbol defined on an EXEC statement is not in effect for subsequent job steps in the same level of procedure nesting. nullify. they are either defined to MVS or defined by your installation. The JCL symbols that you define are valid only for the current job.PARM1=’MYDS1. Chapter 5. See “Using Symbols Before Fixed Code” on page 5-23 for details. otherwise. you must define or nullify them in your JCL each time a job runs. The system substitutes text for dynamic system symbols at conversion time. The following are exceptions to those general rules and recommendations: v Normally. IBM does not recommend that you code them in started task JCL. Defining and Nullifying JCL Symbols When you code JCL symbols.PGM’ The system uses a JCL symbol defined on the EXEC statement for any procedures that it invokes. Conversely. The maximum length of any substitution text that you can assign to a JCL symbol is 255 characters. What are JCL Symbols? JCL symbols differ from system symbols in that you must define them in started task JCL before you can use them in that JCL. the resolved substitution text for the &JOBNAME dynamic system symbol is the name of the job assigned to the address space in which the JCL is converted. Procedures and Symbols 5-13 . Use the EXEC statement to define substitution texts on statements in the called procedures. and you can use them in any set of started task JCL. you must follow the rules for JCL symbols when placing a period at the end of system symbols. In started task JCL. you can specify an optional period at the end of system symbols. For example: //STEP1 EXEC PROC=SEARCH. including examples.

Use the SET statement to define JCL symbols that are used on: v JCL statements in the JCL stream v Statements in a procedure (when the EXEC statement that calls the procedure and the PROC statement for the procedure do not also define JCL symbols). v Do not specify the ampersand that identifies the JCL symbol in the procedure. For example: //PROC1 PROC PARM2=OLD. Code the SET statement in the JCL before the first use of the JCL symbol. Continue values that do not fit on a single line as described in “Continuing JCL Statements that Contain Symbols” on page 5-20.System Symbols and JCL Symbols If you specify duplicate JCL symbols on an EXEC statement. The PROC statement must begin in-stream procedures and can begin cataloged procedures. For example: //LEVEL1 SET PARM2=NEW. Assign only one substitution text to each JCL symbol used in a procedure. If the SET statement defines a value for a JCL symbol but that symbol is not coded in the JCL. The SET statement that defines and nullifies JCL symbols. v Enclose within apostrophes substitution texts that do not fit on a single line. code: JCL_symbol_name=substitution_text Rules for Defining JCL Symbols v Define a substitution text that is 1-255 characters long. the system uses the first substitution text as the default. the system uses the default substitution text. Note: The substitution text specified on the SET statement is assigned to the JCL symbol regardless of the logic of the construct. the system uses the first substitution text as the default. Use the PROC statement to define default substitution texts for JCL symbols in the procedure (you can override the defaults on the EXEC statement).PARM3=111222 If you specify duplicate JCL symbols on a PROC statement. there is no JCL error. as described in “Defining and Nullifying JCL Symbols” on page 5-13. The PROC statement that begins a procedure. PROC.0 MVS JCL Reference . v All JCL symbols coded in the JCL must have defined values. the system assigns the last substitution text to the JCL symbol. Otherwise: v All JCL symbols for which values are defined must be coded in the JCL. v Define JCL symbols on EXEC. This is because the SET statement is not executed conditionally (such as in the THEN and ELSE clauses of an IF/THEN/ELSE/ENDIF statement construct). 3. For example.PARM3=DELETE If you define duplicate JCL symbols on a SET statement. or SET statements. Syntax of JCL Symbol Definitions To define a substitution text to a JCL symbol. If you do not define or nullify the substitution text for a JCL symbol on the EXEC statement. if the JCL 5-14 z/OS V1R3. 2.

which is processed correctly: //S1 EXEC PGM=IEFBR14.System Symbols and JCL Symbols symbol &NUMBER appears on one or more DD statements in a procedure. and you want to substitute the text 3380 for &NUMBER. the system uses the substitution text that is defined in the JCL. if your installation frequently assigns department numbers in procedures. See Table 4-3 on page 4-3 for a list of special characters. enclose the substitution text in apostrophes (for example. especially if the imbedded JCL symbol is not previously defined. The enclosing apostrophes are not considered to be part of the substitution text. If the special characters include apostrophes. ensure that all system and application programmers know about those JCL symbols. You should assign default values to all JCL symbols in a procedure. LOC='O''HARE'). Defining Names for JCL Symbols IBM recommends that your installation define standard names for frequently used JCL symbols and enforce the use of those names. When a JCL symbol has the same name as a system symbol. the substitution text for the JCL symbol overrides the substitution text for the system symbol. if you code the following: Chapter 5. define the &DEPT JCL symbol and use it consistently. If your installation plans to provide a standard set of JCL symbols. For example. code each apostrophe as two consecutive apostrophes. which is also the name of a system symbol. The results can be unpredictable. Procedures and Symbols 5-15 . For example. code one or more of the following: //SET1 //STEP1 //PROC1 SET EXEC PROC NUMBER=3380 PROC=PROC1. The system uses the default values on the PROC statement when no calling EXEC statement or SET statement overrides them.PARM=’&LOC’ produces the following equivalent JCL. You can define names for JCL symbols that are the same as system symbol names.PARM=’O’’HARE’ However. If the substitution text contains multiple ampersands and is not enclosed in apostrophes. the system treats each pair of ampersands as a single character.NUMBER=3380 NUMBER=3380 v Do not specify JCL symbols within other JCL symbols. You must code four consecutive apostrophes in substitution texts that are to be substituted into a parameter that is enclosed in apostrophes. Defining Default Substitution Texts to JCL Symbols The substitution texts that you define to JCL symbols on the PROC statement serve as defaults. if JCL defines a symbol with the name &SYSNAME. For example: // SET LOC=’O’’’’HARE’ //S1 EXEC PGM=IEFBR14. Using Special Characters in Substitution Texts If a substitution text contains certain special characters.

PARM=’O’HARE’ The system fails this statement because the apostrophes resulting from the substitution are unbalanced. The parentheses are considered part of the substitution text. delimiters. code: JCL_symbol_name= v Do not code the ampersand that identifies the JCL symbol in the procedure.WORK=’1000. v Do not code a substitution text after the equal sign. VALUE=' '). For example: //JOB1 EXEC //PROC1 PROC //STEP1 EXEC PROC1 WORK=’’’1000. keep the following in mind: v When you nullify a JCL symbol.PASS) If the substitution text within the parentheses contains apostrophes.500’ If the substitution text begins and ends with matched parentheses. | | | | | | | | When you want to code a JCL symbolic that consists of two parameters separated by a comma. the JCL symbol is nullified.System Symbols and JCL Symbols // SET LOC=’O’’HARE’ //S1 EXEC PGM=IEFBR14. are not nullified.500’’’ PROC2.ACCT=DID58 NUMBER=. Syntax for Nullifying JCL Symbols To nullify a JCL symbol.LOC=POK When nullifying JCL symbols. v If you use an EXEC statement to nullify a JCL symbol. In some cases. do not enclose the value in apostrophes. For example: //TPROC PROC DISP=(NEW.WORK=&WORK The substitution JCL would be: //STEP1 EXEC PROC2. v Do not code literal blanks (for example. v Do not nullify JCL symbols that appear on JCL keywords that do not accept NULL values. code one or more of the following to nullify UNIT=&NUMBER: //SET2 //CALLER //ABC SET EXEC PROC NUMBER= PROC=ABC. 5-16 z/OS V1R3. the remaining comma is required. the apostrophes are considered part of the substitution text. For example.0 MVS JCL Reference . such as leading or trailing commas.NUMBER=. The syntax descriptions of the individual keywords specify whether the keywords allow NULL values. The system does not remove them. you may have to enclose the JCL symbolic in triple apostrophes.PARM=’&LOC’ The equivalent JCL is: //S1 EXEC PGM=IEFBR14. if the JCL symbol &NUMBER appears in one or more DD statements in a procedure. and a PROC statement specifies a default substitution text for the JCL symbol. in others it causes a syntax error.

code a comma to omit the positional parameter. If you nullify &FIRST and assign 222222 for &SECOND. serial numbers in the VOLUME=SER parameter: VOLUME=SER=(&FIRST&SECOND) If either of the JCL symbols is nullified. do not code a comma to omit the parameter.DEFER) When a JCL Symbol is Not Positional When a JCL symbol is not a positional parameter. You can code JCL symbols in: v JCL statements in the input job stream. the parameter correctly becomes: UNIT=(3350. Procedures and Symbols 5-17 . a leading or trailing comma does not remain. the required commas remain after the JCL symbol is nullified. those that vary each time a job runs are good candidates to be coded as symbols. Therefore. Enclose the comma in apostrophes (because it is a special character). For example. which can be read only from a procedure library.FIRST=111111.DEFER) When &NUMBER is nullified. or values in procedures or in the parameter field of statements. you can code system symbols only in statements in cataloged procedures. Do not code a comma before the JCL symbol. but not practical for a started task procedure). Code commas both before and after the JCL symbol.222222’ Coding Symbols in JCL JCL symbols and system symbols can represent parameters.. When a JCL Symbol is Positional When a JCL symbol is a positional parameter. and another parameter follows it.System Symbols and JCL Symbols The following sections explain special considerations to make when JCL symbols are positional and not positional. For example: //CALLER EXEC PROC=ABC.&NUMBER. You may code system symbols only in started task JCL (jobs and procedures). Chapter 5. the parameter correctly becomes: VOLUME=SER=(222222) If you nullify &SECOND and define 111111 to &FIRST. the parameter correctly becomes: VOLUME=SER=(111111) Code a comma when it is required in a substitution text. For example. no commas remain after the JCL symbol is nullified. subparameters. submitted either in batch mode or from a TSO session (but not in the job stream read in in response to a START command) v Statements in cataloged or in-stream procedures (which do not include started task JCL) v DD statements that are added to a procedure (something that is possible.SECOND=’. &NUMBER for the unit count: UNIT=(3350.

keep in mind that the substitution text for the JCL symbol overrides the substitution text for the system symbol with the same name. Do not code EXEC statement parameter and subparameter keywords as names for JCL symbols. see “Using Symbols in Nested Procedures” on page 5-26. you also need the general rules for coding system symbols. code the ACCT parameter on the EXEC statement as one or more system symbols or JCL symbols: ACCT=&ALLNOS ACCT=&FIRST&SECOND&THIRD References v For information about using symbols in nested procedures. you can code the DSNAME parameter as a system symbol on the DD statement: DSNAME=&DAY If a job step is charged to different account numbers each time the procedure is executed. For example. v For information about using symbols in started task JCL. Rules for Coding Symbols in JCL Follow these rules when coding symbols in JCL: 1. 3. see “DCB Subparameters” on page 12-57.System Symbols and JCL Symbols For example. Do not specify symbols in records in an in-stream data set defined by the DD * or DATA parameter. 4. 5-18 z/OS V1R3. See the section on coding system symbols in z/OS MVS Initialization and Tuning Reference. 2. if the data set name on a DD statement in an INCLUDE group can vary each time the INCLUDE group is imbedded in the JCL. see “Using Symbols in Started Task JCL” on page 7-8. correctly code REGION=&SIZE. Do not code DD or JOB statement keywords as JCL symbols in procedures or jobs that are started by a START command from the operator console. When coding a JCL symbol that has the same name as a system symbol. This rule includes the following obsolete keywords: v AFF v SEP v SPLIT v SUBALLOC This rule also includes DCB subparameters. name field.0 MVS JCL Reference . In addition to the preceding rules for coding symbols in JCL. Do not use symbols to change the identifier field. do not use the following DCB subparameters as symbol values: v BFALN v LRECL For a complete list of DCB subparameters. Example: Do not code &REGION=200K or REGION=&REGION. The system does not substitute text for symbols in SYSIN data. 5. or operation field of a JCL statement.

a JCLLIB or INCLUDE statement might contain symbols that determine which statements are used in the job.SYM2=(DEF).S III.S III. the statement could read: //Step1 EXEC PGM=MVSCMD.MEMBER(3&SYSCLONE(2:1))’ which is the JCL that gets executed. given a value of ’05’ for SYSCLONE. v Symbols on JCL records are treated as if they were resolved simultaneously. // SYM4=’&&TEMP2’.″ a technique that could be useful in coding your JCL. the system responds as if you had coded the equivalent JCL (without symbols) produced by the following sequence of operations: 1. // SYM6=&TEMP3 Chapter 5. For example. Your MVSCMD program would then take what is in the PARM on its EXEC statement and issue it as an MVS command: F RMF. v Does not compress double ampersands within symbols that are enclosed in apostrophes. By using a double ampersand you can force MVS to defer processing the statement until after the JCL is executed and the program is running. The system: v Does not consider apostrophes that enclose symbols as part of their substitution texts.) Therefore. v Resolution of all symbols might determine the processing of subsequent statements. Procedures and Symbols 5-19 . Determine the substitution texts. v Compresses two-to-one the double ampersands in symbols that are not enclosed in apostrophes. Substitute all symbols.MEMBER(3&SYSCLONE(2:1)) which the command symbolic substitution routine then processes and changes to: F RMF.S III. The following example shows a procedure that defines JCL symbols: //EXAMPLE PROC SYM1=’What’’’’s up.MEMBER(35) Determining Equivalent JCL When you submit JCL that specifies symbols.S III.SYM5=&&TEMP3.MEMBER(3&&SYSCLONE(2:1))’ The MVS converter will change that to: //Step1 EXEC PGM=MVSCMD. (Substringing allows you to specify a subset of characters in a substitution text.SYM3=&&&&TEMP1. suppose you want to enter a substringed symbol as a parameter of an EXEC statement of a started task. For example. v Considers parentheses that enclose symbols as part of their substitution texts.PARM=’F RMF.System Symbols and JCL Symbols | | | | | | | | | | | | | | | | | | | | | | | | Note: JCL does not support substringing of system symbols or JCL symbols. the section on substringing symbols in the general rules for coding symbols in z/OS MVS Initialization and Tuning Reference is not entirely applicable. However. Doc?’.PARM=’F RMF. For instance.TEMP3=TEMPNAME. v Compresses two-to-one the double apostrophes within symbols. one topic of that section in z/OS MVS Initialization and Tuning Reference discusses ″double ampersand notation. 2.

SPACE=(TRK.(1.UNIT=SYSDA.SPACE=(TRK.1)) DSN=&SYM6.VAL2=DEF.UNIT=SYSDA. Doc? (DEF) &&TEMP1 &&TEMP2 &TEMP3 TEMPNAME &TEMP3 The equivalent JCL produced by the substitution.SPACE=(TRK.(1.(1. If symbolic substitution produces a null record (a card image that is blank except for slashes in columns 1 and 2) as the continuation record.(1. the value assigned to SYM6 cannot depend on another symbol defined at the same time. 2.SPACE=(TRK.’. The system determines if the record continues to another record. Again. Continuing JCL Statements that Contain Symbols The system evaluates continuations of JCL statements that contain symbols as follows: 1.(1. consider the following JCL: //SET1 //S1 // SET VAL1=’ABC. and again when the EXEC PARM parameter is processed.(1.1)) DSN=&TEMP3.(1. For example.1)) The PROC statement assigns the following substitution texts to the JCL symbols: SYM1 SYM2 SYM3 SYM4 SYM5 TEMP3 SYM6 What’’s up. The parameter passed to the WTO program is: What’s up.UNIT=SYSDA.UNIT=SYSDA. The system compresses the apostrophes in the symbol definition when the value of the symbol is determined. not &&TEMP2.UNIT=SYSDA. a JCL error will result.PARM=’What’s up.1)) DSN=&TEMP3.1)) DSN=&&TEMP2. The system substitutes all symbols on an 80-character record.SPACE=(TRK. All symbols are treated as if they were resolved simultaneously. is: //S1 //DD1 //DD2 //DD3 //DD4 EXEC DD DD DD DD PGM=WTO. the substitution is not valid. if the symbol TEMP3 is not used elsewhere in the procedure.1)) DSN=&SYM5. since substitution is performed only once for a given statement.NULLSYM=’ EXEC PGM=IEFBR14.SPACE=(TRK.UNIT=SYSDA.1)) DSN=&SYM4.PARM=&VAL1 TIME=30 5-20 z/OS V1R3.SPACE=(TRK. a JCL error results. Because all symbolic parameters are resolved simultaneously.0 MVS JCL Reference .System Symbols and JCL Symbols //S1 //DD1 //DD2 //DD3 //DD4 // EXEC DD DD DD DD PEND PGM=WTO.(1. If the symbol TEMP3 defined on the PROC statement is not used elsewhere in the procedure.UNIT=SYSDA. v The symbol TEMP3 cannot be used to assign a value for the symbol SYM6 on the same statement. when the procedure is expanded.ACCT=(DEF) DSN=&&TEMP1.1)) Note the following in the example: v SYM1 requires four apostrophes in its original definition because it is substituted into a parameter enclosed in apostrophes. to SYM6. Doc?’. Doc? v The single ampersand produced by SYM5 in the DSN parameter of DD3 cannot be interpreted as the start of a new JCL symbol.PARM=’&SYM1’. The system assigns the value &TEMP3.UNIT=SYSDA.ACCT=&SYM2 DSN=&SYM3.SPACE=(TRK.

the system recognizes the beginning of the comment field when it encounters the blank character at the end of the parameter field.System Symbols and JCL Symbols //S2 // //S3 // EXEC PGM=IEFBR14. The EXEC statement receives an error message indicating that the system did not receive an expected continuation. the record containing NULLSYM evaluates to a null record after symbolic substitution. so the second instance of &QUOTE will not be replaced during symbolic substitution.PARM=&VAL2 TIME=30 EXEC PGM=IEFBR14.PARM=&QUOTE.) Two techniques for handling this situation are: (1) defining shorter symbols to substitute for the longer ones. The system recognizes the beginning of the comment field in the substituted JCL when it encounters the blank character at the end of the (potentially modified) parameter field. In step S2.T=’(30. the system disregards text occurring after this blank. Example: // SET CONT=’ ’. and the continuation is correctly coded. The system disregards text occurring after this blank in subsequent processing. 2.ABC DD DUMMY DEF&QUOTE The equivalent JCL produced by substitution is //S1 EXEC PGM=IEFBR14. and column 72 must be blank. Coding Symbols in Comments The system does not process symbols in comment statements or in comment fields of JCL statements.TIME=&T Chapter 5. v After performing symbolic substitution. Because the first &QUOTE symbol resolves to a single quotation mark. because columns 1. or find a continuation to the next line. | | | | | | | It may be that the number and length of symbols form a parameter that does not fit within the limits imposed by an 80-character record. For purposes of symbolic substitution.PARM=&VAL1 &NULLSYM The JCL records that define step S1 form a valid continuation. the system re-evaluates the resulting equivalent JCL to determine where the parameter field ends.0)’ //S1 EXEC PGM=IEFBR14&CONTPARM=’ABC DEF’. the JCL symbol VAL1 introduces a comma. and 3 must contain respectively a slash.PARM=’ABC //DD1 DD DUMMY DEF&QUOTE DEF&QUOTE is considered a comment because it follows the blank that ends the parameter field. and blank. Example: // //S1 //DD1 SET QUOTE=’’’’ EXEC PGM=IEFBR14. the system expects to either find another single quotation at the end of a subparameter list. In step S3. which would allow you to place a comma after the first and move the second to a continuation record. Steps S2 and S3 are not valid. or (2) dividing the series of symbols so as to form two parameters. Procedures and Symbols 5-21 . slash. Comments on JCL statements that contain symbols are evaluated as follows: v In the original submitted JCL. the first record does not end in a comma after substitution of VAL2. (In reality the limit is 68 characters.

The system treats a string beginning with an ampersand but not meeting these criteria as a literal sequence of characters.PARM=’&INPUT&XXX’ PEND EXEC TPROC. Thus the system does not process the PARM and TIME parameters. the system regards a string beginning with an ampersand (&) inside the apostrophes as a symbol when the following conditions are true: v The character following the ampersand is not another ampersand.0) is substituted for the symbol &T.0) The text (30. v The characters following the ampersand are ended by a character that is not alphabetic. The ending character must be not more than 9 characters after the ampersand. v The string of characters delimited by the ampersand and the ending character is: – Defined as a symbol on a PROC. the following JCL statement is incorrect: // //S1 // SET SYMBOL=VALUE EXEC PGM=IEFBR14. because substitution introduced a blank character after the program name parameter.DISP=OLD A symbol within apostrophes cannot be broken at column 71 and continued to the next line. The result of the example is: //EXEC PGM=IEFBR14. &INPUT is not a symbol because it is not defined. numeric. For example.TIME=(30.XXX=VALUE The ending character for &XXX is the apostrophe.System Symbols and JCL Symbols The equivalent JCL is: //S1 EXEC PGM=IEFBR14 PARM=’ABC DEF’. Coding Symbols in Apostrophes You can code symbols in apostrophes on the following keywords: v The DD statement AMP parameter v The DD statement PATH parameter v The DD statement SUBSYS parameter v The EXEC statement ACCT parameter v The EXEC statement PARM parameter. However. For example.0 MVS JCL Reference . Thus the system does not substitute text for symbols and does not issue error messages. the system correctly resolves a symbol that is enclosed in apostrophes when the symbol is immediately preceded by a symbol that is not enclosed in apostrophes.PARM=’&INPUTVALUE’ On parameters that are not in the list. In the following example. or national. The symbol cannot be more than 8 characters long. all text following the blank is considered to be a comment.REGION=4K. EXEC. When you specify these parameters. both A and B are substituted correctly in: //DD1 DD &A’&B’.PARM=’Print &SYMB OL’ 5-22 z/OS V1R3. //TPROC //STEP1 // //STEP2 PROC EXEC PGM=IEFBR14.TIME=(30. or SET statement – A system symbol. &XXX is a JCL symbol that is defined in the STEP2 EXEC statement.0).

Using Multiple Symbols The same symbol can appear more than once in a job.DISP=OLD If &POSPARM is nullified.DSNAME=ATLAS. #. For example. as in MONDATA. Using Symbols as Positional Parameters When a symbol is a positional parameter followed by other parameters in the statement. &DEPT can appear several times in a procedure. Using Symbols Before Fixed Code A period is required after a symbol when the code that follows the symbol is fixed and begins with: v An alphanumeric or national character ($. The system recognizes the period as a delimiter.’ If &POSPARM is not nullified. the statement appears as: //DS1 DD DSNAME=ATLAS. For example. and so forth. if the department number is always to be the same. You can assign different substitution texts to the same symbol on different statements.POK when the desired value is D58. @) v A period.DISP=OLD When assigning a substitution text to &POSPARM. The same symbol can appear more than once in a procedure.. the statement appears as: //DS1 DD DUMMY. For example.POK and DEPT=D58 is the value assignment.DATA Code two consecutive periods (.DISP=OLD Using Two or More Symbols in Succession Code two or more symbols in succession without including a comma.) if a period follows a symbol.. Using the SYSUID System Symbol As long as you observe the rules listed in the earlier topic ″Rules for Coding Symbols in JCL. code: DSNAME=&DAY. code &DEPT.System Symbols and JCL Symbols The JCL symbol SYMBOL is not substituted because it must be coded on a single JCL record. The period does not appear after you assign a substitution text to a symbol or nullify a symbol. Procedures and Symbols 5-23 . For example: //DS1 DD &POSPARMDSNAME=ATLAS. A JCL error may result. For example: PARM=&DECK&CODE If the substitution text is to contain a comma. TUESDATA. if the first part of a data set name varies and the last does not. include the comma in the substitution text. as long as its substitution text is the same throughout the procedure.″ you may code the SYSUID system symbol anywhere in your JCL where you would code a user ID except on the keywords and statements listed in Chapter 5. include the comma: POSPARM=’DUMMY. follow the symbol with a period instead of a comma.

(for example a security product is not active or the submitting userid is not allowed to propagate). You can. In an APPC scheduling environment: v Avoid coding &SYSUID on the DD statement SUBSYS parameter. if specified.″ Note: If RACF is active and the job is running with a user ID not defined to RACF. for example. v Avoid coding &SYSUID on the JOB statement NOTIFY parameter. v JES2 or JES3 control statements.KEEP) The system replaces the symbol with the userid of the transaction program invoker. If userid ROGERS invokes the transaction program. SYSUID will be null. the system might interpret the data set name as a temporary data set name.PROFILE. If RACF is running in a fail soft mode. The same results may occur if &SYSUID is not resolved to a valid user when RACF is not active. Avoid using &SYSUID as an unqualified data set name. if the user ID specified through the Allocate service is longer than 7 characters.PROFILE. //INSTREAM PROC LOC=POK //PSTEP EXEC PGM=WRITER 5-24 z/OS V1R3. which is normally one of the following: v The USER parameter from the JOB statement. symbol substitution is unpredictable on SUBSYS.DISP=(NEW. Restrictions on Coding SYSUID Do not code &SYSUID on the following keywords and statements: v Job statement USER. the security product is considered ″active. GROUP. PASSWORD. the system will create the data set name ROGERS.. Depending on the other statements in the transaction program profile. Examples of Defining and Coding Symbols in JCL Example 1 //JOBA JOB . v Job statement accounting information and programmer name fields. A security product is considered ″not active″ in OS/390 if it has been disabled. v The XMIT JCL statement.. Code SYSUID on the DSNAME parameter as the high-level qualifier of the data set name: //DD1 DD DSNAME=&SYSUID. The system replaces &SYSUID with the user ID under whose authority the job will run.System Symbols and JCL Symbols the topic “Restrictions on Coding SYSUID”. or v The user ID from which the job was submitted.. Note: If userid propagation does not occur. coding &SYSUID on XMIT causes a JCL error and the job is flushed. use &SYSUID as a generic qualifier in a data set name specified in a transaction program profile that will be invoked by a transaction program. the system provides substitute characters for &SYSUID and may fail the job because of this JCL error. and SECLABEL parameters when a security product like RACF is active. the Allocate request will fail.0 MVS JCL Reference .

SPACE=(TRK. then it is assigned an execution value of NYC on the calling EXEC statement. E=OLD.UNIT=&NUMBER //POUT DD SYSOUT=A. See Table 4-4 on page 4-4 for more information. call the in-stream procedure with: //CALLER1 EXEC PROC=TESTPROC.KEEP). code the following statement: //CALLER2 EXEC PROC=TESTPROC.DISP=&E. Example 3 This example illustrates execution of an in-stream procedure to test symbols before placing the procedure in a procedure library..10. the statements are: Chapter 5. &B with BAKER. SPACE=(&F.C=3350.LOC=STL //PSTEP.E= After symbolic substitution.G=’10.UNIT=3330.(10.NUMBER=.KEEP) does not require apostrophes because it contains a matched pair of parentheses.VOLUME=SER=WXYZ1.A=IEFBR14. After symbolic substitution. and &E with (NEW..LOC=NYC In this example of an in-stream procedure.1’ EXEC PGM=&A DD DSNAME=&B.F=TRK.. the &LOC symbol has a default value of POK on the PROC statement. //PIN DD DSNAME=REPORT. (data) .UNIT=&C.1)) Example 4 To execute the in-stream procedure in the previous example and change DD1 to resemble a temporary scratch space.DISP=(OLD. //INSTREAM PROC LOC=POK. KEEP) but leave the other parameters the same.NUMBER=3350 //PSTEP EXEC .DEST=&LOC PEND EXEC PROC=INSTREAM.System Symbols and JCL Symbols //DSA // //CALLER // DD SYSOUT=A.B=BAKER.A=IEFBR14.KEEP). /* This code nullifies the &NUMBER JCL symbol.E=(NEW.VOLUME=SER=&D.(&G)) PEND To execute this in-stream procedure and override &A with IEFBR14.DEST=&LOC // PEND //CALLER EXEC PROC=INSTREAM..D=. the statements are: //STEP //DD1 // EXEC PGM=IEFBR14 DD DSNAME=BAKER.B=.B=ABLE.D=WXYZ1. The calling EXEC statement assignment of STL for the &LOC symbol overrides the PROC statement assignment of POK. Example 2 //JOBB JOB .INDATA DD * . The in-stream procedure named TESTPROC is: //TESTPROC // //STEP //DD1 // // PROC A=IMB406.KEEP) Note that the value (NEW. DISP=(NEW. Procedures and Symbols 5-25 .C=3330.10.

DISP=. it is an undefined JCL symbol which might cause errors in the JCL. the value used for the JCL symbol in this procedure is obtained from the procedure in which this procedure is nested. if the calling EXEC statement or the PROC statement of the procedure assigns or nullifies the symbol. When the EXEC statement that calls the nested procedure does not assign a substitution text to the symbol. the system uses the default substitution text specified on a PROC statement. 5. For example: //TESTJCL PROC //STEP1 EXEC TESTJCL1 // PEND //TESTJCL1 PROC //STEP2 EXEC PGM=IEFBR14.System Symbols and JCL Symbols //STEP //DD1 EXEC PGM=IEFBR14 DD DSNAME=. along with the following rules: 1. the substitution text that you specify on the SET statement is used in all subsequent statements.1)) Using Symbols in Nested Procedures The general rules described in “Using System Symbols and JCL Symbols” on page 5-12 also apply to symbols in nested procedures. 6. Table 5-1 shows rules 2 through 6 in a summary table. 2.0 MVS JCL Reference . the substitution text that you specify on the EXEC statement is used in the procedure.UNIT=3350.SPACE=(TRK. Within a nested procedure. the system uses the value specified on the EXEC statement of the outer procedure.VOLUME=SER=. Table 5-1.PVAL=EXEC0 4. and nested procedures. However. If you assign or nullify a substitution text for a symbol on a SET statement. which is the order in which the value for a symbol is resolved. If you do not assign or nullify a value for a JCL symbol in a nested procedure. The EXEC statement overrides any default value you specify on the PROC statement of the nested procedure. If a JCL symbol is not assigned a substitution text or is not nullified.(10. If the PROC statement of the inner procedure contains no default value. assign only one substitution text per symbol. procedures.PARM=&PVAL //SYSUDUMP DD SYSOUT=A // PEND //RUNIT EXEC TESTJCL.10. it only applies to subsequent statements within that PROC and subsequent nested procedures within that procedure. Summary of Rules 2 through 6 for Symbols in Nested Procedures Where the Symbol is Defined EXEC PROC Not EXEC SET Not PROC Not EXEC (Rule 4) Nested Value None Not SET Not PROC Not EXEC (Rule 5) (Rule 6) Value Used EXEC Value PROC Value (Rule 2) X (Rule 3) X 5-26 z/OS V1R3. One way to provide an override value for a symbolic in a nested procedure is to design the procedure so that it requires no assignment of default symbolic parameter values. If you assign or nullify the value for a symbol on an EXEC statement that calls a nested procedure. 3. You can use the same symbol in other nested procedures and assign it different values.

B=DEF PGM=IEFBR14 Current value of symbol: Level 0: A=123. The symbols are changed as follows: A is nullified. PROC EXEC .A=... PROC EXEC DD DD DD PEND .A=ABC. symbols A and B are defined and initialized to the values 123 and 456.. and C is defined and assigned the substitution text 789.C=undefined PGM=IEBGENER SYSOUT=A DSN=&A. Summary of Rules 2 through 6 for Symbols in Nested Procedures (continued) Where the Symbol is Defined EXEC PROC Not EXEC SET Not PROC Not EXEC (Rule 4) X X X Nested Value None Not SET Not PROC Not EXEC (Rule 5) (Rule 6) Value Used SET Value Nested Value Undefined (Rule 2) (Rule 3) Examples of Coding Symbols in Nested Procedures Example 2 The following example defines symbols A.System Symbols and JCL Symbols Table 5-1.B=DEF.A=ABC.C=undefined Level 1: A=. The level of nesting (scoping) is now 1. (The C symbol C is not yet defined. PROC EXEC DD DD DD PEND .B=456..C=GHI PROC=PROC2. B remains 456 from SET statement SET1. EXEC . A=123.&B.) The level of nesting (scoping) is 0.B=456. PROC EXEC EXEC PEND .B=456.B=DEF PGM=IEBGENER SYSOUT=A DSN=ABC.DEF.DISP=SHR SYSOUT=A. Procedures and Symbols 5-27 .B=456 A=234.C=789 The processing of symbols in MYJOB is: v When the SET statement SET1 is processed. . EXEC .C=789 Level 2: A=ABC.DISP=SHR SYSOUT=A.C=789 A=234. JOB SET .DCB=LRECL=&C PROC=PROC1.C=GHI PROC=PROC2. and C with multiple assignments in nested procedures: //MYJOB //SET1 //PROC1 //PSTEP1 //PSTEP2 // //PROC2 //P2STEP1 //SYSPRINT //SYSUT1 //SYSUT2 // //STEP1 ++PROC1 ++PSTEP1 ++PROC2 ++P2STEP1 ++SYSPRINT ++SYSUT1 ++SYSUT2 ++ ++PSTEP2 ++ //BARNEY //. Chapter 5. v EXEC statement STEP1 references in-stream procedure PROC1. B.DCB=LRECL=789 PGM=IEFBR14 PGM=IEFBR14 Level 1: A=. PEND EXEC ..C=789 Level 0: A=123. respectively.B=456.

SPACE=(TRK. namely A=ABC. (C remains 789 from EXEC statement STEP1. This statement does not change the values of the symbols. B=DEF. which are A=.LABEL=UNUSED PROC1 WORK=’’’1000.LABEL=DUMMY PGM=IEFBR14 UNIT=SYSDA. v EXEC statement BARNEY is at level 0 and the substitution texts for symbols are restored to their original values: A=123. 5-28 z/OS V1R3. which is called by PROC1 and therefore is in the scope of the original definition of the symbolic.500’’’ PROC2. The level of nesting returns to level 0. v EXEC statement PSTEP1 is processed.250’’’.(&WORK)).B=456. The level of nesting is still 1. which calls PROC1. defined by SET statement SET1. because the expansion of PROC2 is complete. the symbolic LABEL is defined as UNUSED in EXEC statement J1. and C=789. The substitution texts.250’’’. consider the following example.. However..DSN=&LABEL In the above example.WORK=&WORK PROC2.WORK=’’’500. The level of nesting is now 2. | | | | | | | | | | | | | | | | Example 2 To illustrate the scope of symbolics in the case of nested procedures.) The substitution texts are passed to procedure PROC2 referenced by EXEC statement PSTEP1. are retained throughout this level of nesting (level 0). The substitution texts for the symbols are updated again as: A=ABC and B=DEF. The symbolic LABEL is not used in PROC1 but is used in PROC2.WORK=&WORK WORK=’’’500. C=789.System Symbols and JCL Symbols PROC statement PROC1 defines the default values for the symbols A and C as A=234 and C=GHI. v The statements in procedure PROC2 are processed.B remains 456 from SET statement SET1. PROC1.0 MVS JCL Reference . The level of nesting returns to level 1. B=456. and C=789. However. and C=undefined. v EXEC statement PSTEP2 in PROC1 is processed. The values used to resolve the symbols on DD statements SYSUT1 and SYSUT2 are those from level 2. the values of the symbols return to the level 1 values held prior to procedure PROC2. where PROC1 calls PROC2: //JOB2 //J1 //J2 //PROC1 //S1 //S2 //PROC2 //P1 //DD1 JOB EXEC EXEC PROC EXEC EXEC PROC EXEC DD . these values are overridden by the values on the EXEC statement STEP1 as: A=.

All job control statements in the input stream and procedures.Chapter 6. These identifying characters are explained in Table 6-1.1) to receive the maximum amount of information. 2. Symbolic Parameters The job log listing shows the symbolic parameters in procedure statements. and 3 of the listing. 1988. and disposition of data sets. Code MSGLEVEL=(1. the linkage editor listing shows the overriding parameters. Identification of Statements in Job Log Columns 1. v For the EXEC statement that executes the linkage editor. The values assigned to the parameters are given in IEF653I messages. execution and termination of job steps and the job. Statements in Listing To identify the source and type of each statement. Overridden parameters must be shown by the program being executed: v For the EXEC statement that executes the assembler program. in the following order: v v v v JES messages and job statistics. JES and operator messages about the job’s processing: allocation of devices and volumes. Messages about job control statements. Table 6-1. the system prints certain characters in columns 1 and 2 or 1. 2. the listing does not show parameter substitutions and overrides on the statement itself. 2002 6-1 . These messages appear immediately after each statement that contains symbolic parameters. EXEC Overriding Parameters A procedure EXEC statement appears in the job log listing exactly as it appears in the procedure. Job Control Statements on the Output Listing Use the JOB statement MSGLEVEL parameter to request that job control statements be printed in the job log output listing. Source and Type of Statement and 3 Job Control Statements in the Input Stream // //* //* //* /* //* JCL statement Job control statement that is not a JCL comment statement but one that the system considers to contain only comments JES2 statement JES3 statement Certain JES3 control statements JCL comment statement Cataloged Procedure Statements © Copyright IBM Corp. the Diagnostic Cross Reference and Assembler Summary produced by the assembler program shows the overriding parameters. The listing shows all procedure statements as they appear in the cataloged procedure.

Identification of Statements in Job Log (continued) Columns 1. DD statement that was overridden (preceded by the overriding DD statement) Job control statement that is not a JCL comment statement but one that the system considers to contain only comments JCL comment statement X/ XX* XX* In-Stream Procedure Statements ++ DD statement that was not overridden and all other JCL statements. Source and Type of Statement and 3 XX DD statement that was not overridden and all other JCL statements. except the JCL comment statement. 2. except the JCL comment statement. DD statement that was overridden (preceded by the overriding DD statement) Job control statement that is not a JCL comment statement but one that the system considers to contain only comments JCL comment statement +/ ++* ++* 6-2 z/OS V1R3. Each statement appears in the listing exactly as it appears in the procedure. Each statement appears in the listing exactly as it appears in the procedure.0 MVS JCL Reference .Job Log Table 6-1.

In the latter case. The source JCL can be a JOB (located in a member of a data set defined in the IEFJOBS or IEFPDSI concatenation of master JCL) or a procedure (located in a subsystem procedure library. you can change the values of symbols to represent the older subsystem without changing the source JCL. v You can specify both static system symbols and JCL symbols in the JCL. you can specify symbols that represent test data sets. Determining Whether to Use a Started Task When you determine where and when you want a set of JCL to run. While this method afforded some advantages. these actions initiated a batch job for the started task. it will bypass the second and subsequent jobs. the system will process only the JCL associated with the first JOB statement in the procedure. Determining the Source JCL for the Started Task If you decide to use a started task. you must then determine what the source JCL will be and where the JCL will be located. SYS1. see “Using Symbols in Started Task JCL” on page 7-8. Controlling where and when a batch job runs is more complex than using a started task.Chapter 7. 2002 7-1 . it did not allow for symbolic support. or based on controls you put on the batch system. you will consider using batch jobs or started tasks. Started tasks are generally used for critical applications. A started task is a set of JCL that is run immediately as the result of a START command. some users set up batch jobs that controlled their programs. for example. The advantages to using started tasks are: v You can control where and when your set of JCL is run. Users allocated a PDS. you can have the set of JCL started at each IPL of the system. and the steps a person with operator authority (the ″you″ in this chapter) will need to perform if the decision is to use started tasks.PROCLIB). Static system symbols and JCL symbols provide additional control over JCL that is used on different systems. you can change the values of the symbols to represent production data sets without changing the source JCL. and then read the PDS member into an internal reader. Batch jobs are scheduled by a job entry subsystem (JES) and are scheduled to run based on the resources they require and their availability. – When you need to swap in an older level of a subsystem while diagnosing problems with a newer level. the source JCL for started tasks was always a procedure. For example: – When access to production data sets is controlled to protect critical business data. added JOB JCL to a member of the PDS. Note: In the past. Note: In the past. Started Tasks This chapter describes the decisions your system programmer needs to make in order for your installation to use started tasks. For example. © Copyright IBM Corp. 1988. For more information about system symbols and JCL symbols. After testing the data sets.

EREP formats the logrec data set information.) The following two sections describe how the system processes the START command (depending on whether the source JCL is a job or a procedure) and the JCL that results. you will use a procedure unless you need greater control of your started task.) In most cases..PROCLIB as follows: //IEFPROC EXEC PGM=IEFIIC JES2 automatically issues the command S INIT. the system creates a JOB statement and EXEC statement that will invoke the procedure of the same name as the member. The major advantage of using a job as the source JCL for a started task is the control provided over certain aspects of the started task. see z/OS MVS Initialization and Tuning Reference. With the output control allowed within a job. Example: //JOB1 //STEP1 START JOB parameters EXEC PGM=programname. such as: v Ability to specify accounting data For example. using SYSIN data. Note the following restriction: If you are running a started task you cannot override the PARM= parameter on the START command. to determine which resources are being used by individual users. The best candidates for procedures are started tasks that require minimal maintenance. v Control of output For example. However. you can pass data to programs in the started task.SUB=JES2 and the following JCL is created: 7-2 z/OS V1R3. v Ability to pass parameters to the started task For example.PARM=&PARM1 v Then. you may not need to change the way this currently works.. change the value of the symbolic.0 MVS JCL Reference . if the member specified does not start with a JOB statement. you need to understand the advantages of each. Started tasks are initiated by the START command which identifies the member that contains the source JCL for the task.Started Tasks For information about master JCL considerations to support started tasks.INIT. After you have identified whether the source JCL will be a job or a procedure. on the START command.PARM1=parameters START Command Processing when the Member is a Procedure During START command processing. For example. For example. (See “Determining System Services for a Started Task” on page 7-5.JES2. then determine the system services that the started task will require. you can circumvent this restriction as follows: v Make the PARM= a symbolic in the EXEC statement where it is pertinent. you can specify to receive output only if something abnormal occurs with the started task. Before determining whether you will use a job or a procedure as source JCL for a given started task.. many installations purge all output from started tasks because of the volume of output. the member INIT exists in SYS1. Example: JOB1. (See z/OS MVS System Commands for information on the START command.

CLEAR. you can choose one of the following alternatives.. Before doing so. The S INIT. determine which method you will use to convert existing procedures.ACCOUNT.REGION=5M.INIT.CDS..DISP=SHR JES2 automatically issues the command S INIT.JES2. (See “Determining System Services for a Started Task” on page 7-5.WRITE) INIT DSN=SYSTEM. given the following JOB statement and JCL in the INIT member: //INIT //JESDS //INIT //DD1 //* JOB OUTPUT EXEC DD ’accounting_info’.PARM=’/&SG.DAY= PGM=DMPCHKO. For example. To invoke as existing procedure.DISP=SHR DSN=DATAMGT.JES2.Y43DUMPS.JDATE=93119.Started Tasks //INIT //INIT JOB MSGLEVEL=1 EXEC INIT START Command Processing when the Member is a Job If a JOB statement is the first statement in the member.SG=ALL.SG=ALL.CDS. starting the MVS initiator by calling the INIT procedure.MSGLEVEL=1 JESDS=ALL.TSODUMP.DATA. When you have identified that the source JCL will be a job.DISP=SHR DSN=DATAMGT.&DAY’ DSN=JCR.DISP=SHR DSN=DATAMGT. Review Current Started Tasks Some of your existing started tasks may offer you greater benefits if the source JCL were a job.JDATE=93119.&JDATE.OUTDISP=(PURGE. output or accounting).JDATE=. the system uses the JCL provided in the member.LOAD.INIT. If the following command is issued for a started task procedure: S DUMPCHK. remove the PROC and PEND statements and add a JOB statement and any other JCL you plan to use..DISP=SHR DSN=SYS1.DAY=THURSDAY and the procedure being started is: //DUMPCHK //DUMPCHK //STEPLIB //CDS // // //LOG //SYSPRINT PROC EXEC DD DD DD DD DD DD SG=ALL.DAY=THURSDAY To convert an existing procedure to a job. Chapter 7.) Convert Procedures to Jobs (Optional) You may decide to convert some of your existing started task procedures to jobs.DISP=SHR SYSOUT=* MVS creates the following JCL to invoke this procedure: //DUMPCHK JOB MSGLEVEL=1 //STARTING EXEC DUMPCHK.PGM. and determine whether the system services that the started task will require have changed.SUB=JES2 and the preceding JCL is invoked. Started Tasks 7-3 . Review existing started tasks and identify the ones that should be a job by comparing their needs with the support provided (for example. you should understand how the started task JCL and processing will change.SUB=JES2 command now uses the source JCL and invokes the same procedure..LOG.CDS.

DISP=SHR DSN=DATAMGT. and convert the existing procedure to an in-stream procedure by adding PROC and PEND statements.PGM. along with an EXEC statement that will run the existing procedure.DAY=THURSDAY EXEC DUMPCHK Alternative 2 . For example: //DUMPCHK // JOB ’accounting_info’.&DAY’ DSN=JCR.TSODUMP. use a JOB statement in the DUMPCHK member that formerly contained only the procedure.PGM.&DAY’ DSN=JCR.CLEAR.JDATE=93119.Started Tasks v “Alternative 1 .PROCLIB or one of the other data sets in the IEFPDSI concatenation of MSTJCLxx.STCJOBS. MVS inserts a JCL SET statement after the JOB statement. MVS inserts a JCL SET statement after the JOB statement. resulting in the following JCL: //DUMPCHK // //DUMPCHK //DUMPCHK //STEPLIB //CDS // // //LOG //SYSPRINT // // JOB SET PROC EXEC DD DD DD DD DD DD PEND EXEC ’accounting_info’.LOAD. create a DUMPCHK member in SYS1.&JDATE.MSGLEVEL=(1.CDS.DISP=SHR DSN=SYS1.1) PGM=DMPCHKO.STCJOBS.MSGLEVEL=(1.Y43DUMPS.MSGLEVEL=(1.DISP=SHR DSN=DATAMGT.TSODUMP.Add the Member and Invoke a Procedure in Another DD Concatenation” on page 7-5 Note: It is important to note that if system symbols are used on the PROC statement.PARM=’/&SG.CDS.DISP=SHR DSN=DATAMGT.&JDATE.Add the Job JCL to the Existing Procedure If you do not plan to define an IEFJOBS concatenation in MSTJCLxx and the procedure DUMPCHK is already defined in SYS1.PARM=’/&SG.DISP=SHR DSN=DATAMGT. For example: //DUMPCHK //DUMPCHK //DUMPCHK //STEPLIB //CDS // // //LOG //SYSPRINT // // JOB PROC EXEC DD DD DD DD DD DD PEND EXEC ’accounting_info’. resulting in the following JCL: //DUMPCHK // // JOB ’accounting_info’. if they are not already present.DISP=SHR SYSOUT=* DUMPCHK When the START command is issued.CDS.REGION=5M.LOG.Add the Job JCL to the Existing Procedure” v “Alternative 3 .DAY=THURSDAY PGM=DMPCHKO.Y43DUMPS.REGION=5M.1) EXEC DUMPCHK When the START command is issued.0 MVS JCL Reference .1) SG=ALL.LOG.DISP=SHR DSN=DATAMGT.JDATE=93119.CDS.1) SET SG=ALL.Add the Member and JCL to the IEFJOBS-Defined Data Set If you plan to define an IEFJOBS concatenation in MSTJCLxx with a data set of SYS1. they cannot be overridden by the START command system symbols.CDS. Alternative 1 .DISP=SHR SYSOUT=* DUMPCHK 7-4 z/OS V1R3.CDS.Add the Member and JCL to the IEFJOBS-Defined Data Set” v “Alternative 2 . Place the job in this member and add an EXEC statement that will run the existing procedure.DISP=SHR DSN=SYS1.DISP=SHR DSN=DATAMGT.LOAD.CLEAR.MSGLEVEL=(1.

starts under the master subsystem. Without a SUB= keyword on the START command. that is. unless requested to start under the primary JES subsystem by setting flag SSCTUPSS in the SSCVT. resulting in the following JCL: //DUMPCHK // // JOB ’accounting_info’. you should determine under which subsystem the JCL will run. If the member name that is the target of the START command matches an entry in the started procedures table. Then code the name of the subsystem on the START command’s SUB= keyword. and other subsystems provide. MVS inserts a JCL SET statement after the JOB statement. For example: //DUMPCHK // JOB ’accounting_info’. The existing procedure will be invoked just as it was in the past. determine what services the task requires and what support the primary (job entry) subsystem.1) EXEC DUMPCHK When the START command is issued. Inform the system programmer responsible for the master JCL of your decision.MSGLEVEL=(1.JDATE=93119. (A subsystem. and the changes the master JCL will require.Started Tasks Alternative 3 . &SYSUID contains the corresponding userid from that table. v It may not use operating system restart facilities.Add the Member and Invoke a Procedure in Another DD Concatenation If you do not plan to define an IEFJOBS concatenation in MSTJCLxx and the procedure DUMPCHK is not in any of the data sets in the IEFPDSI concatenation of MSTJCLxx. (The system does not support step restarts or checkpoint restarts for started tasks. MSTR. Chapter 7. or v dynamically by the SETSSI command or IEFSSI macro.PARMLIB. create a member to contain the job and add that member to one of the data sets in the IEFPDSI concatenation and place the EXEC statement that will run the existing procedure (contained in the JES PROCLIB) in the JCL. regardless of the subsystem under which it runs. the operating system will create the started task under the primary job entry subsystem (JES2 or JES3) unless the task itself is a subsystem. Deciding Under Which Subsystem a Started Task Should Run To decide under which subsystem your started task should run. Several considerations apply: v The task can be a multi-step procedure or a job.1) SET SG=ALL. it is either defined v in the member IEFSSNxx of SYS1. Started Tasks 7-5 .MSGLEVEL=(1.DAY=THURSDAY EXEC DUMPCHK Determining System Services for a Started Task Before you begin to code the JCL for a started task. the master subsystem. is demand-selected and runs in its own address space.) v The JCL for the started task may contain the following statements: – COMMAND – ELSE – ENDIF – IF/THEN – INCLUDE – SET v The system defines the system symbolic parameter &SYSUID.) A started task.

. v You may not specify JES3-managed devices in the procedure. Running a Started Task Under a Job Entry Subsystem These additional considerations apply to a started task running under a job entry subsystem (JES): v The JCL for the started task may contain commands and JES2 JECL statements. If. v SRM determines performance characteristics based on the master subsystem. however. the started task issues a Request Job ID SSI call. It may not use JES3 JECL. (See z/OS MVS Using the Subsystem Interface for additional information about the Request Job ID call. the task must issue a Request Job ID call to the JES. v JES exits do not get control during startup processing of a started task. but these are permitted only if the JCL being started is a complete job. JES exits will get control for the minimal JCL used to construct the JES job structure. v JES exits get control (to validate and modify the task).) v The started task may include JES statements and commands with the // COMMAND statement. or in a private catalog. //MYDATA DD * These are the times that try men’s souls. Running a Started Task Under the Master Subsystem These additional considerations apply to a started task that runs under the master subsystem: v Any started task that can operate under the master subsystem can also run under the primary JES subsystem. To do so. v SMF exits. 7-6 z/OS V1R3. v A started task running under the master subsystem (SUB=MSTR) may choose to use JES services. Note. however.. JES3 cannot manage devices for tasks that run under the master subsystem. see z/OS Security Server RACF System Programmer’s Guide.0 MVS JCL Reference . v The JCL may include PROC and PEND statements if the JCL is a procedure. the following will work: //STC JOB // JCLLIB ORDER=. &SYSUID contains a null string. and the started task may have a SYSIN data set. For information on the started procedures table. v The JCL may not include a JCLLIB statement. such as IEFUJV. the system may queue or purge these statements.. /* // v The started task may have SYSOUT data sets. For example. //STEP1 EXEC PGM=. v The system will initially allocate only data sets that are cataloged in the master catalog. v The JCL may contain a JCLLIB statement. an integrated catalog facility (ICF) catalog. v You may dynamically allocate data sets that are not cataloged in the master catalog to a task running under the master subsystem during execution.Started Tasks Otherwise. v The started task may not have SYSIN data sets. get control with the subsystem shown as SYS.. that if JES is not running. v You may dynamically allocate SYSOUT data sets after successfully completing a Request Job ID SSI call. but not if it is a job.

ICF catalogs are allocated by the catalog address space (CAS). For a started task to use data sets cataloged in an ICF user catalog. it must be overridden by the JOBNAME parameter of the START command. If a name is not valid and is not overridden. either specify unit and volume information in your JCL for each data set cataloged in an ICF user catalog. Coding the JCL When you have determined what the started task source JCL will be. or else specify the program as a system task in the program properties table (PPT). Running a Started Task That Uses ICF Catalogs An integrated catalog facility (ICF) catalog describes data set attributes and indicates the volumes on which a data set is located. Chapter 7. the system ends the started task abnormally.Started Tasks v You must code a TIME= value on the EXEC statement of the procedure (such as TIME=NOLIMIT). Started Tasks 7-7 . identify and define the data sets to which you will need access. or v The started task is one of the following: – Not a subsystem – A subsystem that is used to start another task – A subsystem that is started under the primary JES subsystem If neither of those conditions is met and the task attempts to obtain catalog information. however. For information on setting up the master JCL. or catalog the data sets in the master catalog. v JOB must follow the blank(s) after the jobname. the system programmer can see z/OS MVS Initialization and Tuning Reference. and have set up the necessary support for it. a JCL error results. contact the system programmer who controls the master JCL. To avoid this potential abend. where it will run. if the jobname is not valid. Coding the JOB Statement for the Started Task If you choose to code a started task with a JOB statement. a system address space for the DFSMS/MVS DFSMSdfp catalog function. either of the following must occur: v You start the started task after the CAS is fully active. the task will end abnormally with a time-out condition. With that person. the rules are slightly different than the rules for other jobs: v The statement must start with // v The jobname is 1 through 8 non-blank characters v The jobname does not have to follow conventional JCL jobname rules (in terms of valid characters). Set Up the Master JCL Before adding or changing a started task. you are ready to code the JCL for the started task. Otherwise. and what you intend to change. This section explains how to: v Code a JOB statement for a started task v Use symbols in started task JCL. v The jobname must be followed by at least 1 blank.

and how to define and code JCL symbols in JCL.LOG on system SYS2 Example: Using JCL Symbols Suppose that processing for some JCL is charged to multiple departments.DAY=THURSDAY.SG=ALL. see “Using System Symbols and JCL Symbols” on page 5-12.SUB=CICSSYS1 In the source JCL: You can also specify system symbols in the source JCL for started tasks.PARM=CICSSYS1 The DUMPCHK procedure can also include system symbols on other statements. For example. rather than command processing.0 MVS JCL Reference .. if the substitution text for the &SYSNAME system symbol is SYS1 on the system that processes the JCL. 7-8 z/OS V1R3.LOG. This section provides examples of how to code system symbols and JCL symbols in started task JCL. Using Symbols in Started Task JCL You can code both system symbols and JCL symbols in started task JCL for both jobs and procedures..SUB=CICS&SYSNAME If the substitution text for the &SYSNAME system symbol is SYS1 on the system that processes the START command. all with different accounting numbers.DISP=. For details on how to code system symbols in JCL.Started Tasks v JOB must be followed by at least 1 blank. you might specify system symbols in DD statements that must specify data sets with unique names on different systems.JDATE=93119.PARM=CICS&SYSNAME As in the previous example for the START command. Keep in mind that system symbols in the source JCL are resolved during JCL processing. the following data set names result: SYS1.. the system substitutes the text SYS1 for the &SYSNAME system symbol.. The equivalent JCL is: //DUMPCHK PROC //S1 EXEC PGM=DUMPPROG..DAY=THURSDAY.. suppose you code the following JCL in the DUMPCHK procedure: //DUMPCHK PROC //S1 EXEC PGM=DUMPPROG. When each system processes the statement.LOG on system SYS1 SYS2. Suppose that two systems. named SYS1 and SYS2. and the JCL is to reflect the number of the department to be charged for the processing. the system substitutes the text SYS1 for the &SYSNAME system symbol. The equivalent source JCL is: //DUMPCHK JOB MSGLEVEL=1 //STARTING EXEC DUMPCHK. For example. Example: Using System Symbols Suppose you want to start a task whose source JCL is in the DUMPCHK member of a partitioned data set.SG=ALL. are to process a DUMPCHK procedure that contains the following statement: //LOG DD DSN=&SYSNAME.JDATE=93119. You can specify system symbols for the task in one of the following two ways: On the START command: Suppose you enter the following command to start the DUMPCHK task: START DUMPCHK.

B.IEFRDER DD keyword=value. The added JCL either adds a DD statement (if an IEFRDER statement is not specified in the source JCL) or modifies an existing IEFRDER DD statement in the source JCL. The IEFRDER DD statement contains all of the DD keywords specified on the START command. and CCODE) respectively. the following DD statement is added to the JCL processed by the system: //IEFPROC. the default will again be provided.ACCTNO=ACODE The system places the ACODE value in the ACCTNO field. if the procedure TEST has the following JCL coded: ACCT=&ACCTNO you can set the value of ACCT to ACODE by including the following JCL on the PROC statement of procedure TEST: ACCTNO=ACODE ACODE is provided as the default value. Using Symbols on Certain JCL Statements You might need to specify symbols within JCL for each invocation of a started task. The DD statement override allows you to determine the characteristics for one DD statement when you issue the START command.DISP=SHR creates the following DD statement: Chapter 7. ACCT=BCODE). You can have each department indicate its accounting code on the START command.DSNAME=MY. If the START command is entered again without a value.LOAD. For example: START ABLE.LOADLIB. There are three departments (A. when department A enters the following command: START TEST. Note: This example modifies the step-level accounting data defined by the EXEC statement ACCT parameter. the new value (BCODE) overrides the default (ACODE) provided in the JCL. For example. If DD statement keywords (or the positional parameters for UNIT and VOL=SER) are specified on a START command. The START command JOBACCT parameter can be used to specify job-level accounting data. START TEST. If another value is provided on the START command (for example. BCODE. You can also use symbols to set default values that can later be overridden (as needed). but only for this instance of the started task. The DD statement keyword parameters can be any keyword that is valid on the MVS JCL DD statement.. Consider the following statements for possible use of symbols: v DD statements v EXEC statements. and C) with three accounting codes (ACODE.Started Tasks Code a symbol in the source JCL to represent the different account numbers: ACCT=&ACCTNO Assume that the source JCL is a started task named TEST. Started Tasks 7-9 .. For example.

For example. These keywords will add to or override the specification of the JOB statement keywords.333.DISP=SHR Also. See the following table.A=20K Note: Select names for symbols carefully. or added to. The following table describes the actions that result from specifying various keywords and symbols on the START command: Source JCL JOB JOB JOB Keyword JOB EXEC DD Result Overrides or added to source JOB statement Placed on SET statement as a symbol Overrides.0 MVS JCL Reference . For example: START CICS.CICS. EXEC keywords that are also JOB keywords.Started Tasks //IEFPROC. see “Coding Symbols in JCL” on page 5-17 for rules to use when coding and naming symbols. The EXEC statement keyword parameters are those keywords defined for the MVS JCL EXEC statement. assume ABC is a procedure.LOADLIB.CICS. DD statement keywords can be specified on the START command for positional parameters on the DD statement in the procedure.UNIT=333.A=20K A=20K overrides A=10K on the following PROC statement: //CICS PROC A=10K // EXEC PGM=XYZ. source IEFRDER DD statement 7-10 z/OS V1R3.REGION=&A The command results in the following JCL: //CICS JOB MSGLEVEL=1 //STARTING EXEC CICS. such as TIME and REGION.MSGLEVEL=1 EXEC ABC. are treated as JOB keywords. JOB statement keyword parameters are those keywords defined for the MVS JCL JOB statement. not a job. The treatment of these keywords depends on whether the target of the START command is a job or a procedure. The following START command creates a REGION=200K parameter on the JOB statement and a DYNAMNBR=2 parameter on the EXEC statement: START ABC. In this next example.DYNAMNBR=2 The result of the command is the following JCL: //ABC //DEF JOB REGION=200K. the following command starts customer information control system (CICS) with a 20K region: START CICS.DEF.U30PAK is the same as: START CICS.REGION=200K.VOL=SER=U30PAK Using JCL Statement Keywords and Symbols to Override JCL You can use JCL statement keywords and symbols to override existing JCL.DYNAMNBR=2 You can use symbols to override other symbols that are specified in the procedure to be started.IEFRDER DD DSNAME=MY.

JOBNAME. CICSAOR2). There are four ways that you can name or identify a started task: v JOBNAME parameter Use the JOBNAME parameter on the START command to rename the started task dynamically (see the description of START in z/OS MVS System Commands for details). for example). For example. v Membername If you do not use the JOBNAME parameter on the START command and the source JCL is a procedure. CICSTOR2) and another set for CICS application-owning regions (CICSAOR1. v Source JCL If you do not use the JOBNAME parameter on the START command and the source JCL for the started task is a job. Only operators can view the identifier for a started task. you may want to name started tasks according to the system tasks they support. you probably will not want to change the name of a started task that typically has only one instance (OAM or LLA. you can name one set of jobs for CICS terminal-owning regions (CICSTOR1. v Identifier If specified on the START command. the system automatically assigns the membername as the jobname. Note: You are not required to change the name of your started task. Note: Given the capability to assign the jobname dynamically. Chapter 7. consider using unique job names for each instance of the started task. source JOB statement Placed on EXEC memname statement overriding keyword Overrides. or added to. the jobname provided on the JOB statement is assigned as the jobname.Started Tasks Source JCL Procedure Procedure Procedure Procedure JOB Keyword Other (see note 1) JOB EXEC DD Other (see note 1) Result Placed on SET statement as a symbol Overrides. the identifier is assigned to the started task. and the started task runs in a system address space that is created using common system address space procedure IEESYSAS. source IEFRDER DD statement Placed on EXEC memname statement as symbol Note 1: Other does not include the START command reserved words SUB. Started Tasks 7-11 . Naming a Started Task (Source JCL is a Job) If you plan to run the started task more than once on the same system or on different systems within a sysplex. it is recommended that you use the JOBNAME parameter instead of the identifier. and JOBACCT. or added to. limiting automation and identification by other users.

and FORCE commands). Also. STOP.0 MVS JCL Reference . RESET. 7-12 z/OS V1R3. and inform them of when they should use the overrides.Started Tasks If you decide to change the names of started tasks. educate the system operators about any overrides you want them to use on the START command for your started task. educate them on how to display information about your started task (using the DISPLAY command) as well as how to manage your started task (using the MODIFY. Setting Up Operator Education for Your Started Task When you have set up the system support necessary and have coded the JCL. CANCEL. be sure to update other applications to recognize the new names.

Note: To enter a JES2 command. and comments. © Copyright IBM Corp. is the preferred way within the job control language to specify MVS and JES commands. References For more information on MVS commands and for descriptions of their parameters. tell the operator the commands you want entered and when they should be issued. To enter a JES3 command. To synchronize a command with the job processing. parameter. and let the operator enter them from the console. The system processes each command according to installation options for both the input device from which the job was read. If you code the command statement. Therefore. v Code the command or a valid abbreviation for the command. the command will not be synchronized with the execution of any job or step in the input stream. 2002 8-1 . use the JES3 command statement described on page 28-2. see z/OS MVS System Commands. Description Syntax // command [parameter] [comments] The command statement consists of the characters // in columns 1 and 2 and three fields: operation (command). Operation Field The operation field contains the MVS operator command and is coded as follows: v Precede and follow the command with one or more blanks. and the job class. However. Do not continue a command statement. The system usually executes an in-stream command as soon as it is read. Considerations for an APPC Scheduling Environment The command statement has no function in an APPC scheduling environment. JCL Command Statement Purpose Use the JCL command statement to enter an MVS operator command through the input stream on a JES2 system. the COMMAND statement. described on page 9-1.Chapter 8. It can begin in any column. the system will check it for syntax and ignore it. 1988. use the JES2 command statement described on page 27-1.

For information about controlling command authority through initialization parameters see. the system does not issue a message to indicate that the command is not executed.JCL Command Statement Parameter Field Code any required parameters. Defaults Two ways to control command authority are through JES initialization parameters and RACF. If the erroneous statement is between two jobs in the input stream. the system shuts down NETVIEW. The system removes the comments field from the command before processing the command. The system considers IMMED to be a comment due to the delimiting blank. Example 2 // F NETVIEW. For information about controlling command authority using RACF see.0 MVS JCL Reference . If a command statement appears between jobs. A command statement should not be placed before the first JOB statement in an input stream. Examples of the Command Statement Example 1 // DISPLAY TS. Initialization and Tuning for the appropriate subsystem at your installation. If a command statement contains errors. the system displays the number and userid of all active time-sharing users of the system. 8-2 z/OS V1R3.LIST In response to this command statement. separate them with commas. When more than one parameter is coded. it is ignored.CLOSE IMMED In response to this command statement. z/OS MVS Planning: Operations. it is not executed. Comments Field The comments field follows the parameter field after at least one intervening blank. Location in the JCL A command statement can appear anywhere after a JOB statement and before the end of the job.

The system processes each command according to installation options for both the input device from which the job was read. and if necessary may be continued across multiple card images. If you code a COMMAND statement. JES2. The COMMAND statement is the preferred way within the job control language to specify commands. On a JES3 system. execution of the command will not be synchronized with the execution of any job or job step in the input stream. z/OS JES2 Commands. When the system encounters an in-stream command it issues message IEFC165I to inform the operator. including TSO. Note that some MVS subsystems. and JES3. 1988. and let the operator enter them from the console. and z/OS JES3 Commands. rather than using the JCL command statement. 2002 9-1 .’N’ otherwise. To synchronize a command with job processing. Because the system usually executes an in-stream command as soon as it is converted. is parsed and processed using code common to the other JCL statements. If the operator is requested to authorize running of commands entered through the input stream. Description Syntax //[name] COMMAND ’command command-operand’ [comments] © Copyright IBM Corp. see z/OS MVS System Commands. and REPLY id. Considerations for an APPC Scheduling Environment The COMMAND statement has no function in an APPC scheduling environment. References For more information on MVS and JES commands and for descriptions of their parameters. is not limited to 80 characters. the system does not record in a job’s JESMSGLG data set any commands you enter with the COMMAND statement. tell the operator the commands you want entered and when they should be issued. “JCL Command Statement” on page 8-1. the system then issues message IEFC166D asking for the operator to respond.Chapter 9. The operator should respond REPLY id. offer additional ways to enter system commands outside JCL. which may be preferable under certain circumstances. COMMAND Statement Purpose Use the COMMAND statement to specify an MVS or JES command that the system issues when the submitted JCL is converted. which is described in Chapter 8. That is because the COMMAND statement is in standard JCL statement format. and the job class. the system will check it for syntax and then ignore it.’Y’ if the command displayed in message IEFC165I is to be run. that is.

JK’.COMMAND The COMMAND statement consists of the characters // in columns 1 and 2 and four fields: name. If the command operand contains an apostrophe. and then operands for the command. see z/OS MVS Planning: Operations. | | | v The name may be preceded by up to 8 alphanumeric or national characters. ‘command command-operand’. column 3 must be blank. operation (COMMAND). Parameter Field The parameter field specifies the name of the command. Location in the JCL A COMMAND statement can appear anywhere in the job after the JOB statement. The maximum length of the command is 123 characters. @). The command and its operands must be preceded by at least one blank. For example: (column 71) | XYZ.PARM=’ABC.0 MVS JCL Reference . Coding the name in this way should not be confused with specifying an override. For information about controlling command authority through initialization parameters. enclosed in apostrophes. code it as two apostrophes. and comments. #. and followed by at least one blank. and then separated by a period. v The name must begin in column 3. @) characters. Operation Field The operation field consists of the characters COMMAND and must be preceded and followed by at least one blank.GHI. v The first character must be alphabetic or national ($. code it as follows: v The name should be unique within the job. If used. as can be done when coding DD statements. If a name is not coded. It can begin in any column. #. see “Continuing Parameter Fields Enclosed in Apostrophes” on page 3-5 if you need more information. see either z/OS JES2 9-2 z/OS V1R3.DEF. v The name is 1 through 8 alphanumeric or national ($. at least one blank.TIME=1440. Comments Field The comments field follows the parameter field after at least one intervening blank. Name Field A name is optional on a COMMAND statement.REGION=4 // // COMMAND ’START 096K’ | (column 16) Do not code an apostrophe in column 71. For information about controlling command authority using RACF. v The name must be followed by at least one blank. You can specify any MVS command that can be issued from the operator’s console. end the statement in column 71 and continue the statement in column 16 of the next statement. Continuation onto Another Statement: To continue a COMMAND statement. Defaults Two ways to control command authority are through RACF and through JES initialization parameters.

USER=(SCOTTC)’ The command statement must end in column 71 and be continued in column 16. // // COMMAND ’SEND ’’This message will be sent to user SCOTTC when this job is converted’’.COMMAND Initialization and Tuning Reference or z/OS JES3 Initialization and Tuning Reference. COMMAND Statement 9-3 . // COMMAND ’S VTAM’ start VTAM Example 2 The following is an example of a command that is continued with the command operand in apostrophes. Chapter 9. Examples of the COMMAND Statement Example 1 The following shows an example COMMAND statement with the START command. as appropriate for the subsystem at your installation.

9-4 z/OS V1R3.0 MVS JCL Reference .

(In a JES3 system. 2002 10-1 . 1988. and 3.Chapter 10. YOU CAN FOLLOW A COMMENT STATEMENT WITH MORE COMMENT STATEMENTS. 2. code additional comment statements. do not use a JES3 keyword as the first word in column 4 of the comment field. Description Syntax //*comments The comment statement consists of the characters //* in columns 1. The comment statement is used primarily to document a job and its resource requirements.) Do not continue a comment statement using continuation conventions. The comments field does not need to be preceded or followed by blanks. and 3 and one field: comments. Code the comments in columns 4 through 80. 2. See Table 6-1 on page 6-1 for the comment statement characters used in columns 1. Instead. Listing of Comments Statements Use the MSGLEVEL parameter on the JOB statement to request that the job log output listing contain all the JCL statements for your job. © Copyright IBM Corp. BUT IF YOU HAVE A LOT TO SAY. Location in the JCL Place a comment statement anywhere after the JOB statement. You can place a comment statement between continuations of JCL statements. or the comment might be taken for a JES3 statement. Comment Statement Purpose Use the comment statement to enter a comment on the output listing. Examples of the Comment Statement //* //* //* //* THE COMMENT STATEMENT CANNOT BE CONTINUED.

Comment Statement 10-2 z/OS V1R3.0 MVS JCL Reference .

Chapter 11. For example. for information on program control statements for the Print Services Facility (PSF) see PSF/MVS Application Programming Guide. Label Field Code a label on every CNTL statement. When present. @)characters. v The label is 1 through 8 alphanumeric or national ($. It can begin in any column. | | | Operation Field The operation field consists of the characters CNTL and must be preceded and followed by at least one blank. as follows: v The label must begin in column 3. The asterisk is required only when the statement contains comments. #. @) v The label must be followed by at least one blank. v The first character must be alphabetic or national ($. v The label may be preceded by up to 8 alphanumeric or national characters. Coding the label in this way should not be confused with specifying an override. Parameter Field The parameter field contains only an asterisk. Program control statements specify control information for a subsystem. operation (CNTL). parameter (*). CNTL Statement Purpose Use the CNTL statement to mark the beginning of program control statements in the input stream. #. The program control statements are ended by an ENDCNTL statement and are called a CNTL/ENDCNTL group. References The program control statements are documented in the publications for the subsystems. Comments Field The comments field follows the asterisk after at least one intervening blank. and comments. 1988. The * parameter is required only when comments follow. the asterisk must be preceded and followed by at least one blank. Description Syntax //label CNTL [ * comments] The CNTL statement consists of the characters // in columns 1 and 2 and four fields: label. and then separated by a period. as can be done when coding DD statements. 2002 11-1 . The DD statement that defines a data set to be processed by a subsystem must refer to the CNTL statement in order for the subsystem to use the program control statements in processing the data set. © Copyright IBM Corp.

CNTL Location in the JCL A CNTL statement must appear before the DD statement that refers to it. PIMSG. Program Control Statements Program control statements supply control information for a subsystem. You can define CNTL/ENDCNTL groups at the job level and the step level.0 MVS JCL Reference . A CNTL statement can be in a procedure and the referencing DD statement can be in the calling job step. however. In this case. If you code multiple step-level CNTL/ENDCNTL groups. and DATACK options of the PRINTDEV control statement to print the data set for DD statement AGAR on a 3800 model 3. A subsystem can require one or more program control statements. A step-level CNTL/ENDCNTL group appears within the same job step or procedure step. Example of the CNTL Statement //STEP1 //ALPHA //PRGCNTL //OMEGA //AGAR EXEC PGM=PRINT CNTL * PROGRAM CONTROL STATEMENT FOLLOWS PRINTDEV BUFNO=20. A job-level CNTL/ENDCNTL group appears before the first EXEC statement of the job. Program Control Statements in Procedures You can code symbolic parameters on program control statements in a cataloged or in-stream procedure. The CNTL and its referencing DD statement must be in the same job step or in the same cataloged or in-stream procedure step. For more information.DATACK=BLOCK ENDCNTL DD UNIT=3800-3. You can. see “Modifying OUTPUT JCL and DD Statements” on page 5-4. see PSF for OS/390 & z/OS: Customization. use the same name on a step-level CNTL label and a job-level CNTL label. the label on each CNTL statement must be unique within that step. Do not code JCL statements within a program control group. Likewise. the step-level CNTL group overrides the job-level CNTL group. You can override parameters on program control statements in a procedure. but not vice versa. Follow the rules used for overriding DD statement parameters in a procedure. multiple job-level CNTL statements must also have unique labels. The one or more statements must be immediately preceded by a CNTL statement and immediately followed by an ENDCNTL statement. For information about the PRINTDEV statement.CNTL=*.ALPHA The PSF subsystem uses the BUFNO.PIMSG=YES. 11-2 z/OS V1R3.

v A DD statement is required for each data set. it directs all references to the first DD statement in the step. © Copyright IBM Corp. see z/OS JES2 Initialization and Tuning Reference and z/OS JES3 Initialization and Tuning Reference. If only one or neither DD statement requests a JES3 or jointly-managed device. References For information about the JES initialization parameters that provide installation defaults.keyword-parameter]. parameter. however.[comments] [procstepname. the system performs device and space allocation processing for both DD statements. operation (DD). Description Syntax // [ddname ] DD [positional-parameter][. processing is as follows: – In a JES2 system: The system performs device and space allocation and disposition processing for both DD statements. however... Name Field When specified. and comments.ddname] v The DD statement consists of the characters // in columns 1 and 2 and four fields: name. If duplicate ddnames appear in a job step. For information about changing the size of the TIOT. This limit can be different depending on the installation-defined TIOT size.ddname] // [ddname ] DD [procstepname. Do not code comments if the parameter field is blank. the installation might further reduce the maximum number of DD statements per job. 2002 12-1 . – In a JES3 system: If both DD statements request JES3 or jointly-managed devices. v The ddname must begin in column 3. the system cancels the job during JES3 interpretation. DD Statement Purpose Use the DD (data definition) statement to describe a data set and to specify the input and output resources needed for the data set. see z/OS MVS Programming: Authorized Assembler Services Guide. code a ddname as follows: v Each ddname should be unique within the job step. it directs all references to the first DD statement in the step. 1988. based on the number of single DD statements allowed for a TIOT (task input output table) control block size of 64K.Chapter 12. In a JES3 system. The IBM-supplied default TIOT size is 32K. The parameters you can specify for data set definition are arranged alphabetically in the following pages. v The maximum number of DD statements per job step is 3273.

0 MVS JCL Reference . Followed by the ddname of the procedure DD statement that is to be overridden. Name Field when Overriding a Procedure DD Statement Code the following in the name field of a DD statement that is to override a procedure DD statement: 1. Followed by a period 3. Omitting the ddname Do not code a ddname in two cases: v The DD statement defines a data set that is concatenated to the data set of the preceding DD statement. For example: //PROCSTP1. Name Field when Adding a DD Statement to a Procedure Code the following in the name field of a DD statement that is to be added to a procedure: 1. v The first character must be alphabetic or national ($. Note: Allocation processing does not fail an attempt to concatenate an HFS file to another HFS file. The name of the procedure step to which the DD statement is to be added 2. #. Checks the syntax of both the procstepname qualifier and the ddname qualifier 2.DD v The ddname is 1 through 8 alphanumeric or national ($. These facilities are explained in Chapter 13. v The DD statement is the second or third consecutive DD statement for an indexed sequential data set. Issues an informational message because procstepname is coded outside of a procedure. @). the system: 1. #.ddname within a program step. The name of the procedure step that contains the DD statement to be overridden 2. Uses only the ddname qualifier as the statement ddname 3. 12-2 z/OS V1R3. Do not request concatenation of HFS files. Followed by a ddname of your choosing. or an MVS data set. even though it is impossible to read from or write to concatenated HFS files. v The ddname must be followed by at least one blank. Special ddnames Use the following special ddnames only when you want to use the facilities these names represent to the system. Adds the DD statement to the program step that contains the statement 4.DDA DD parameters Name Field when Adding a DD Statement to a Program When you code a DD statement with a ddname of procstepname. @) characters. Followed by a period 3.

this positional parameter must precede all keyword parameters. It can begin in any column. POSITIONAL PARAMETERS VALUES [ * ] [DATA] See page 12-18 or 12-47 DUMMY See page 12-110 Specifies no space allocation. no disposition processing. If coded. no I/O. Parameter Field A DD statement has two kinds of parameters: positional and keyword. DD Statement 12-3 . and. All parameters are optional.DD “Special DD Statements”. Positional Parameters A DD statement can contain one positional parameter. JESJCLIN JESJCL JESMSGLG JESYSMSG The following ddnames have special meaning to JES3. They have special meaning to JES2. do not use them on a DD statement in a JES3 system. JCBIN JCBLOCK JCBTAB JESJCLIN JESInnnn JESJCL JESMSGLG JOURNAL JST JESYSMSG JS3CATLG J3JBINFO J3SCINFO J3STINFO STCINRDR TSOINRDR Operation Field The operation field consists of the characters DD and must be preceded and followed by at least one blank. Chapter 12. JOBCAT JOBLIB STEPCAT STEPLIB SYSABEND SYSCHK SYSCKEOV SYSIN SYSMDUMP SYSUDUMP Do not use the following ddnames on a DD statement in a JES2 system. begins an in-stream data set. *: for data sets containing no JCL DATA: for data sets containing JCL PURPOSE In a non-APPC scheduling environment. for BSAM and QSAM. Leave the parameter field blank only in the following case: v When SMS will provide the necessary DD description.

-. | | FRLOG= OPTCD= {NONE} {REDO} {I } {L } {IL} {F } {FB} {V } {VB} RECFM= STRNO=number SYNAD=modulename TRACE See page 12-23 12-4 z/OS V1R3. first must be upper case A .0 MVS JCL Reference . Do not use DD statement keywords as symbolic parameters in procedures to be started by a START command from the operator console.Z.<=>?_ AMP=(subparameter) AMP=('subparameter[. if coded.') subparameters: AMORG BUFND=number BUFNI=number BUFSP=bytes CROPS= {RCK} {NCK} {NRE} {NRC} see z/OS DFSMS: Using Data Sets PURPOSE Specifies or changes an accessibility code for an ISO/ANSI/FIPS Version 3 or ISO/ANSI Version 4 tape output data set.DD POSITIONAL PARAMETERS VALUES DYNAM See page 12-113 PURPOSE (Parameter is supported to provide compatibility with previous systems. first must be upper case A .8 characters.8 characters.. KEYWORD PARAMETERS ACCODE=access-code See page 12-22 VALUES For ISO/ANSI/FIPS Version 3 tapes.) Keyword Parameters A DD statement can contain the following keyword parameters.subparameter]. You can code any of the keyword parameters in any order in the parameter field after a positional parameter. access-code: 1 . For ISO/ANSI Version 4 tapes. Completes information in an access method control block (ACB) for a VSAM data set.Z. or one of these special characters: !*″%&’()+.. number 0 9. access-code: 1 ./:.

.) } 1 .stepname. Directs output to a stacker on a 3800 Printing Subsystem.4 table-name subparameters: 1 . DD Statement 12-5 ..label } {*.254 Subsystem. Chapter 12.)} {DUMP } {(DUMP[... See page 12-31 BURST= {YES} {Y } {NO } {N } See page 12-35 CCSID=nnnnn See page 12-37 nnnnn: 1 .table-name]..255 3800 Printing 1 .65535 Specifies the coded character set identifier indicating the character code conversion performed on reads from and writes to tapes accessed in ISO/ANSI Version 4 format.table-name].(group-value[.8 group values (JES3): 1 .group-value].254 {(. For a {(nnn.DD KEYWORD PARAMETERS With SMS only: AVGREC= {U} {K} {M} VALUES U: space specified in records K: space specified in thousands of records M: space specified in millions of records YES or Y: burster-trimmer-stacker NO or N: continuous forms stacker PURPOSE Specifies a record request and the quantity of primary and secondary space specified on the SPACE parameter. Requests a checkpoint at each end-of-volume except the last. #. Requests a high-density dump on a SYSABEND or SYSUDUMP DD statement..)) } 1 .255 Specifies number of COPIES= {nnn } copies printed. Names character-arrangement tables for printing on a 3800 Printing Subsystem..procstepname. @ characters DUMP: 204-character print lines on 3800 See page 12-39 CHKPT=EOV See page 12-41 CNTL= {*.label} label: names CNTL statement stepname: CNTL in named step procstepname: step in named procedure Causes the system to execute statements following an earlier CNTL statement.. With SMS only: DATACLAS=data-class-name See page 12-50 data-class-name: installation-defined name of a data class Specifies the data class for a new data set. See page 12-43 nnn (JES2): 1 .))} nnn (JES3): 1 . CHARS= {table-name } {(table-name[.stepname.group-value].label } {*. can instead See page 12-44 specify number of copies of each page printed before the next page is printed.4 alphanumeric or $.8 group-values (JES2): 1 .(group-value[.

userid): node (1 . @ characters) nodename: node (1 . @ characters) 12-6 z/OS V1R3.9999) Unnnn: local terminal (1 .subparameter].stepname. #.1000) NnRm: node (1 . PURPOSE Completes information in data control block (DCB). 6 digits maximum for n and m combined Rnnnn or RMnnnn or RMTnnnn: remote terminal (1 .ddname } {*. @ characters) group-name: 1 or more local devices or remote stations (1 .8 alphanumeric or $.ddname} [.userid) See page 12-80 LOCAL or ANYLOCAL: local device name: named local or remote device Nnnnn: node (1 . #. See page 12-53 DEST=destination destination (JES2): LOCAL name Nnnnn NnnRmmmm to NnnnnRmm Rnnnn or RMnnnn or RMTnnnn Unnnn (node..stepname. #.0 MVS JCL Reference .. ) ) ) ) ) VALUES subparameter: see tables in DCB parameter description *.ddname: copy DCB parameter from named cataloged data set dsname: copy DCB information from named earlier DD statement stepname: DD in named step procstepname: step in named procedure DDNAME=ddname See page 12-75 ddname: names later DD statement Postpones defining the data set until later in same step: on a DD statement in the calling step or in a procedure called by the step.1000) and remote work station (1 .subparameter].DD KEYWORD PARAMETERS DCB=(subparameter[. #.8 alphanumeric or $.8 alphanumeric or $.9999). Sends a sysout data set to the specified destination.8 alphanumeric or $.userid) destination (JES3): ANYLOCAL device-name device-number group-name nodename (node.) DCB= ( ( ( ( ( {dsname } {*.ddname } {*. @ characters) device-number: 3-digit or 4-digit hexadecimal number (/ required before 4-digit number) device-name: local device (1 .procstepname. #.9999) (node. @ characters) or VM userid (1 . @ characters) and TSO/E userid (1 .8 alphanumeric or $. #.7 alphanumeric or $...

abnormal-termination-disp]) See page 12-84 VALUES status: NEW.ddname } {*. KEEP. -. PRIME.stepname. unqualified dsname: 1 . #.[V])} See page 12-97 {DSNAME} = {dsname } {DSN } {dsname(member-name) } {dsname(generation-number) } {dsname(area-name) } {&&dsname } {&&dsname(member-name) } {&&dsname(area-name) } {*. or UNCATLG PURPOSE Describes the status of the data set and tells the system to do the following with the data set after normal or abnormal termination of the step or job: delete or keep it on its volume(s). DD Statement 12-7 .normal-termination-disp] [. KEEP. MOD (for data set to be modified) normal-termination-disp: DELETE. See page 12-114 Chapter 12. ddd: day 001-366) Specifies the type of data set. Specifies an expiration date for the data set. OLD. Identifies a data set on a diskette of a 3540 Diskette Input/Output Unit. pass it to a later step. or UNCATLG abnormal-termination-disp: DELETE.8 characters V: label was verified (only on a SYSIN DD statement) Names the data set. CATLG.8 alphanumeric or $. or OVFLOW area in indexed sequential data set &&dsname: temporary data set name *.DD KEYWORD PARAMETERS DISP=status DISP=([status][.stepname. CATLG. terminates an in-stream data set.ddname: copy dsname from earlier DD stepname: DD in named step procstepname: step in named procedure NULLFILE: dummy data set DSNTYPE= {LIBRARY} {HFS } {PDS } {PIPE } See page 12-108 EXPDT= {yyddd } {yyyy/ddd} LIBRARY: partitioned data set extended (PDSE) HFS: hierarchical file system (HFS) data set PDS: partitioned data set PIPE: FIFO special file yyddd: expiration date (yy: 2-digit year. In a non-APPC scheduling environment. +0 qualified dsname: multiple names joined by periods member-name: member in PDS or PDSE generation-number: 0 or signed integer area-name: INDEX. PASS. SHR (for shared).ddname} {NULLFILE } See page 12-99 delimiter: 2 characters id: 1 . or add it to or remove it from the catalog. ddd: day 001-366) yyyy/ddd: expiration date (yyyy: 4-digit year.ddname } {*. DLM=delimiter See page 12-96 DSID= {id } {(id.procstepname. @ characters.

] [ {yyyy/ddd}] See page 12-130 bytes: number of bytes (1-255 for key-sequenced (KS). Specifies the organization of a hierarchical file.VERIFY ] VALUES fcb-name: 1 . @ characters) count: copies with overlay (0 .IN ] [. #.ALIGN ] ) } [. or data-protection image for 3525 Card Punch.NOPWREAD]) [. indicates that the data set is to be printed with the named forms overlay and can specify how many copies are to be flashed. 0-255 for sequential (PS) or partitioned (PO)) offset-to-key: position of key (0 to difference of LRECL and KEYLEN minus 1) Specifies the length of the keys in the data set. 12-8 z/OS V1R3.RETPD=nnnn ]) [.4 alphanumeric or $. Specifies when to unallocate the resources for this data set. Tells the system to hold this sysout data set until released by the operator.PASSWORD]) [.0 MVS JCL Reference .EXPDT= {yyddd }] [. #. Specifies the offset of the first byte of the record key.label-type] [. See page 12-116 FILEDATA= {BINARY} {TEXT } See page 12-119 FLASH= {overlay-name } {(overlay-name[.255) NONE: suppresses flashing PURPOSE Specifies FCB image. carriage control tape for 1403 Printer.count])} {NONE } See page 12-120 FREE= {END } {CLOSE} See page 12-122 HOLD= {YES} {Y } {NO } {N } END: unallocate at end of last step CLOSE: unallocate when data set is closed YES or Y: holds this sysout data set NO or N: allows normal processing for this sysout data set’s output class See page 12-125 KEYLEN=bytes See page 12-127 With SMS only: KEYOFF=offset-to-key See page 12-129 LABEL= ([data-set-seq-no][.DD KEYWORD PARAMETERS FCB= {fcb-name } {(fcb-name [.4 alphanumeric or $. @ characters ALIGN: operator check forms alignment VERIFY: operator verify FCB image BINARY: byte-stream file TEXT: delimited by the EBCDIC newline character overlay-name: forms overlay frame (1 . For printing on a 3800 Printing Subsystem. ]) [.OUT] [.

1 for second. or RR) data-class-name: installation. and 3 for fourth table-name) Specifies a copy-modification module in SYS1.4 decimal digits) EXPDT=yyddd: expiration date (yy: 2-digit year. opening. data-set-name: dsname of model data Specifies the attributes of set a new data set. OUTLIM=number See page 12-145 number: 1 . Chapter 12. relative position on the volume.defined name of a data class Specifies the length of the records in the data set. PURPOSE Specifies information about a data set’s label. expiration date. Specifies the management class for a new data set. bytes: length in bytes (1-32.trc])} See page 12-143 module-name: 1 . 2 for third.IMAGELIB to be used by JES to print the data set on a 3800 Printing Subsystem.DD KEYWORD PARAMETERS VALUES data-set-seq-no: data set position on tape volume (1 . password. ES.760 for PS or PO.4 alphanumeric or $. and. ddd: day 001 366) With SMS only: LIKE=data-set-name See page 12-138 LRECL=bytes See page 12-140 With SMS only: MGMTCLAS=data-class-name See page 12-141 MODIFY= {module-name } {(module-name[.16777215 logical records Limits the logical records maximum in this sysout data set. #. 1-32. @ characters trc: table-name in CHARS parameter (0 for first.4 decimal digits) label-type: SL: IBM standard labels SUL: IBM standard and user labels AL: ISO/ANSI Version 1 and ISO/ANSI/FIPS Version 3 labels AUL: user labels and ISO/ANSI Version 1 and ISO/ANSI/FIPS Version 3 labels NSL: nonstandard labels NL: no labels BLP: bypass label processing LTM: leading tapemark PASSWORD: password required to access data set NOPWREAD: password required to change or delete data set IN: only read BSAM data set opened for INOUT or BDAM data set opened for UPDAT OUT: only write to BSAM data set opened for OUTIN or OUTINX RETPD=nnnn: retention period (nnnn: 1 . DD Statement 12-9 . for a tape data set.366) EXPDT=yyyy/ddd: expiration date (yyyy: 4-digit year. ddd: day 001 .761 for KS.

. normal-termination-disposition: KEEP. SIXOTH.name *.reference]. ORDWR file-option for status group: OAPPEND.stepname. DELETE file-access-attribute for file owner class: SIRUSR.. SIWOTH.) See page 12-155 pathname: pathname for a file Specifies the name of an HFS file. SIWGRP. Tells the system to keep or delete the file after the job step ends.file-access-attribute]. DELETE abnormal-termination-disposition: KEEP.. SIRWXU file-access-attribute for file group class: SIRGRP.stepname.name See page 12-146 PATH=pathname See page 12-150 PATHDISP=(normal-termination-disposition. SIRWXG file-access-attribute for file other class: SIROTH. OTRUNC Specifies access and status for a file. ONONBLOCK.. QNAME=procname[. PROTECT=YES See page 12-162 Requests that RACF create a discrete profile to protect a data set on direct access or a tape volume. OWRONLY. procname: names a TPROCESS macro that defines a destination queue for the messages tcamname: names a TCAM job or started task to process the messages Indicates that this data set contains TCAM messages.tcamname] See page 12-164 12-10 z/OS V1R3. reference: *.. ONOCTTY. SIWUSR. SIRWXO file-access-attribute to set process IDs: SISUID.name *.) See page 12-158 file-option for access group: ORDONLY. SISGID PATHOPTS=file-option PATHOPTS=(file-option[.)} VALUES name: names earlier OUTPUT JCL statement stepname: OUTPUT JCL in named step procstepname: step in named procedure PURPOSE Associates this sysout data set with one or more OUTPUT JCL statements. Specifies file access attributes when creating an HFS file.0 MVS JCL Reference .. SIXGRP. OCREAT. SIXUSR.file-option].procstepname. OEXCL.DD KEYWORD PARAMETERS OUTPUT= {reference } {(reference[. abnormal-termination-disposition) See page 12-153 PATHMODE=file-access-attribute PATHMODE=(file-access-attribute [.

ddname} See page 12-170 RETPD=nnnn See page 12-172 RLS= {NRI} {CR } See page 12-174 With SMS only: SECMODEL=(profile-name[.stepname.GENERIC]) See page 12-176 SEGMENT=page-count See page 12-177 page-count: number of pages of a sysout data set Specifies the number of pages produced for the current segment of the sysout data set before the data set is spun-off for output processing.ddname } {*.procstepname. Chapter 12. Specifies the record-level sharing protocol to be used with a VSAM data set. Specifies a RACF profile to be used for a new data set.ddname } {*. Specifies the attributes of a new data set by referring to a previous DD statement.stepname. Organization of records: KS: key-sequenced ES: entry-sequenced RR: relative record LS: linear space Specifies the organization of the records in a VSAM data set. DD Statement 12-11 .DD KEYWORD PARAMETERS RECFM= {F } {FB } {FBS} {FS } {V } {VB } {VBS} {VS } {U } VALUES Record format is: F: fixed length B: blocked S: spanned V: variable length U: undefined length Control characters are: A: ISO/ANSI code M: machine code PURPOSE Specifies the format and characteristics of the records in a data set. (JES2 only) profile-name: name of model profile GENERIC: model is generic profile NRI: can read uncommitted changes CR: can read only committed changes Referenced DD statement: ddname: unqualified name stepname: qualified by step name procstepname: step in procedure nnnn: number of days (0-9999) Specifies the retention period for a new data set. [A] [M] See page 12-165 With SMS only: RECORG= {KS} {ES} {RR} {LS} See page 12-169 With SMS only: REFDD= {*.

second-qty] [. ] {blklgth. } [.0 MVS JCL Reference .} {reclgth.(.. ] VALUES PURPOSE ] 12-12 z/OS V1R3. (primary-qty. cylinders or blocks to be allocated second-qty: additional tracks or cylinders to be allocated.ALX ] [.ROUND] ) [.CONTIG] [.directory])) [.directory)) See page 12-178 TRK: allocation in tracks CYL: allocation in cylinders blklgth: allocation in average blocks.DD KEYWORD PARAMETERS For system assignment of space: SPACE=({TRK.index To request directory blocks (with SMS only): SPACE=(.65535 reclgth: allocation in average records (SMS) primary-qty: number of tracks.directory]) [.MXIG ] [. [.index ] [. if more are needed directory: number of 256-byte records for PDS directory index: tracks or cylinders for index of indexed sequential data set RLSE: release unused space when data set is closed CONTIG: contiguous primary allocation MXIG: allocation in largest available space (not supported for indexed sequential data sets) ALX: allocation of up to 5 separate contiguous primary quantities ROUND: allocation by block length rounded to integral cylinders ABSTR: allocation at the specified address address: track number of first track to be allocated Requests space for a new data set on direct access storage.} To request specific tracks: SPACE= (ABSTR. 1 .RLSE] {CYL.address [. ] [. } (primary-qty [.

@ characters form-name: 1 ..9 writer-name: 1 .subsystem-parameter].4 alphanumeric or $.VERIFY])} { [. character-set-code: 1 . @ characters FOLD: operator load chain or train in fold mode VERIFY: operator verify UCS image Specifies universal character set.FOLD] [. #.Z.) See page 12-193 subsystem-name: identifies the subsystem subsystem-parameter: specifies information for the subsystem class: A .) See page 12-190 SYSOUT=class SYSOUT=([class] [. @ characters (JES2 only) *: same output class as MSGCLASS parameter on JOB statement Requests a subsystem to process this data set. indicates that this DD statement begins an in-stream data set. Specifies the storage class for a new data set. See page 12-187 With SMS only: STORCLAS=storage-class-name See page 12-189 SUBSYS= (subsystem-name ) ([. 0 .4 alphanumeric or $. #. Defines this data set as a sysout data set and (1) assigns it to an output class.DD KEYWORD PARAMETERS SPIN= {UNALLOC} {NO } VALUES UNALLOC: the data set is available for printing immediately upon unallocation NO: the data set is available for printing at the end of the job storage-class-name: installationdefined name of a storage class PURPOSE Specifies that the output for a sysout data set is available for printing immediately upon unallocation or at the end of the job.4 alphanumeric or $.writer-name] [. and (4) refers to the code-name of a JES2 /*OUTPUT statement. #. (2) requests external writer to process it.indicates that this data set is coming from or going to a TSO/E userid. ] } See page 12-200 Chapter 12.form-name]) [.8 alphanumeric or $. In a foreground job. @ characters code-name: 1 .. #. In a batch job. ] SYSOUT=* SYSOUT=(. UCS= {character-set-code } {(character-set-code [.INTRDR ] [. or characterarrangement table for a 3800 Printing Subsystem. TERM=TS See page 12-199 The TERM parameter has no function in an APPC scheduling environment. DD Statement 12-13 . (3) identifies print or punch forms. print train.code-name] [.

] [REF=dsname ] [REF=*. ] [device-type ] [group-name ] UNIT=AFF=ddname See page 12-203 VALUES device-number: 3-digit or 4-digit hexadecimal number (/ required before 4-digit number and optional before 3-digit number) PURPOSE Requests allocation to a specific device.serial-number].8 alphanumeric or $. mounting.ddname ] [REF=*.ddname ] See page 12-210 12-14 z/OS V1R3.DEFER]) [/ddd ] [. Also device-type: machine type and model can specify how many devices and deferred group-name: 1 .0 MVS JCL Reference .)]) {VOL } [.ddname ] [REF=*.P ] [/dddd ] [. or the same device(s) as another data set. a type or group of devices.59 P: allocate same number of devices as volumes for parallel mount DEFER: defers mounting until open AFF=ddname: requests allocation of same devices as for DD statement ddname {VOLUME}=([PRIVATE] [. #.ddname ] [REF=*.RETAIN] [. @ characters unit-count: 1 .unit-count][.DD KEYWORD PARAMETERS UNIT= ([ddd ] [.procstepname.volume-seq-no][.procstepname.][SER=(serial-number[..stepname.volume-count][. ] [..stepname.

255 of existing multivolume data set volume-count: maximum volumes for output data set (1 .255) serial-number subparameters (1 255): volume serial numbers (1 . these appear after the EXEC statement for the step. or special characters) REF: copy volume serial numbers from another data set or earlier DD statement. these appear after the JOB statement and before the first EXEC statement. Chapter 12. When Overriding or Adding to Procedures Place DD statements that override. nullify. or copy storage class for SMS-managed data sets dsname: from cataloged or passed data set ddname: from named earlier DD statement stepname: DD in named step procstepname: step in named procedure PURPOSE Identifies the volume(s) on which a data set resides or will reside. Last in the calling step are any DD * or DD DATA statements with their in-stream data. Place overriding and nullifying DD statements first.DD KEYWORD PARAMETERS VALUES PRIVATE: requests a private volume RETAIN: requests private tape volume remain mounted and unwound or requests public tape volume be retained at device volume-seq-no: begins processing with volume 1 . or add parameters immediately following the EXEC statement that calls the procedure. $.6 alphanumeric. #. followed by all added DD statements. Some DD statements define data sets for the job. in a cataloged procedure step. the JOBLIB DD statement. Comments Field The comments field follows the parameter field after at least one intervening blank. DD Statement 12-15 . To override more than one DD statement in a procedure. place the overriding DD statements in the same order as the overridden DD statements in the procedure. @. or in an in-stream procedure step. for example. do not code any comments. If you do not code any parameters on a DD statement. Location in the JCL Most DD statements define data sets to be used in a job step.

and are accessed by BSAM. Note that you cannot concatenate output data sets. When data sets are concatenated. the data set with the largest block size must appear first in the concatenation.) Block Sizes for Concatenated Data Sets Concatenated data sets can have different block sizes. and are accessed by QSAM and use system-created buffers. regardless of what the actual block size of this data set is. In a few cases. the system obtains information only from the first data set defined in the sequence of DD statements.). see z/OS DFSMS: Using Data Sets. the BLKSIZE obtained is the largest in the concatenation. (Note that you can state a value equal to the largest logical record length for LRECL on the first DD statement.) References to Concatenated Data Sets If you make a backward reference to a concatenation (using *.DD Concatenating Data Sets You can logically connect or concatenate sequential or partitioned (PDSs or PDSEs) input data sets for the duration of a job step. the forward reference resolves to the first data set in the concatenation. under certain conditions. Coding a Concatenation To concatenate data sets. Logical Record Lengths for Concatenated Data Sets Concatenated data sets with format-V records can have different logical record lengths as long as the data set with the largest logical record length appears first in the concatenation. v Sequential data sets that are DASD-resident. 12-16 z/OS V1R3. and partitioned data sets extended (PDSEs) without member names coded on the DD statements. these are: v Partitioned data sets (PDSs). v Sequential data sets that are DASD-resident or in-stream. or in-stream. determine an optimum block size. (Note that you can state a value equal to the largest block size for BLKSIZE on the first DD statement. If you do not specify a block size. omit the ddnames from all the DD statements except the first in the sequence. For detailed information about system-determined block size. The data sets are processed in the same sequence as the DD statements defining them. Devices for Concatenated Data Sets Concatenated data sets can reside on different devices and different types of devices. from the first data set in the concatenation.0 MVS JCL Reference . see z/OS DFSMS: Using Data Sets. (This may require internal DCB modifications. regardless of what the actual logical record length of this data set is. the system can. For details on concatenating data sets. For these data sets. tape-resident. and the system obtains these attributes. Each of the concatenated data sets can reside on a different volume. Note that this block size can cause invalid attribute combinations when combined with the attributes obtained from the first data set in the concatenation. see z/OS DFSMS: Using Data Sets. except for block size. If you make a forward reference to a concatenation (using the DDNAME parameter).) Certain data sets can be concatenated in any order of block size. they are treated as having like attributes.

IEBGENER will recognize TSTDATA1 and TSTDATA2 as input. SYSUT1 will resolve to the first data set. If there are any DD statements between the forward reference and the concatenation. TSTDATA1.INPUT DD // DD PGM=IEFBR14 DDNAME=INPUT DSN=MYDSN2. the last DD statement preceding the concatenation. will be appended to SYSUT1 as well.DISP=SHR PGM=IEFBR14 DDNAME=INPUT DSN=MINE2. //TPROC PROC //S1 EXEC //DD1 DD //DD2 DD //DD3 DD //S2 EXEC //DDA DD //DDB DD //DDC DD // PEND //STEP1 EXEC //INPUT DD // DD //S2. If a concatenated DD is added to a procedure. For example: //STEP1 //SYSUT1 //SYSPRINT //SYSUT2 //INPUT // //SYSIN EXEC DD DD DD DD DD DD PGM=IEBGENER DDNAME=INPUT SYSOUT=* SYSOUT=* DSN=TSTDATA1. DDA resolves to data set MINE1 and data set MINE4 is concatenated to data set MINE3. SYSUT1 will resolve to the first data set. In this example. The following example illustrates this. the rest of the data sets in the concatenation are appended to the first data set in the concatenation. the remaining concatenated data sets will be concatenated to the last DD in the step named in an override or addition (or to the first step if no step was named in an override or addition).DISP=SHR DSN=MYDSN4. DD1 resolves to data set MYDSN1 and data set MYDSN4 is concatenated to data set MYDSN3. //STEP1 //SYSPRINT //SYSUT1 //INPUT // //SYSUT2 //SYSIN EXEC DD DD DD DD DD DD PGM=IEBGENER SYSOUT=* DDNAME=INPUT DSN=TSTDATA1. the second data set in the DDNAME forward reference INPUT. TSTDATA1.DISP=SHR DSN=MYDSN3. v In step S2. The following example illustrates this.DD If there are no DD statements between the forward reference and the concatenation. TSTDATA2 will be appended to SYSUT2.DISP=SHR DSN=MINE4.DISP=SHR TPROC DSN=MYDSN1.DISP=SHR DSN=MINE1.DISP=SHR DSN=TSTDATA2. IEBGENER will recognize only TSTDATA1 as input. the rest of the data sets in the concatenation are appended to the last DD statement preceding the concatenation. DD Statement 12-17 . defined by the DDNAME forward reference INPUT. Chapter 12.DISP=SHR DSN=MINE3. the result of the DDNAME forward reference INPUT is: v In step S1.DISP=SHR SYSOUT=* DUMMY In this example. Note that this may result in these concatenated DDs being added to an unexpected DD.DISP=SHR DUMMY In the preceding example. TSTDATA2. defined in the DDNAME forward reference INPUT.DISP=SHR In this example.DISP=SHR DSN=TSTDATA2.

DAY DD DSNAME=DESK. Example 3 //PAYROLL. Write to the new DD name before reading from DD4. do not concatenate other data sets after it. you can code them between DD statements. (Comments are the only exception.PASS) // DD DSNAME=GROUP2.DD4 DD DSNAME=TEXT. this statement overrides parameters on DD statement DAY. the system adds this statement to procedure step PAYROLL for the duration of the job step..DISP=SHR In this example.DISP=SHR In this example. The ddname is omitted from the second DD statement in order to concatenate data set ART to data set TEXT. Example 4 //STEPSIX.PASS) // DD DSNAME=ART. the system concatenates the data sets defined in these statements. * Parameter Parameter Type Positional. Because the system does not allow you to write to a concatenation of data.) For example.DD Do Not Concatenate Data Sets after a DUMMY Data Set If you define a data set using the DUMMY parameter.DISP=SHR In this example. because the ddname is missing from the second DD statement.. you need another data set with DISP=OLD in order to read from TEXT. Wrong!!! SET statement not allowed (this comment IS allowed) DD DSN=C Examples of DD Statements and ddnames Example 1 //MYDS //A DD DSNAME=REPORT DD DSNAME=FILE Example 2 //INPUT DD DSNAME=FGLIB.DISP=(OLD. do not code a SET statement as follows: //DD1 // // //* // DD DSN=A DD DSN=B SET . the second data set is concatenated to the first. the system takes an end-of-data set exit immediately and ignores any data set that might be concatenated after the dummy. Do Not Code Other Statements Between Concatenated DD Statements Do not code other types of statements between two or more concatenated data definition (DD) statements.0 MVS JCL Reference . When the processing program asks to read a dummy data set. optional Purpose 12-18 z/OS V1R3.DISP=(NEW. and both are added to procedure step STEPSIX. If the step does not contain DD statement DAY. if procedure step PAYROLL contains a DD statement named DAY.

Considerations for an APPC Scheduling Environment The * parameter has no function in an APPC scheduling environment. the records may be in any code such as EBCDIC. Note: If the input stream is from NJE (network job entry). DD Statement 12-19 .. JES uses installation defaults specified at initialization. the system will check it for syntax and otherwise ignore it. You can submit a data set to JES2 or JES3 with a record length greater than 80 bytes by submitting the following JCL: //SUBMIT JOB //S1 EXEC //SYSPRINT DD . Relationship to Other Parameters You may specify the following DD parameters with the DD * and DD DATA parameters.. The data records end when one of the following is found: /* in the input stream // to indicate another JCL statement The two-character delimiter specified by a DLM parameter on this DD statement The input stream runs out of card images Use a DATA parameter instead of the * parameter if any of the data records start with //.. Syntax //ddname DD *[. DCB=BLKSIZE DCB=BUFNO DCB=LRECL DCB=DIAGNS DCB=MODE=C DLM DSNAME LIKE LRECL REFDD VOLUME=SER DSID Restrictions When Coding LRECL If you code LRECL with the * parameter. All other parameters are either ignored or result in a JCL error. If you code *. [comments] Defaults When you do not code BLKSIZE and LRECL. PGM=IEBGENER SYSOUT=* Chapter 12.DD: * Use the * (asterisk) parameter to begin an in-stream data set. JES uses the size specified at the sending node.. you cannot submit a data set to JES3 with a record length greater than 80 bytes.parameter]. The data records immediately follow the DD * statement. You cannot use the TSO/E SUBMIT command to submit a data set to JES2 or JES3 with a record length greater than 80 bytes.

DD: * //SYSIN //SYSUT2 //SYSUT1 DD DD DD DUMMY SYSOUT=(. DSNAME. When you call a procedure. v Code DCB=LRECL=nnn. the records are truncated to 80 bytes. Location in the JCL A DD * statement begins an in-stream data set.) JES3 fails any job that exceeds this limit. (The default LRECL is 80 bytes. Precede each group with a DD * or DD DATA statement and follow each group with a delimiter statement. you can specify DSID and VOLUME=SER parameters to indicate that a diskette data set is to be merged into the input stream following the DD statement. you can add input stream data to a procedure step by placing in the calling step one or more DD * or DD DATA statements. minus 44.DISP=SHR In this example. Omitted Data Delimiters 12-20 z/OS V1R3. Relationship to Other Control Statements Do not refer to an earlier DD * statement in DCB.LONGDATA.LONGDATA. each followed by data. (For example.) For 3540 Diskette Input/Output Units VOLUME=SER. See 3540 Programmer’s Reference. if the buffer size is 4084. For JES3 SNA RJP Input v The only parameters you can specify for JES3 systems network architecture (SNA) remote job processing (RJP) input devices are BLKSIZE and LRECL. the record length limit is the size of the installation-defined spool buffer. In-stream Data for Cataloged or In-stream Procedures A cataloged or in-stream procedure cannot contain a DD * statement. and DSID on a DD * statement are ignored except when they are detected by a diskette reader as a request for an associated data set. If the records longer than 80 bytes include JCL to be transmitted to a remote system using JES3 // XMIT or //*ROUTE XEQ.JCL. IBMUSER. BUFNO. In a JES3 system. or VOLUME parameters on following DD statements. where nnn is 1 to 255 when SYSIN data records are greater than 80 bytes. Multiple In-Stream Data Sets for a Step You can code more than one DD * or DD DATA statement in a job step in order to include several distinct groups of data for the application program. or JES2 /*ROUTE XEQ or /*XMIT with JES3 in the network.JCL contains the data with a record length greater than 80 bytes. the record length limit is 4040. On a DD * or DD DATA statement processed by a diskette reader.INTRDR) DSN=IBMUSER.0 MVS JCL Reference .

DD Statement 12-21 . Unread Records If the processing program does not read all the data in an in-stream data set.INPUT1 is to be used by the cataloged procedure step named SETUP.DD: * If you omit a DD statement before the input data. If you omit a delimiter statement after input data. The input data defined by DD statement SETUP.Ddsnumber.INP DD * . data . Chapter 12. data . the system skips the remaining data without abnormally terminating the step. /* This example defines an in-stream data set with INP3 as the last qualifier of the system-generated data set name. The input data defined by DD statement PRINT. //INPUT2 /* This example defines two groups of data in the input stream. .FRM DD UNIT=180 //PRINT.LABEL=(.INP3 is generated. .DSNAME=&&INP3 . DD * . the system ends the data when it reads a JCL statement or runs out of card images. Example 2 //INPUT3 DD *. data . the system provides a DD * statement with the ddname of SYSIN. Examples of the * Parameter Example 1 //INPUT1 DD * .jobid. . data . A name such as userid. /* //PRINT. Example 3 //STEP2 EXEC PROC=FRESH //SETUP. .jobname. /* This example defines two groups of data in the input stream.NSL) //SETUP.INPUT1 DD * .INP is to be used by the cataloged procedure step named PRINT.WORK DD UNIT=3400-6. data .

In ISO/ANSI/FIPS Version 3 the first character must be an upper case letter from A through Z. < = > ? and _ . If the first character is other than those allowed. Also z/OS DFSMS Access Method Services for Catalogs. References For more information on ISO/ANSI/FIPS Version 3 and ISO/ANSI Version 4 tape data sets. Enclose the ACCODE in apostrophes if you specify special characters. . see z/OS DFSMS: Using Magnetic Tapes. the system issues messages and may abnormally terminate the job step. the job step’s program can use the data set. For example. A data set protected by an accessibility code should reside only on a volume protected by RACF or a volume accessibility code. An installation-written file-access exit routine verifies the code after the code is written to tape. the installation does not give control to the file-access exit routine. ACCODE=’AB/CD’. or one of the special characters ! * ″ % ’ ( ) + . In ISO/ANSI Version 4 the first character must be an upper case letter from A to Z. to specify DAY’SEND. For example. Note: ACCODE is supported only for ISO/ANSI/FIPS Version 3 and ISO/ANSI Version 4 tape data sets.DD: ACCODE ACCODE Parameter Parameter Type Keyword. ACCODE is ignored for all label types except AL and AUL label tapes. / : . The volume should not contain any unprotected data sets. Defaults If you do not specify an accessibility code on a DD statement that defines an ISO/ANSI/FIPS Version 3 or ISO/ANSI Version 4 tape data set.0 MVS JCL Reference . Note: ISO/ANSI/FIPS Version 3 and ISO/ANSI Version 4 use only the first character as the accessibility code. If the code is authorized. if not. use ACCODE=’DAY’’SEND’.. the installation can use the other seven characters. Syntax ACCODE=access-code Subparameter Definition access-code Specifies an accessibility code. number from 0 to 9. Specify two apostrophes if you include an apostrophe as a special character. optional Purpose Use the ACCODE parameter to specify or change an accessibility code for an ISO/ANSI/FIPS Version 3 or ISO/ANSI Version 4 tape output data set. the system writes 12-22 z/OS V1R3. The access code is 1 through 8 characters.

AL). The ACB is a control block for entry-sequenced. References For more information about VSAM data sets. Chapter 12. The data set TAPEDS is first on the tape.ACCODE=Z In this example. AMP is supported only for VSAM data sets.VOLUME=SER=T49850. Overrides If PASSWORD or NOPWREAD is coded on the DD statement LABEL parameter. password access overrides the ACCODE parameter. see z/OS DFSMS: Using Data Sets. the system prevents access to any ISO/ANSI/FIPS Version 3 or ISO/ANSI Version 4 tape volume. AMP Parameter Parameter Type Keyword. key-sequenced. A blank authorizes unlimited access to the tape’s data sets unless access is limited by RACF data set protection. the DD statement ACCODE parameter specifies an accessibility code of Z for tape volume T49850. and relative record data sets. Note: With SMS. you can create new VSAM data sets with JCL DD statements. and z/OS MVS JCL User’s Guide. Example of the ACCODE Parameter //TAPE // DD UNIT=2400. optional Purpose Use the AMP parameter to complete information in an access method control block (ACB) for a VSAM data set.DD: ACCODE an ASCII blank character (X'20') in the tape label. The volume has ISO/ANSI/FIPS Version 3 or ISO/ANSI Version 4 labels. DD Statement 12-23 . If the installation does not supply a file-access exit routine. z/OS DFSMS Macro Instructions for Data Sets. LABEL=(. See the DATACLAS parameter (described on page 12-50) and the RECORG parameter (described on page 12-169).DSNAME=TAPEDS.

subparameter]..DD: AMP Syntax AMP=(subparameter) AMP=(’subparameter[.....’) AMP=’subparameter[.’ The subparameters are: AMORG BUFND=number BUFNI=number BUFSP=number CROPS= [NCK] [NRC] [NRE] [RCK] | | FRLOG= {NONE} {REDO} OPTCD= {I } {L } {IL} RECFM= [F ] [FB] [V ] [VB] STRNO=number SYNAD=module TRACE=(subparameter[.0 MVS JCL Reference .subparameter].subparameter].) ACCBIAS=[USER ] [SYSTEM] [DO ] [DW ] [SO ] [SW ] SMBDFR= {Y | N} SMBHWT= nn SMBVSP= {nnK | nnM} RMODE31=[ALL ] [BUFF] [CB ] [None] 12-24 z/OS V1R3..

RECFM=FB’. If you code a symbolic parameter on the AMP parameter. If data access is through the ISAM interface program. specify for the BUFNI number 1 more than the STRNO number. It is unnecessary to code AMP=AMORG for a data set that is SMS-managed. if you omit both BUFNI and STRNO. This value overrides the BUFND value specified in the ACB or GENCB macro. enclose the subparameter in apostrophes inside the parentheses. Specify a BUFNI number 2 or more greater than the STRNO number to simulate having intermediate levels of the index resident. Multiple Subparameters: When a parameter contains more than one subparameter. Code AMORG when data set access is through an ISAM interface program and the DD statement contains VOLUME and UNIT parameters.OPTCD=IL. BUFND must be at least 2. VSAM uses 1 index buffer. or specify 2 if you omit STRNO. Null Positional Subparameters: Null positions in the AMP parameter are invalid. ’STRNO=6’) Subparameter Definition AMORG Indicates that the DD statement describes a VSAM data set. DD Statement 12-25 . BUFND=number Specifies the number of I/O buffers that VSAM is to use for data records.STRNO=4'). AMP=('STRNO=4'). This value overrides the BUFNI value specified in the ACB or GENCB macro.DD: AMP Parentheses: Parentheses are required only when you are continuing the statement. BUFNI=number Specifies the number of I/O buffers that VSAM is to use for index records. For example. separate the subparameters by commas and enclose the subparameter list in apostrophes inside the parentheses. to simulate having the highest level of an ISAM index resident. Enclose all the subparameters on each statement in apostrophes. Continuation onto Another Statement: Enclose the subparameter list in only one set of parentheses. An SMS data set is cataloged at allocation. BUFSP=number Specifies the maximum number of bytes for the data and index buffers in the Chapter 12. VSAM uses as many index buffers as the STRNO subparameter number. For example: //DS1 // DD DSNAME=VSAMDATA. all information pertaining to the data set creation (such as RECORG) must be fully defined at allocation to ensure the success of the job.AMP=(’BUFSP=200. If you omit STRNO. The minimum is 1 plus the STRNO subparameter number. Special Characters: When a parameter contains only one subparameter and that subparameter contains special characters. or provides a value if one is not specified. the system uses the STRNO number plus 1. For example. If you omit BUFND from AMP and from the ACB macro instruction. AMP=('AMORG. or provides a value if one is not specified. you can code the symbolic parameter in apostrophes. Note: Do not enclose a subparameter in a subparameter list in apostrophes. End each statement with a comma after a complete subparameter. If you omit BUFNI from AMP and from the ACB macro instruction.

the catalog value will be used.0 MVS JCL Reference . REDO Enables the VSAM batch logging function for you VSAM data set. the BUFFERSPACE number overrides the BUFSP number. If the CROPS subparameter is omitted. IEC161I is issued. the system ignores the option. NRC Requests neither a data-erase test nor data set post-checkpoint modification tests. I Requests. RCK Requests a data-erase test and data set post-checkpoint modification tests. Notes: 1. such as the data-erase test for an input data set. If FRLOG is omitted. Changes made by applications will be written to the MVS log stream indicated on the LOGSTREAMID parameter. NCK Requests no data set post-checkpoint modification tests. see z/OS DFSMS Checkpoint/Restart. | | | | | | | | | | | | | | | | | FRLOG=NONE FRLOG=REDO Specifies if VSAM batch logging will be performed for your VSAM data set. This value overrides the BUFSP value specified in the ACB or GENCB macro. NRE Requests no data-erase test. There is no default JCL value for FRLOG. 2. If you request an inappropriate option. 12-26 z/OS V1R3. If BUFSP specifies fewer bytes than the BUFFERSPACE parameter of the access method services DEFINE command. or provides a value if one is not specified.DD: AMP user area. If LOGSTREAMID is not specified. Changes made by applications will not be written to the MVS log stream indicated on the LOGSTREAMID parameter. the LOGSTREAMID parameter must be specified for the VSAM data set(s). NONE Disables the VSAM batch logging function for your VSAM data set. For more information. RCK is the default. CROPS=NCK CROPS=NRC CROPS=NRE CROPS=RCK Requests a checkpoint/restart option. that the ISAM interface program is not to write into the data set records marked for deletion by the processing program. OPTCD=I OPTCD=L OPTCD=IL Indicates how the ISAM interface program is to process records that the step’s processing program flags for deletion. If FRLOG=REDO is specified. when the data control block (DCB) contains OPTCD=L.

RECFM=F RECFM=FB RECFM=V RECFM=VB (For data sets with SMS. If no RECFM is specified in the AMP parameter or in the DCB.DD: AMP If AMP=('OPTCD=I') is specified without OPTCD=L in the DCB. You must code this RECFM subparameter when the record format is not specified in the DCB. IL Requests that the ISAM interface program is not to write into the data set records marked for deletion by the processing program. Note: This parameter has the same meaning and restrictions for the ISAM interface as it has for ISAM. While it was not required in the ISAM job control language. you should code it in the AMP parameter. If the program creates subtasks. DD Statement 12-27 . This value overrides the STRNO value specified in the ACB or GENCB macro. Note: This parameter has the same meaning and restrictions for the ISAM interface as it has for ISAM. V is the default. Indicates fixed-length records. If the processing program requests blocked records. the ISAM interface program sets the overflow-record indicator for each record to indicate that each is being passed to the program unblocked. AMP=('OPTCD=IL') has the same effect as AMP=('OPTCD=I') coded with OPTCD=L in the DCB. If the processing program had read the record for update. All VSAM requests are for unblocked records. If records marked for deletion are to be kept but OPTCD=L is not in the DCB. V VB Indicates blocked variable-length records. While it was not required in the ISAM job control language. L Requests that the ISAM interface program is to keep in the data set records marked for deletion by the processing program. add together the number of requests for each subtask plus 1 for each subtask that sequentially processes the data set. Chapter 12. STRNO=number Indicates the number of request parameter lists the processing program uses concurrently. The number must at least equal the number of BISAM and QISAM requests that the program can issue concurrently.) Identifies the ISAM record format used by the processing program. AMP=('OPTCD=L') is required. the ISAM interface program deletes the record from the data set. the system ignores deletion flags on records. Indicates variable-length records. or provides a value if one is not specified. F FB Indicates blocked fixed-length records. see the DD RECFM parameter described on page 12-165. you should code it in the AMP parameter.

SO SMB with sequential optimization. the system ignores the AMP SYNAD parameter. See OFSMS/MVS Using Data Sets for details on System-Managed Buffering. SW SMB weighted for sequential processing. DO SMB with direct optimization. which you use to obtain diagnostic information during VSAM processing. The SYNAD parameter overrides a SYNAD exit routine specified in the EXLST or GENCB macro instruction that generates the exit list. and PARM2.) Indicates that the generalized trace facility (GTF) executes with your job to gather information about the opening. TRACE=(subparameter[. PARM1. The address of the intended exit list is specified in the access method control block that links this DD statement to the processing program. DW SMB weighted for direct processing. Note: USER and SYSTEM are the only values you may use to specify record access bias in the data class. closing.. The TRACE subparameters are: HOOK. The ISAM interface program is to load and exit to this routine if a physical or logical error occurs when the processing program is gaining access to the data set.subparameter]. You can use the interactive problem control system to print the trace output. See z/OS DFSMS: Using Data Sets for full information on the TRACE subparameter and the VSAM trace facility..DD: AMP SYNAD=module Names a SYNAD exit routine. ACCBIAS=USER ACCBIAS=SYSTEM ACCBIAS=DO ACCBIAS=DW ACCBIAS=SO ACCBIAS=SW Specify one of these six values to override record access bias in the data class in order to use System-Managed Buffering (SMB) without changing the data class. USER Obtain buffers the same way the system would without SMB. see z/OS MVS IPCS User’s Guide. This is the default if you code no specification for the ACCBIAS subparameter. use this subparameter to instruct VSAM whether to defer writing of changed buffers to the medium until either the data set is closed 12-28 z/OS V1R3. SYSTEM Force SMB and let the system determine the buffering technique based on the ACB MACRF and storage class specification.0 MVS JCL Reference . KEY. and end-of-volume processing for the data set defined on this DD statement. This option provides the capability to use hiperspace. If no SYNAD exit is specified. ECODE. SMBDFR=Y or SMBDFR=N With direct optimization.

RMODE31=ALL RMODE31=BUFF RMODE31=CB RMODE31=NONE Designate the residency for buffers and control blocks. or when you specify ACCBIAS=USER. If your program runs in 24-bit mode and you use locate mode processing for the VSAM data set. the exits must run in 31-bit mode if you obtained the control blocks above the line. Use this parameter with direct optimization. where nn is 1 to 2048000 kilobytes or 1 to 2048 megabytes. BUFF —Buffers (only) above the line. SMBHWT=nn Specify a requirement for hiperspace where nn is an integer from 0 to 99. Note: If your program runs with local or global shared resources (LSR/GSR) and uses journaling (JRNAD) or user processing (UPAD) exit routines. Chapter 12. you must obtain the buffers in 24-bit addressable storage. When ACCBIAS=SYSTEM. See OFSMS/MVS Using Data Sets for further details on using SMBDFR. if you specify nothing for RMODE31 in either the JCL or the ACB. the system obtains the buffers in 24-bit addressable storage. When you specify BUFF or NONE for RMODE31. which means that the system does not obtain any hiperspace. The values you may specify for RMODE31 are: ALL —Control blocks and buffers above the line. CB —Control blocks (only) above the line. This subparameter allows you to specify whether or not to allocate the buffers and control blocks in 31-bit addressable storage. Without SMB.DD: AMP or the buffers are required for some other request. the system obtains the control blocks in 24-bit addressable storage. When you do not specify ACCBIAS. the system obtains the buffers and control blocks in virtual storage with a 24-bit address. The default value is 0. This capability to allocate above the line is necessary when either or both of the following conditions exists: v The number of data sets open to a job is quite large. DD Statement 12-29 . When you specify CB or NONE for RMODE31. With SMB the default location is in 31-bit addressable storage (″above the 16-megabyte line″). the system obtains the buffers in storage with an address greater than 16 million bytes. SMBVSP=nnK or SMBVSP=nnM Specify the amount of virtual buffer space to acquire for direct optimized processing when opening the data set. NONE —Control blocks and buffers below the line. the default is in 24-bit addressable storage (″below the line″). if you specify nothing for RMODE31 in either the JCL or the ACB. You can use this field independently of SMB.

For an entry-sequenced data set.0 MVS JCL Reference . Buffer Requirements For a key-sequenced data set. the number of buffers is reduced to fit in the BUFSP space. The RMODE31 subparameter is available for all data set types. or a plus (+) sign. a minus (hyphen). and generation data groups (GDG) are invalid with VSAM data sets. partitioned access method (PAM). the DSNAME must not contain parentheses. If the number of buffers specified in the BUFND and BUFNI subparameters causes the virtual storage requirements to exceed the BUFSP space. the number of buffers is increased to fill the BUFSP space. Relationship to Other Parameters Do not code the following parameters with the AMP parameter. the total minimum buffer requirement is three: two data buffers and one index buffer. If BUFSP specifies more space than required by BUFND and BUFNI. * BURST CHARS COPIES DATA DCB DDNAME DYNAM FCB FLASH MODIFY QNAME RECFM SUBSYS SYSOUT TERM UCS Invalid ddnames The following ddnames are invalid for VSAM data sets: JOBLIB STEPLIB SYSABEND SYSCHK SYSCKEOV SYSMDUMP SYSUDUMP Invalid DSNAMEs When you code the AMP parameter. two data buffers are required. Examples of the AMP Parameter Example 1 12-30 z/OS V1R3. The forms of DSNAME valid for ISAM. The RMODE31 subparameter of AMP overrides any RMODE31 values specified in the ACB.DD: AMP v The number of buffers is such as to cause a storage shortage if kept in 24-bit addressable storage. You may specify RMODE31 only with the JCL DD AMP parameter or in the ACB.

STRNO=4. or millions of records. v The primary and secondary space quantity specified on the SPACE parameter represents units.DD: AMP //VSAMDS1 // DD DSNAME=DSM.DISP=SHR. It also specifies that a data set post-checkpoint modification test is not to be performed when restarting at a checkpoint and that GTF is to provide a trace of specified data areas. specifies the number of requests that require concurrent data set positioning.CLASS. ’BUFNI=3. Chapter 12. thousands. the first subparameter (reclgth) on the SPACE parameter must specify the average record length of the records. and SYNAD. AVGREC Parameter Parameter Type Keyword. ’BUFNI=10.BUFND=5’. STRNO. the system checks the syntax and then otherwise ignores the AVGREC parameter.SYNAD=ERROR’) In this example. When you use AVGREC with the SPACE parameter. the DD statement defines the size of the user area for data and index buffers. Code the AVGREC parameter when you want to (1) specify records as the units of allocation or (2) override the space allocation defined in the data class for the data set.CROPS=NCK’. specifies the number of data and index buffers. optional — use this parameter only with SMS Purpose Use the AVGREC parameter when you define a new data set to specify that: v The units of allocation requested for storage space are records. as in the previous example. Syntax AVGREC= {U} {K} {M} Subparameter Definition U Specifies a record request and that the primary and secondary space quantity specified on the SPACE parameter represents the number of records in units (multiplier of 1).KEY=ABCDEF)’) In this example. If SMS is not installed or is not active.CLASS. Example 2 //VSAMDS2 // // DD DSNAME=DSM. ’TRACE=(PARM1=F00203000010.BUFND=2’.STRNO=6.SYNAD=ERROR2.AMP=(’BUFSP=200.DISP=SHR. BUFNI. the DD statement defines the values for BUFSP. and specifies an error exit routine named ERROR.AMP=(’BUFSP=23456. DD Statement 12-31 .

DATACLAS=DCLAS03.AVGREC=K In the example. 12-32 z/OS V1R3.120) records.(5. optional Purpose Code the BLKSIZE parameter to specify the maximum length of a block. BLKSIZE Parameter Parameter Type Keyword.DISP=(NEW. the space allocation defined in the DCLAS03A data class is overridden by the AVGREC parameter. which indicates that the primary and secondary quantity represents thousands of records.048) records.PGM.PGM.DATACLAS=DCLAS03A.2)). Relationship to Other Parameters Do not code AVGREC with the TRK. a primary quantity of 5K (5. * DATA DDNAME DYNAM QNAME Examples of the AVGREC Parameter Example 1 //SMSDS3 // DD DSNAME=MYDS3. See “Overrides” on page 12-52. M Specifies a record request and that the primary and secondary space quantity specified on the SPACE parameter represents the number of records in millions (multiplier of 1048576). Do not code the following DD parameters with the AVGREC parameter. or ABSTR subparameters of the SPACE parameter.DD: AVGREC K Specifies a record request and that the primary and secondary space quantity specified on the SPACE parameter represents the number of records in thousands (multiplier of 1024). // AVGREC=K In the example. CYL.0 MVS JCL Reference . and a secondary quantity of 2K (2. SPACE=(128. which indicate an average record length of 128 bytes. the space allocation defined in the DCLAS03 data class is overridden by the SPACE and AVGREC parameters.KEEP).DISP=(NEW. Example 2 //SMSDS3A DD DSNAME=MYDS3.KEEP). Overrides AVGREC overrides the space allocation defined in the DATACLAS parameter for the data set.

147.648 bytes.483. The number of bytes that you specify for BLKSIZE depends on the device type and the record format for the data set. (For information about EXCP processing see z/OS DFSMSdfp Advanced Services. except for data sets on magnetic tape with ISO/ANSI Version 3 labels. If you code 2097152K. the block size assigned is the maximum: 2.) The maximum is 2G. the block size is the maximum: 2.648 bytes. For detailed information about system-determined block size. of a block.147.648 for tape. valueG Specifies the maximum length.) The maximum is 2097152. valueK Specifies the maximum length. see z/OS DFSMS: Using Data Sets. use installation exit routine IFG0193G. the system can. The maximum is 32. of a block. If you code 2048M.147.760 for DASD data sets and 2. of a block. (1 kilobyte = 1024 bytes. where the minimum value for BLKSIZE is 18 bytes and the maximum is 2048 bytes. in gigabytes. in bytes. Defaults If you do not code BLKSIZE. (1 gigabyte = 1024 megabytes. in kilobytes. Relationship to Other Control Statements Do not code the BLKSIZE parameter with the DCB subparameter BUFSIZE. the DCB or DCBE BLKSIZE overrides the block size specified in the label. of a block.147. If you code BLKSIZE it will have no effect on EXCP processing unless the application takes special steps to use it.648 bytes. DD Statement 12-33 .483.483.483. valueM Specifies the maximum length. described in z/OS DFSMS Installation Exits. under certain conditions. (1 megabyte = 1024 kilobytes. To allow a block size greater than 2048. Overrides If you code a non-zero value for the BLKSIZE subparameter on a DCB or DCBE macro instruction or on a DD statement that defines an existing data set with standard labels. determine an optimum block size.) The maximum is 2048.DD: BLKSIZE Syntax BLKSIZE= {value} {valueK} {valueM} {valueG} Subparameter Definition value Specifies the maximum length. the block size is the maximum: 2. If you code 2G.) Chapter 12. in megabytes.

The BLKSZLIM value does not have to be a multiple of the LRECL value.UNIT=3380. and each program that reads or writes this data set must be capable of handling block sizes this large. Examples of the BLKSIZE Parameter //DD1B // // DD DSNAME=EVER. or the program).BLKSIZE=23472. Currently the maximum block size supported on any tape is 256 KB. and BLKSIZE contain the information necessary to complete the data control block.40)) DD statement DD1B defines a new data set named EVER on a 3380.147. RECFM=FB. RECFM=FB.KEEP). SPACE=(23472. The DD keywords RECFM. 12-34 z/OS V1R3. LRECL. BLKSZLIM Parameter Keyword.DD: BLKSIZE Coexistence Considerations Not all programs and operating systems prior to z/OS can read blocks longer than 32. Version 2 Release 10 is the first release of OS/390 that can read such long blocks using standard access methods.768 bytes). The DD keywords RECFM. Syntax BLKSZLIM= {value} {valueK} {valueM} {valueG} Subparameter Definition value Specifies in bytes an upper limit on a data sets’s block size if BLKSIZE is omitted from all sources and the system determines the block size for the data set.UNIT=3590. | | | | | | | | //DD2B // DD DSNAME=NEVER.648 bytes (two gigabytes). The BLKSZLIM parameter is useful mainly when writing new magnetic tape data sets with programs that can handle blocks longer than 32. and BLKSIZE contain the information necessary to complete the data control block. see z/OS DFSMS: Using Data Sets.0 MVS JCL Reference .DISP=(NEW.LRECL=256.(200. For more information.760 bytes. must be divisible by the logical record length.760 bytes. which in this example is 204 x 1024 = 208. optional Purpose Use the BLKSZLIM parameter to specify an upper limit on a data set’s block size if BLKSIZE is omitted from all sources and the system determines the block size for the data set. data set label. then the block size limit has no effect.KEEP). The maximum value is 2.DISP=(NEW. The block size. You can safely code a larger value for BLKSZLIM. For example.896 bytes. If a BLKSIZE value is available from any source (such as the DD statement.LRECL=326.BLKSIZE=204K DD statement DD2B defines a new data set named NEVER on a 3590. The minimum value is 32K (32. LRECL.483.

The minimum value is 1M. // RECFM=FB.BLKSZLIM=32760.DD: BLKSZLIM valueK Specifies the block size limit in kilobytes (units of 1024). Defaults If you omit BLKSZLIM. v The continuous forms stacker.DISP=(NEW. The DD keywords RECFM and LRECL contain the information necessary to complete the data control block. Chapter 12. or if a stacker was not previously requested. the system determines the block size from one of the following sources.BLKSZLIM=40K DD statement DD2B defines a new data set named NEVER on a 3590 TAPE device. DD Statement 12-35 . If the specified stacker is different from the last stacker used. DEVSUPxx value 3.DISP=(NEW. //DD2B // DD DSNAME=NEVER. to be burst into separate sheets. valueG Specifies the block size limit in gigabytes (units of 1024M). RECFM=FB. starting with the first: 1. BURST Parameter Keyword.LRECL=80. to be left in continuous fanfold.KEEP). optional Purpose Use the BURST parameter to specify that the output for this sysout data set printed on a 3800 Printing Subsystem is to go to: v The burster-trimmer-stacker.152K (two gigabytes). The DD keywords RECFM and LRECL contain the information necessary to complete the data control block.LRECL=326. The minimum value is 32K.UNIT=3590. // SPACE=(23472. The maximum value is 2048M (two gigabytes). BLKSZLIM places an upper limit on the block size to be determined by the system.KEEP). BLKSZLIM places an upper limit on the block size to be determined by the system.40)) DD statement DD1B defines a new data set named EVER on a 3390 DASD. The maximum allowable value is 2G (two gigabytes). 32. The minimum value is 1G. Example of the BLKSZLIM Parameter //DD1BB DD DSNAME=EVER. JES issues a message to the operator to thread the paper into the required stacker. Data class 2. The maximum value is 2.UNIT=3390.768 Relationship to Other Parameters The system ignores BLKSZLIM when you specify BLKSIZE.(200.097. valueM Specifies the block size limit in megabytes (units of 1024K).

This subparameter can also be coded as N. Relationship to Other Parameters Do not code the following parameters with the BURST parameter.BURST=Y In this example. This subparameter can also be coded as Y. the default is NO.0 MVS JCL Reference . NO Requests that the printed output is to be in a continuous fanfold. Defaults If you do not code a BURST parameter. 12-36 z/OS V1R3. If you do not code a BURST parameter or a DD SYSOUT parameter. but you code a DD SYSOUT parameter and the sysout data set is printed on a 3800 that has a burster-trimmer-stacker. Overrides A BURST parameter on a sysout DD statement overrides an OUTPUT JCL BURST parameter. Example of the BURST Parameter //RECORD DD SYSOUT=A. v The STACKER parameter on the JES3 //*FORMAT PR statement. v The BURST parameter on the JES2 /*OUTPUT statement. The stacker separates the printed output into separate sheets instead of stacking it in a continuous fanfold. the DD statement requests that JES send the output to the burster-trimmer-stacker of the 3800.DD: BURST Note: BURST applies only for an output data set printed on a 3800 equipped with a burster-trimmer-stacker. JES uses an installation default specified at initialization. Syntax BURST= {YES} {Y } {NO } {N } Subparameter Definition YES Requests that the printed output is to be burst into separate sheets. * AMP DATA DDNAME DISP DSID DYNAM LABEL PROTECT QNAME SUBSYS VOLUME Relationship to Other Control Statements The burster-trimmer-stacker can also be requested using the following: v The BURST parameter on the OUTPUT JCL statement.

but not using EXCP.DD: CCSID CCSID Parameter Parameter Type Keyword. See z/OS DFSMSdfp Storage Administration Reference and z/OS DFSMS: Using Data Sets for selecting ISO/ANSI Version 4 tapes. EXEC. The CCSID parameter does not apply to ISO/ANSI Version 1 or ISO/ANSI/FIPS Version 3 tapes or to tapes with labels other than AL or AUL. When CCSID is not specified at the JOB. The CCSID value of 65535 has a special meaning: it suppresses conversion. you can request DFSMSdfp to convert data from/to the coded character set identifier (CCSID) specified on the JOB or EXEC statement to/from the CCSID specified on the DD statement. and OS/390 Version 2 Release 5 or higher. DD Statement 12-37 . or DD levels. ISO/ANSI Version 4 tapes are identified by the LABEL=(. Relationship to Other Parameters Do not code the following parameters with the CCSID parameter: * BURST CHARS COPIES DATA DDNAME DYNAM FCB FLASH MODIFY QNAME SYSOUT TERM UCS Chapter 12. data passed to BSAM and QSAM is converted to 7-bit ASCII when writing to ISO/ANSI Version 4 tapes. This may result in data loss on conversion. The CCSID is recorded in the tape header label if conversion is not defaulted.AUL) keyword. Syntax CCSID= nnnnn Subparameter Definition nnnnn The CCSID as a decimal number from 1 through 65535. Default 367. On READ operations the CCSID (if recorded) on the tape header label is used for conversion. See the latter manual for a list of supported CCSIDs. optional Purpose On systems with DFSMS/MVS Version 1 Release 5 or higher. Data conversion is supported on access to ISO/ANSI Version 4 tapes using access methods BSAM or QSAM.AL) or LABEL=(.

EXEC.CCSID=437 12-38 z/OS V1R3. This is the default operation for ISO/ANSI/FIPS Version 3 and ISO/ANSI Version 4 tapes.VOL=SER=T00004.CCSID=437 In this example the user wants conversion from a CCSID of 37 (CECP: USA.LABEL=AL In this example the user did not want any conversion (CCSID=65535) on data read by the access methods. CCSID=65535.DISP=NEW.VOL=SER=T00003.UNIT=3590.LABEL=AL In this example the data on the ISO/ANSI tape is converted from 7-bit ASCII (default) to EBCDIC.UNIT=3590. Canada.DISP=OLD.CCSID=37 PGM=MYPGM2 DSN=A.UNIT=3590. VOL=SER=T00001. Portugal. New Zealand) to 437 (Base PC-data) for data written using BSAM or QSAM for ISO/ANSI Version 4 tape.UNIT=3590. the data on the new ISO/ANSI tape is converted from EBCDIC to 7-bit ASCII because CCSID was not specified at the JOB.UNIT=3590. This is the default operation for ISO/ANSI/FIPS Version 3 and ISO/ANSI Version 4 tapes.DISP=NEW.LABEL=AL In this example. Example 2 //JOB2 //S1 //DD1 // JOB EXEC DD (123456) PGM=MYPGM DSN=A. Example 4 //JOB4 //S1 //DD1 // JOB EXEC DD (123456) PGM=MYPGM DSN=A. Example 5 //JOB5 //S1 //DD1 // JOB EXEC DD (123456). Example 6 //JOB6 //S1 //DD1 // JOB EXEC DD (123456). Brazil. VOL=SER=T00006.LABEL=AL In this example the data written to the ISO/ANSI Version 4 tape is not converted (CCSID=65535).DISP=NEW. Netherlands.UNIT=3590.0 MVS JCL Reference .DISP=OLD. If the data passed to the access methods contain graphic or special characters there could be data loss on conversion to 7-bit ASCII. CCSID=65535.LABEL=(. The CCSID of 437 is recorded on the tape header label.DISP=OLD. VOL=SER=T00001. Example 3 //JOB3 //S1 //DD1 // JOB EXEC DD (123456) PGM=MYPGM DSN=A. Australia.CCSID=37 PGM=MYPGM1 DSN=A.DD: CCSID Examples of the CCSID Parameter Example 1 //JOB1 //S1 //DD1 // JOB EXEC DD (123456) PGM=MYPGM DSN=A. VOL=SER=T00005. or DD levels.AL).

UNIT=3590.LABEL=(.DD: CCSID In this example the user wants data conversion from a CCSID of 437 to a CCSID of 37 for data read by the access method. A CCSID of 65535 is recorded in the tape header label because no CCSID was specified on the DD statement. Chapter 12. VOL=SER=T00009 This example illustrates overriding the CCSID specified on the JOB statement by the specification on the EXEC statement.CCSID=65535 DSN=B. VOL=SER=T00007 In this example the ISO/ANSI labeled tape had a recorded CCSID of 437 and a CCSID was not specified on the DD statement. Note: CHARS applies only for an output data set that is printed on a 3800.CCSID=437 PGM=MYPGM2. see the 3800 Programmer’s Guide. Example 7 //JOB7 //S1 //DD1 // JOB EXEC DD (123456). In step S2 the JOB level CCSID of 37 is overridden by the EXEC level CCSID of 65535.LABEL=(. In this example.AL).CCSID=37 PGM=MYPGM DSN=A. the data written to tape is not converted. VOL=SER=T00008. Note that the CCSID does not have to be specified if it is recorded in the label. in step S1 the user wants conversion from a CCSID of 37 to 437 for data written using BSAM or QSAM for the ISO/ANSI Version 4 tape.UNIT=3590. CHARS Parameter Parameter Type Keyword.AL).DISP=OLD.UNIT=3590. optional Purpose Use the CHARS parameter to specify the name of one or more character-arrangement tables for printing this sysout data set on a 3800 Printing Subsystem.DISP=NEW. during system initialization. Example 8 //JOB8 //S1 //DD1 // //S2 //DD1 // JOB EXEC DD EXEC DD (123456).CCSID=37 PGM=MYPGM1 DSN=A. Since a CCSID of 65535 prevents conversion. References For more information on character-arrangement tables. other than the Basic group (which is always available). Refer to SMP/E User’s Guide for information on choosing particular groups. Data read from this tape by the access method is converted from a CCSID of 437 to a CCSID of 37. DD Statement 12-39 .DISP=NEW.

. Note: Use DUMP on a SYSABEND or SYSUDUMP DD statement.. Overrides A CHARS parameters on a sysout DD statement overrides the OUTPUT JCL CHARS parameter. v Null positions in the CHARS parameter are invalid. DD CHARS parameter. The DD UCS parameter value. Subparameter Definition table-name Names a character-arrangement table. in order: 1. The UCS parameter on an OUTPUT JCL statement. 3. Code from one to four names. #. @) characters.)} {DUMP } {(DUMP[.0 MVS JCL Reference .table-name]. If more than one table-name is coded.table-name). you cannot code CHARS=(.table-name) or CHARS=(table-name. Font list on the PAGEDEF parameter in the PSF cataloged procedure. JES uses the following. OUTPUT JCL CHARS parameter. the PSF uses the following parameters. if referenced. Defaults If you do not code the DD CHARS parameter.table-name]. if referenced by the DD statement... 3. DUMP Requests a high-density dump of 204-character print lines from a 3800. See “PAGEDEF Parameter” on page 22-63 for more information. Font list in the library member specified by an OUTPUT JCL PAGEDEF parameter. to select the font list: 1.. 5. 4.) } v You can omit the parentheses if you code only one table-name or only DUMP. if coded. The CHARS parameter on an OUTPUT JCL statement. 2. If no character-arrangement table is specified on the DD or OUTPUT JCL statements. 12-40 z/OS V1R3. JES installation default for the device. in override order. DUMP must be first. 2. 7. Each table-name is 1 through 4 alphanumeric or national ($. 6.DD: CHARS Syntax CHARS= {table-name } {(table-name[. OUTPUT JCL UCS parameter. JES uses an installation default specified at initialization. DD UCS parameter. For a data set scheduled to the Print Services Facility (PSF). For example.

CHKPT Parameter Parameter Type Keyword. optional Purpose Use the CHKPT parameter to request that a checkpoint be written when each end-of-volume is reached on the multivolume data set defined by this DD Chapter 12. v The JES3 //*FORMAT PR statement.DD: CHARS Relationship to Other Parameters Do not code the following parameters with the CHARS parameter. You can code one or both of these parameters.FCB=STD3 The CHARS parameter on this SYSABEND DD statement specifies a high-density dump with 204 characters per line. Examples of the CHARS Parameter Example 1 //DD1 DD SYSOUT=A. This parameter produces dump output at 8 lines per inch.GU12) In this example. the CHARS parameter specifies two character-arrangement tables to be used when printing the data set: GS10 and GU12.CHARS=DUMP. The FCB parameter requests the dump output at 8 lines per inch. v The JES2 /*OUTPUT statement. You can place both on the same statement or one on each statement. if printing were reassigned to a 3211. Printing Device Reassignment The output device might not be a 3800.CHARS=(GS10. See the 3800 Programmer’s Guide for restrictions that apply. DD Statement 12-41 . * AMP DATA DDNAME DISP DSID DYNAM LABEL PROTECT QNAME SUBSYS VOLUME Relationship to Other Control Statements CHARS can also be coded on the following: v The OUTPUT JCL statement. v CHARS=DUMP. This parameter produces 204-character print lines. for example. Example 2 //SYSABEND DD UNIT=3800. Requesting a High-Density Dump You can request a high-density dump on the 3800 through two parameters on the DD statement for the dump data set or on an OUTPUT JCL statement referenced by the dump DD statement: v FCB=STD3.

v The CHKPT parameter overrides cataloged procedure values or START command values for checkpoints at end-of-volume.DD: CHKPT statement. Note: CHKPT is supported only for multivolume QSAM or BSAM data sets. BDAM. you must also provide a SYSCKEOV DD statement in the job or step. CHKPT is not supported for partitioned data sets extended (PDSEs). or VSAM data sets. Checkpoints can be requested for input or output data sets.VOLUME=SER=(TAPE01. Overrides v The RD parameter values of NC and RNC on the JOB or EXEC statements override the CHKPT parameter. Examples of the CHKPT Parameter Example 1 //DS1 DD DSNAME=INDS.TAPE02. Syntax CHKPT=EOV Subparameter Definition EOV Requests a checkpoint at each end-of-volume. if checkpointing is desired for each data set in the concatenation. * DATA DDNAME DYNAM QNAME SYSOUT Relationship to the SYSCKEOV DD Statement If you specify CHKPT. see z/OS DFSMS Checkpoint/Restart. CHKPT is ignored for single-volume QSAM or BSAM data sets or for ISAM.TAPE03) 12-42 z/OS V1R3.0 MVS JCL Reference .DISP=OLD. Relationship to Other Parameters Do not code the following parameters with the CHKPT parameter. Checkpointing Concatenated Data Sets For concatenated BSAM or QSAM data sets. Checkpoints are written for all volumes except the last. CHKPT must be coded on each DD statement in the concatenation. References For more information. // UNIT=SYSSQ.CHKPT=EOV. BPAM.

a multivolume QSAM or BSAM data set for which a checkpoint is to be written twice: once when end-of-volume is reached on TAPE01 and once when end-of-volume is reached on TAPE02.label Identifies an earlier CNTL statement. *.label Identifies a CNTL statement. The data set requires eight volumes.DISP=(NEW.DD: CHKPT In this example. The system searches for the CNTL statement first earlier in this step. in a cataloged or in-stream procedure.label Identifies an earlier CNTL statement. *. then before the first EXEC statement of the job.8) In this example. Stepname is the name of the job step that calls the procedure.procstepname.KEEP). Syntax CNTL= {*. optional Purpose Use the CNTL parameter to reference a CNTL statement that appears earlier in the job. DD Statement 12-43 .stepname. Seven checkpoints will be written: when the end-of-volume is reached on volumes one through seven..label} Subparameter Definition *.procstepname.label } {*.stepname.WKLYPGM Chapter 12. the DD statement defines data set INDS. the system issues an error message. named label.VOLUME=(.stepname.. CNTL Parameter Parameter Type Keyword.UNIT=SYSDA. named label. The system searches for an earlier CNTL statement with a label that matches the label in the CNTL parameter. Example 2 //DS2 DD DSNAME=OUTDS. Examples of the CNTL Parameter Example 1 //MONDAY DD CNTL=*. OUTDS is a multivolume data set that is being created. procstepname is the name of the procedure step that contains the CNTL statement named label. that appears in an earlier step. The reference causes the subsystem to execute the program control statements within the referenced CNTL/ENDCNTL group. // CHKPT=EOV.stepname.label } {*. stepname. named label. If the system finds no match. in the same job.

12-44 z/OS V1R3.))} {(. the DD statement requests that the system use the program control statements following the CNTL statement named WKLYPGM and located earlier in this step or preceding the first step.THIRD.)) } v You can omit the parentheses if you code only COPIES=nnn. from 1 through 254 in a JES3 system) that specifies how many copies of the data set are to be printed.4)) – A null within a list of group-values.0. optional Purpose Use the COPIES parameter to specify how many copies of this sysout data set are to be printed. for example.(. For printing on a 3800 Printing Subsystem.PROCTWO. see PSF/MVS Application Programming Guide.4)) Subparameter Definition nnn A number (from 1 through 255 in a JES2 system. Example 2 //TUESDAY DD CNTL=*.(1.group-value].0 MVS JCL Reference .(group-value[. v The following are not valid: – A null group-value.) – A zero group-value..group-value]. The printed output is in page sequence for each copy. Note: For more information about the subparameters supported for the 3800 printer..DD: CNTL In this example.. Example 3 //WEDNES DD CNTL=*.)) or COPIES=(5.(group-value[.. COPIES=(5.BLOCKS In this example.(1. this parameter can instead specify how many copies of each page are to be printed before the next page is printed.SECOND. the DD statement requests that the system use the program control statements following the CNTL statement named BLOCKS and located in a preceding step named SECOND. Syntax COPIES= {nnn } {(nnn.CANETTI In this example. COPIES Parameter Parameter Type Keyword. COPIES=(5. for example. for example.. COPIES=(5. the DD statement requests that the system use the program control statements following the CNTL statement named CANETTI and located in the procedure step PROCTWO of the procedure called in the preceding job step THIRD.

12) JES prints nine copies in groups. if COPIES=10 and FLASH=(LTHD. Defaults On any of the following statements. if the FLASH count is smaller than nnn or the sum from the COPIES parameter. JES prints with the forms overlay the number of copies specified in one of the following: v COPIES=nnn. DD Statement 12-45 . The total copies of each page equals the sum of the group-values. For example.3.DD: COPIES For a data set printed on a 3800. Relationship to Other Parameters Do not code the following parameters with the COPIES parameter.4)) and FLASH=(LTHD. JES ignores nnn if any group-values are specified. code it incorrectly. For example. group-value Specifies how many copies of each page are to be printed before the next page is printed. the system uses the DD COPIES parameter default of 1. if COPIES=(. DD statement OUTPUT JCL statement For JES2. Each group-value is a number from 1 through 255 in a JES2 system and from 1 through 254 in a JES3 system. Restriction When Coding UNIT Parameter Chapter 12. For example. if the FLASH count is larger than the sum. the COPYGROUP parameter on a FORMDEF statement in that member overrides any group-value subparameters on the OUTPUT JCL COPIES parameter or the sysout DD COPIES parameter. see “FORMDEF Parameter” on page 22-42. if the FLASH count is larger than nnn. You can code a maximum of eight group-values. v The count subparameter in the FLASH parameter. if COPIES=10 and FLASH=(LTHD.7) JES prints seven copies with the forms overlay and three copies without. which specifies a library member. all with the forms overlay. Their sum must not exceed 255 or 254. all with the forms overlay. For more information. * AMP DATA DDNAME DISP DYNAM LABEL QNAME SUBSYS VOLUME Relationship to FLASH Parameter If this DD statement or a referenced OUTPUT JCL statement also contains a FLASH parameter.12) JES prints 10 copies. the /*OUTPUT statement Overrides A COPIES parameter on a sysout DD statement overrides an OUTPUT JCL COPIES parameter. If this DD statement references an OUTPUT JCL statement and that OUTPUT JCL statement contains a FORMDEF parameter. v The sum of the group-values specified in the COPIES parameter. if you do not code a COPIES parameter.(2. or code COPIES=0.

v Only the first group-value is used. JES handles the COPIES parameter as follows: v nnn defaults to 1.COPIES=32 12-46 z/OS V1R3.DDA nullifies the COPIES parameter on the procedure DD statement DDA. four copies are printed of sysout data set DDA: //OTA //DDA OUTPUT COPIES=3 DD SYSOUT=A.OUTPUT=*. both COPIES and UNIT appear on a DD statement. if the DD COPIES is a null parameter.COPIES=2 PROC=INSTR COPIES= Note: If a null COPIES parameter appears on a DD statement that either does not reference an OUTPUT JCL statement or references an OUTPUT JCL statement that does not contain a COPIES parameter.’PAUL BENNETT’ PGM=ABC COPIES=3 SYSOUT=A. three copies are printed of sysout data set DDB: //OTB //DDB OUTPUT COPIES=3 DD SYSOUT=A. v The JES3 //*FORMAT PU statement.OT.0 MVS JCL Reference . Relationship to Other Control Statements The number of copies can also be specified on the COPIES parameter of the following: v The OUTPUT JCL statement. if you request copies of the entire job on the JES2 /*JOBPARM COPIES parameter and also copies of the data set on the DD COPIES or OUTPUT JCL COPIES parameter. thereby allowing the COPIES parameter on OUTPUT JCL statement OT to be used.OTA. If. Using OUTPUT JCL COPIES by Nullifying DD Copies If both a DD statement and a referenced OUTPUT JCL statement contain COPIES parameters.COPIES=4 However. //JEX //INSTR //PS //OT //DDA // //STEP1 //PS. JES2 prints the number of copies equal to the product of the two requests.OTB.OUTPUT=*.DD: COPIES The COPIES parameter is normally coded with the SYSOUT parameter. the DD COPIES parameter normally overrides the OUTPUT JCL COPIES parameter. however. if group-values are specified and printing is on a 3800. Examples of the COPIES Parameter Example 1 //RECORD1 DD SYSOUT=A. the OUTPUT JCL COPIES parameter is used.OUTPUT=*. the system uses a default of 1. The null COPIES parameter on DD statement PS.DDA /* JOB PROC EXEC OUTPUT DD PEND EXEC DD ACCT34. The system prints three copies of the DDA sysout data set. For example. v The JES3 //*FORMAT PR statement. v The JES2 /*OUTPUT statement. For JES2.COPIES= The following example shows a null COPIES parameter on an in-stream DD statement that overrides a procedure DD statement. and if this is a sysout data set. For example.

The data records immediately follow the DD DATA statement. The second group contains two copies of each page.DD: COPIES This example requests 32 copies of the data set defined by DD statement RECORD1 when printing on an impact printer or a 3800. the system prints only the first group-value: two copies of each page.(1. The first group contains one copy of each page. unlike a DD * statement. The data records end when: v An EBCDIC /* or the two-character delimiter specified by a DLM parameter on this DD statement is found in the input stream.3)) Because the UNIT parameter is coded and the device is a 3800. the data is not ended by the // that indicates another JCL statement. three copies of the data set are printed in two groups.. When printing on an impact printer.(1. When the output device is not a 3800. the second group contains three copies of each page. If you code DATA. DD Statement 12-47 .3.COPIES=(0.. the system will check it for syntax and ignore it. the system prints eight collated copies. when printing on a 3800.2)) In this example. six copies of the data set are printed in three groups. when printing on a 3800. Example 3 //RECORD3 DD SYSOUT=A. Syntax //ddname DD DATA[. Note that.COPIES=(8.parameter]. and the last group contains two copies of each page. or v The input stream runs out of card images. The first group contains one copy of each page. optional Purpose Use the DATA parameter to begin an in-stream data set that may contain statements with // in columns 1 and 2.2)) In this example. DATA Parameter Parameter Type Positional. Example 2 //RECORD2 DD SYSOUT=A. such as EBCDIC. [comments] Chapter 12. the records may be in any code.(2.COPIES=(1. Considerations for an APPC Scheduling Environment The DATA parameter has no function in an APPC scheduling environment. one copy (the default for nnn) is printed. Example 4 //RECORD4 DD UNIT=3800.

All other parameters are either ignored or result in a JCL error.DISP=SHR For JES3 SNA RJP Input v The only parameters you can specify for JES3 systems network architecture (SNA) remote job processing (RJP) input devices are BLKSIZE and LRECL.0 MVS JCL Reference . You can submit a data set to JES2 or JES3 with a record length of greater than 80 bytes by submitting JCL like the following. (The default LRECL is 80 bytes.JCL. Relationship to Other Parameters The following DD parameters may be specified with the DD * and DD DATA parameters. JES uses installation defaults specified at initialization.) JES3 input service fails any job that exceeds this limit..DD: DATA Defaults When you do not code BLKSIZE and LRECL. or JES2 /*ROUTE XEQ or /*XMIT with JES3 in the network.LONGDATA. //SUBMIT //S1 //SYSPRINT //SYSIN //SYSUT2 //SYSUT1 JOB EXEC DD DD DD DD . PGM=IEBGENER SYSOUT=* DUMMY SYSOUT=(. In this example JCL. if the buffer size is defined as 4084. the record length is limited to the installation-defined spool buffer size minus 44. The records are truncated to 80 bytes. the records are truncated to 80 bytes. DCB=MODE=C must be the only parameter specified with the DATA parameter.) For 3540 Diskette Input/Output Units VOLUME=SER. You cannot use the TSO/E SUBMIT command to submit a data set to JES2 or JES3 with a record length of greater than 80 bytes. BUFNO. See 3540 Programmer’s Reference.JCL contains the data with a record length of greater than 80 bytes. If the records longer than 80 bytes include JCL to be transmitted to a remote system using JES3 // XMIT or //*ROUTE XEQ. In a JES3 system.. On a DD * or DD DATA statement processed by a diskette reader. (For example.INTRDR) DSN=IBMUSER. v Code DCB=LRECL=nnn.LONGDATA. the record length limit is 4040. DCB=BLKSIZE DCB=BUFNO DCB=LRECL DCB=DIAGNS DCB=MODE=C DLM DSNAME LIKE LRECL REFDD VOLUME=SER DSID For JES3. IBMUSER. and DSID on a DD DATA statement are ignored except when they are detected by a diskette reader as a request for an associated data set. 12-48 z/OS V1R3. you can specify DSID and VOLUME=SER parameters to indicate that a diskette data set is to be merged into the input stream following the DD statement. when using the DCB=MODE=C subparameter with the DATA parameter. where nnn is 1 to 255 when SYSIN data records are greater than 80 bytes.

If you omit a delimiter after input data. /* //GROUP2 /* This example defines two groups of data in the input stream. Multiple In-Stream Data Sets for a Step You can code more than one DD * or DD DATA statement in a job step in order to include several distinct groups of data for the processing program. data . DSNAME. When you call a procedure.DD: DATA Relationship to Other Control Statements Do not refer to an earlier DD DATA statement in DCB. or VOLUME parameters on following DD statements. . DD DATA . Omitted Data Delimiters If you omit a DD statement before input data. data . the system provides a DD * statement with the ddname of SYSIN and ends the data when it reads a JCL statement or runs out of card images. the system skips the remaining data without abnormally terminating the step. data .DSNAME=&&GRP3 . DD Statement 12-49 . Unread Records If the processing program does not read all the data in an in-stream data set. Precede each group with a DD * or DD DATA statement and follow each group with a delimiter statement. the system ends the data when it reads a JCL statement or runs out of card images. Location in the JCL A DD DATA statement begins an in-stream data set. Examples of the DATA Parameter Example 1 //GROUP1 DD DATA . . /* Chapter 12. you can add input stream data to a procedure step by placing in the calling step one or more DD * or DD DATA statements. . In-stream Data for Cataloged or In-stream Procedures A cataloged or in-stream procedure cannot contain a DD DATA statement. Example 2 //GROUP3 DD DATA. each followed by data.

it must not contain job control statements. A name such as userid. If SMS is not installed or is not active. Purpose Use the DATACLAS parameter to specify a data class for a new data set. /* //ADD. The input defined by DD statement PREP. This data contains job control statements.IN2 /* This example defines two groups of data in the input stream. The input data defined by DD statement ADD. optional This parameter is useful only if SMS is running. Because this data is defined by a DD * statement.Ddsnumber. You can use the DATACLAS parameter for both VSAM data sets and physical sequential (PS) or partitioned (PO) data sets. use the DCB parameter (described on page 12-53) or the AMP parameter (described on page 12-23). SPACE=(TRK. DATACLAS Parameter Parameter Type Keyword.5)). A data class defines the following data set allocation attributes: v Data set organization – Record organization (RECORG) or – Record format (RECFM) v Record length (LRECL) 12-50 z/OS V1R3.UNIT=3350.0 MVS JCL Reference .GRP3 is generated.VOLUME=SER=D88230.IN1 is to be used by the cataloged procedure step named PREP. Without SMS.CATLG. data .DELETE) DD DATA .DD: DATA This example defines an in-stream data set with GRP3 as the last qualifier of the system-generated data set name. The storage administrator at your installation defines the names of the data classes you can code on the DATACLAS parameter.jobname. .IN2 is to be used by the cataloged procedure step named ADD.C. . the system syntax checks and then ignores the DATACLAS parameter.(10.IN1 EXEC PROC=UPDATE DD DSNAME=A.jobid. DD * . SMS ignores the DATACLAS parameter if you specify it for (1) an existing data set or (2) a data set that SMS does not support.B. Example 3 //STEP2 //PREP.DD4 // //PREP.DISP=(. data .

one to eight characters. only the following attributes apply: v EXPDT v LRECL v RECFM v RETPD References See z/OS DFSMS: Using the Interactive Storage Management Facility for information on how to use ISMF to view your installation-defined data classes. in which case you do not need to specify DATACLAS. will have DSORG defaulted to either physical sequential or a partitioned organization. CISIZE. Chapter 12. SPANNED/NONSPANNED. BWO (backup while open). PDS or PDSE (DSNTYPE) Space allocation (AVGREC and SPACE) Retention period (RETPD) or expiration date (EXPDT) Volume-count (VOLUME) Compaction Media interchange type Space constraint relief Block size limit For VSAM data sets (IMBED or REPLICATE. For tape data sets. INITIAL LOAD. Check with your storage administrator to determine if an ACS routine will select a data class for the new data set. REUSE. is defined by the storage administrator at your installation. When RECORG is not specified. data sets associated with a data class. Defaults If you do not specify DATACLAS for a new data set and the storage administrator has provided an installation-written automatic class selection (ACS) routine. and LOGGING OPTIONS) Note The volume-count on the VOLUME parameter in the data class specifies the maximum number of SMS-managed volumes that a data set can span. FREESPACE. The volume-count is ignored for data sets to which no storage class is assigned. The name. either by JCL or assigned by an ACS routine. the ACS routine may select a data class for the data set. Syntax DATACLAS=data-class-name Subparameter Definition data-class-name Specifies the name of a data class to be used for allocating the data set.DD: DATACLAS v v v v v v v v v v v Key length (KEYLEN) Key offset (KEYOFF) Type. SHAREOPTIONS. DD Statement 12-51 .

DISP=(NEW. the attributes in the data class named DCLAS01 are used by SMS to handle the data set. override the corresponding attributes defined in the data class for the data set.DISP=(NEW. 12-52 z/OS V1R3. Attributes obtained with the LIKE and REFDD parameters override the corresponding attributes in the DATACLAS parameter. Relationship to Other Parameters Do not code the following DD parameters with the DATACLAS parameter.PGM. spanned records. Example 2 //SMSDS2 // DD DSNAME=MYDS2. A block size from any source overrides BLKSZLIM from any source. LRECL=256. Note that installation-written ACS routines may select a management class and storage class and can override the specified data class. extended addressability. logging control.EXPDT=1996/033 In the example. secondary. record access bias.0 MVS JCL Reference . CICS (forward recovery log stream identifier) DASD (space constraint) VSAM (reuse.KEEP). Note that installation-written ACS routines may select a management class and storage class and can override the specified data class.DATACLAS=DCLAS01. * DATA DDNAME DYNAM QNAME Examples of the DATACLAS Parameter Example 1 //SMSDS1 DD DSNAME=MYDS1.DD: DATACLAS Overrides Any attributes you specify on the same DD statement using parameters such as the following (not a complete list).KEEP) In the example. the logical record length of 256 and the expiration date of February 2. and directory quantity) RETPD (retention period) or EXPDT (expiration date) VOLUME (volume-count) BLKSIZE (block size) and BLKSZLIM (block size limit). primary.PGM. initial load formatting) Explicit specification of SPACE on the DD statement overrides both the SPACE and the AVGREC values specified in the data class. PDS or PDSE) AVGREC (record request and space quantity) SPACE (average record length.DATACLAS=DCLAS02. An ACS routine can override the data class that you specify on the DATACLAS parameter. override the corresponding attributes in the named data class for the data set: RECORG (record organization) or RECFM (record format) LRECL (record length) KEYLEN (key length) KEYOFF (key offset) DSNTYPE (type. 1996.

BUFNO=4) ] ] ] ] ] Chapter 12.procstepname. Notes: 1. DCB=(RECFM=FB.) [ ( {*.ddname } ) [ ( {*.. v Only a data set name. End each statement with a comma after a complete subparameter. For JES3 SNA RJP.ddname } ) [ ( {*. Syntax [ DCB=(subparameter[.stepname. DCB=RECFM=FB or DCB=WKDATA or DCB=*.) References For more information on constructing the data control block.stepname.ddname or *. 2. A backward reference is a reference to an earlier DD statement in the job or in a cataloged or in-stream procedure called by a job step. see z/OS DFSMS: Using Data Sets. the LIKE parameter (described on page 12-138). dsname. code DCB=LRECL=nnn.LRECL=133. BUFL=800.DD1. optional Purpose Use the DCB parameter to complete during execution the data set information in the data control block (DCB). DD Statement 12-53 . and the REFDD parameter (described on page 12-170).procstepname.stepname. you do not need to use the DCB parameter to specify data set attributes.STEP3. For example.LRECL=80.BLKSIZE=399) or DCB=(*.DD2 Multiple Subparameters: When the parameter contains more than one subparameter. For example.ddname. See the DATACLAS parameter (described on page 12-50). For example: //INPUT // DD DSNAME=WKDATA.stepname.) [ DCB= ( {dsname }[. With SMS. v Only a backward reference without any subparameters.BLKSIZE=800. where nnn is 1 to 255 when SYSIN data records are greater than 80 bytes. A backward reference is in the form *.DCB=(RECFM=FB. separate the subparameters by commas and enclose the subparameter list in parentheses.ddname} ) Parentheses: You can omit the parentheses if you code: v Only one keyword subparameter.subparameter].DD: DCB DCB Parameter Parameter Type Keyword.ddname or *..BUFNO=4) Continuation onto Another Statement: Enclose the subparameter list in only one set of parentheses... (The default LRECL is 80 bytes.subparameter]. The data control block is constructed by the DCB macro instruction in assembler language programs or by file definition statements or language-defined defaults in programs in other languages. without any subparameters.

Do not specify a generation data group (GDG) base name. Subparameter Definition subparameter (With SMS.) Specifies a DCB keyword subparameter needed to complete the data control block. A data set name that contains a hyphen must be enclosed in apostrophes if it is used as a DCB subparameter. The dsname cannot contain special characters.DISP=MOD can also be specified as: //DDEX DD DSNAME=WKDATA. Note: v If the BUFMAX subparameter is coded with or without the DCB parameter. The system copies the following DCB information from the data set label: DSORG (used in a backward reference) RECFM OPTCD BLKSIZE 12-54 z/OS V1R3.0 MVS JCL Reference . dsname (With SMS. a GDG relative generation member name. the data set label. it can have a null value only when coded on a DD which either: – Overrides a DD in a procedure – Is added to a procedure.BLKSIZE=800).DCB=(RECFM=FB. The data set must reside on a direct access volume. or your language’s defined values do not complete the data control block. through the DATACLAS or LIKE parameters. You must supply DCB information through the DCB subparameters if your processing program. or implicitly. and RECFM are described as DD parameters. see the DD LIKE parameter. the following DD statement: //DDEX DD DSNAME=WKDATA. or a member name of a non-GDG data set. A hyphen is a valid character in a catalogued data set name. and you are allocating a new data set.DD: DCB Alternate Syntax for DCB Keyword Subparameters All of the DCB keyword subparameters can be specified without the need to code DCB=. For example. You can specify RECORG explicitly (through the RECORG parameter). The system is to copy DCB information from the data set’s label. An alphabetic summary of the DCB keyword subparameters follows this parameter description. LRECL.RECFM=FB. you must also supply the RECORG parameter.LRECL=80. If dsname represents a VSAM data set. and the volume must be mounted before the job step is executed.BLKSIZE=800. except for periods used in qualifying the name.LRECL=80. see the DD DATACLAS parameter.) Names a cataloged data set.DISP=MOD Note that KEYLEN.

*.) Specify a backward reference to an earlier DD statement.stepname. The system also copies the system code. the system ignores the data set label information. *. unless you override them in the referencing DD statement.stepname. the DCB macro instruction in assembler language programs or file definition statements or language-defined defaults in programs in other languages.ddname specifies the ddname of a DD statement in a cataloged or in-stream procedure called by an earlier job step. Chapter 12. If you code any DCB subparameters after the reference.stepname. and it cannot name a cataloged data set or refer to another DD statement. if you supply information for the same DCB field in your processing program and on a DD statement. Note: The system also copies the UCS and FCB parameters from the referenced DD statement. *. If you code any DCB subparameters after the dsname. these subparameters override the corresponding subparameters on the referenced DD statement. v The DCB subparameter of the DD statement.ddname (With SMS.DD: DCB LRECL KEYLEN RKP If you do not specify the expiration date of the cataloged data set. If a DD statement and the data set label supply information for the same DCB field. *. Stepname is the name of the job step that calls the procedure.ddname specifies the ddname of an earlier DD statement in the same step. The system copies from the referenced DD statement only those subparameters not specified on the referencing DD statement. DD Statement 12-55 .procstepname. the system ignores the DD DCB subparameter.stepname. in the same job. these subparameters override the corresponding subparameters in the data set label. The DCB parameter of the referenced DD statement must contain subparameters. Do not reference a DD * or a DD DATA statement. The system is to copy DCB information from the DCB parameter specified on that DD statement.ddname *. see the DD REFDD parameter or the DD LIKE parameter to select a comparable refer back function. v The data set label.procstepname. and procstepname is the name of the procedure step that contains the DD statement. | | Completing the Data Control Block The system obtains data control block information from the following sources.ddname specifies the ddname of a DD statement in an earlier step. Therefore. that is. The system copies from the referenced label only those subparameters not specified on the referencing DD statement.ddname *. the system copies it from the data set label. stepname. in override order: v The processing program.

With the QNAME parameter.DISP=(. DCB=(RECFM=FB. the DCB is completed based on the type of data set and how the processing program uses the data set.DD: DCB Note: When concatenated data sets are involved. Relationship to Other Parameters See the descriptions of the individual DCB subparameters for the DD parameters and DCB subparameters that should not be coded with a specific DCB subparameter.LRECL=326.KEEP).KEEP). RECFM=FB.VOLUME=SER=44321.DCB=(RECFM=FB.UNIT=3380. The DCB parameter contains the information necessary to complete the data control block. DCB=BUFNO.UNIT=3380. //DD1B // // DD DSNAME=EVER. DEN=1. The DCB parameter contains the information necessary to complete the data control block. The DD parameter KEYLEN and DCB subparameters KEYLEN. and for data sets allocated in blocks where the block length (blklgth) is zero. OPTCD.TRTCH=C) DD statement DD1 defines a new data set named ALP. STACK. PRTSP. BUFNO. and DIAGNS DCB subparameters. UNIT=3400-6.40)) DD statement DD1A defines a new data set named EVER on a 3380.(200. and DSID parameters on a DD * or DD DATA statement are ignored except when they are detected by a diskette reader as a request for an associated data set. SPACE=(23472. AMP DYNAM With the DDNAME parameter. the value specified for BLKSIZE directly affects the amount of space obtained for data sets allocated in records. See 3540 Programmer’s Reference.BLKSIZE=960. and TRTCH apply to specific device types. and RECFM DCB subparameters.DISP=(NEW. LRECL. Do not code the following parameters with the DCB parameter.LRECL=240. Examples of the DCB Parameter Example 1 //DD1 // // DD DSNAME=ALP. MODE. See z/OS DFSMS: Using Data Sets for more information. the system interprets the value incorrectly.0 MVS JCL Reference . code only the BLKSIZE. With the SPACE parameter.40)) 12-56 z/OS V1R3. For 3540 Diskette Input/Output Units The VOLUME=SER.(200.KEEP).BLKSIZE=23472). SPACE=(23472. If you specify one of these subparameters on a DD statement for a device different from the type to which it applies.DISP=(NEW. Example 2 //DD1A // // DD DSNAME=EVER. code only the BLKSIZE.LRECL=326.

If the DCB BUFNO subparameter is not specified in the program.UNIT=3400-6.DELETE).C. Chapter 12.NL).CATLG. DCB Subparameters Access Method B D DCB A Subparameters M BFALN X B I S A M X B P A M X B S A M X B T A M E X C P X Q I G S A A M M X Q S A M X T C A M Description of Subparameters BFALN={F|D} Specifies that each buffer starts either on a word boundary that is not also a doubleword boundary or on a doubleword boundary.VOLUME=SER=663488. The cataloged procedure is called by EXEC statement STEP1.BUFNO=5) DD statement DD5 defines an existing. it is overridden by the KEYLEN coded on this DD statement. If both BFALN and BFTEK are specified. If the data set label contains a key length specification. they must be specified from the same source.LRECL=80.DISP=OLD. cataloged data set named SMAE and requests that the system copy DCB subparameters from DD statement DD8.DISP=(NEW. the system will select an optimum block size for the data. Example 4 //DD4 // DD DSNAME=JST.DISP=OLD. LABEL=(. which is contained in the procedure step named PROCSTP5. Also. because BLKSIZE is omitted.KEYLEN=8) DD statement DD4 defines a new data set named JST and requests that the system copy the DCB information from the data set label of the cataloged data set named A. Example 5 //DD5 // DD DSNAME=SMAE.DCB=(RECFM=F.UNIT=SYSDA.B.B.STEP1.PROCSTP5. Any of the DCB subparameters coded on DD statement DD8 are ignored if they are specified in the program. Default: D (doubleword) Note: Do not code the BFALN subparameter with DCB subparameter GNCP.DCB=*.DD: DCB DD statement DD1B is the same as the DD1A statement except that it shows the alternate syntax for the DCB keyword subparameters.KEEP). Example 3 //DD2 // //DD3 // DD DD DSNAME=BAL. five buffers are assigned. SPACE=(CYL.(12.C. DCB=(*.DD8.DISP=(.DCB=(A. DD Statement 12-57 .DD2 DD statement DD3 defines a new data set named CNANN and requests that the system copy the DCB subparameters from DD statement DD2.2)). BLKSIZE=80) DSNAME=CNANN. which is in the same job step. or with DD parameters DDNAME or QNAME.

DD: DCB Access Method B D DCB A Subparameters M BFTEK X B I S A M B P A M B S A M X B T A M X E X C P Q I G S A A M M Q S A M X T C A M Description of Subparameters BDAM and BSAM: BFTEK=R R Specifies that the data set is being created for or contains variable-length spanned records. Note: For compatibility purposes with previous operating systems. if dynamic buffering is specified. If you specify both BFALN and BFTEK. or with DD parameters DDNAME or QNAME. v This parameter value may be specified only for RECFM=VS or RECFM=VBS files.0 MVS JCL Reference . QSAM: BFTEK={S|A} S A Specifies simple buffering (default). v If you specify BFTEK=A with move mode. Specifies locate mode logical record interface for spanned records. the results may include processing the segments of a spanned record as separate records. if specified without RECFM=VS|VBS. This forms a complete logical record before pointing the user to it. 12-58 z/OS V1R3. Simple buffering may be coded at any time for QSAM files. or other unpredictable results. a system completion (abend) code X'013' with reason code X'5C' is issued. Note: Do not code the BFTEK subparameter with DCB subparameter GNCP. see z/OS DFSMS Macro Instructions for Data Sets. you must specify them from the same source. Note: If you use locate mode on a RECFM=VS|VBS file and BFTEK=A is not specified. a buffer pool also must be defined. the specification is ignored. v Locate mode must be used together with this parameter value. For information about the locate and move modes in the DCB subparameters BFTEK and VBS. Do not specify R for a PDSE. BTAM: BFTEK=D D Specifies that dynamic buffering is to be used in the processing program. issuance of system completion (abend) code X'002' with reason code X'04'. the system accepts BFTEK=E. QSAM obtains a logical record area and assembles the physical record segments of a spanned record into that logical record area.

BLKSIZE can be coded but will have no effect on EXCP processing. The number you specify for BLKSIZE directly affects the amount of space obtained for data sets allocated in records. (To allow a value greater than 2048.483. under certain conditions.648 for tape. the block size assigned will be the maximum: 2. except for data sets on magnetic tape with ISO/ANSI/FIPS labels. If you code the BLKSIZE subparameter in the DCB macro instruction or on a DD statement that defines an existing data set with standard labels. valueM Specifies the maximum length.147. The maximum is 32. value Specifies the maximum length of a block.483. determine an optimum block size for the data. the block size assigned will be the maximum: 2. of a block.483. If 2G is coded.) The maximum is 2G. where the minimum value for BLKSIZE is 18 bytes and the maximum is 2048 bytes. in bytes. DD Statement 12-59 .760 for DASD data sets and 2. The number you specify for BLKSIZE depends on the device type and the record format for the data set.147.147.) The maximum is 2097152. and for data sets allocated in blocks where the block length (blklgth) is zero. (1 megabyte = 1024 kilobytes.648.648.) valueK Specifies the maximum length. valueG Specifies the maximum length. described in z/OS DFSMS Installation Exits. Chapter 12. the DCB BLKSIZE overrides the block size specified in the label.147. of a block. use installation exit routine IFG0193G. see z/OS DFSMS: Using Data Sets. of a block.DD: DCB Access Method B D DCB A Subparameters M BLKSIZE X B I S A M B P A M X B S A M X B T A M E X C P X Q I G S A A M M X Q S A M X T C A M Description of Subparameters X BLKSIZE={value|valueK|valueM|valueG} Specifies the maximum length. Note: Do not code the BLKSIZE subparameter with the BUFSIZE subparameter. If 2097152K is coded.) The maximum is 2048. the block size assigned will be the maximum: 2. If 2048M is coded.648. of a block. (1 gigabyte = 1024 megabytes. Default: If you do not code BLKSIZE. in kilobytes. For detailed information about system-determined block size. in gigabytes.483. (1 kilobyte = 1024 bytes. in megabytes. the system can.

Default: 1 Note: Do not code the BUFIN subparameter with DCB subparameter BUFNO. 12-60 z/OS V1R3. BUFOUT. Note: Do not code the BUFNO subparameter with DCB subparameters BUFIN. but can be less because of the size of the region. The maximum is 32. in bytes.760. n must be 0 for writing an output data set with fixed-length or undefined-length records. or DD parameters DDNAME. For output. BUFOFF=L is valid only with RECFM=D. The maximum normally is 255. BUFNO X X X X X X X X BUFNO=buffers Specifies the number of buffers to be assigned to the DCB. Note: Do not code the BUFL subparameter with DD parameter DDNAME. of each buffer in the buffer pool.DD: DCB Access Method B D DCB A Subparameters M BUFIN B I S A M B P A M B S A M B T A M E X C P Q I G S A A M M Q S A M T C A M Description of Subparameters X BUFIN=buffers Specifies the number of buffers to be assigned initially for receiving operations for each line in the line group. or DD parameter QNAME. or DD parameters DDNAME. QNAME. Note: Do not code the BUFOFF subparameter with DD parameters DDNAME. BUFOFF X X BUFOFF={n|L} n Specifies the length. For output. L Specifies that the block prefix is 4 bytes and contains the block length.0 MVS JCL Reference . Default: 2 Note: Do not code the BUFMAX subparameter with DCB subparameter NCP. For input. n can be 0 through 99. in bytes. BUFL X X X X X X X X BUFL=bytes Specifies the length. The combined BUFIN and BUFOUT values must not be greater than the number of buffers in the buffer pool for this line group (not including those for disk activity only). QNAME. QNAME. BUFMAX X BUFMAX=buffers Specifies the maximum number of buffers to be allocated to a line at one time. of the block prefix used with an ASCII tape data set. only BUFOFF=L is valid. Number must be 2 through 15 and must be equal to or greater than the larger of the numbers specified by the BUFIN and BUFOUT subparameters.

QNAME. Note: Do not code the CPRI subparameter with DCB subparameter THRESH. Note: Do not code the BUFSIZE subparameter with DCB subparameter BLKSIZE. The combined number of BUFIN and BUFOUT values must not be greater than the number of buffers in the buffer pool for this line group (not including those for disk activity only) and cannot exceed 15. OUTLIM. Default: 2 Note: Do not code the BUFOUT subparameter with DCB subparameter BUFNO. Chapter 12. UCS. DD Statement 12-61 . CYLOFL X CYLOFL=tracks Specifies the number of tracks on each cylinder to hold the records that overflow from other tracks on that cylinder. QNAME. Specify CYLOFL only when OPTCD=Y. Note: Do not code the CYLOFL subparameter with DCB subparameter RESERVE. or DD parameter DDNAME. S Specifies that processor sending has priority over processor receiving. Length must be 31 through 65535 bytes. in bytes. or DD parameters DDNAME.DD: DCB Access Method B D DCB A Subparameters M BUFOUT B I S A M B P A M B S A M B T A M E X C P Q I G S A A M M Q S A M T C A M Description of Subparameters X BUFOUT=buffers Specifies the number of buffers to be assigned initially for sending operations for each line in the line group. or DD parameters DDNAME. QNAME. CPRI X CPRI={R|E|S} Specifies the relative transmission priority assigned to the lines in this line group. or DD parameters DDNAME. E Specifies that receiving and sending have equal priority. BUFSIZE X BUFSIZE=bytes Specifies the length. The maximum is 99. of each of the buffers to be used for all lines in a particular line group. FCB. R Specifies that processor receiving has priority over processor sending.

12-62 z/OS V1R3. 1600 bpi assumed for 9-track with dual density or phase-encoded drives. GCR Group coded recording mode. QNAME. DIAGNS is ignored. in number of bits-per-inch. Default: 800 bpi assumed for 7-track tape and 9-track without dual density.0 MVS JCL Reference . 6250 bpi assumed for 9-track with 6250/1600 bpi dual density or group coded recording tape. Note: Do not code the DEN subparameter with DD parameters DDNAME. See z/OS DFSMSdfp Diagnosis Reference for more information. If the generalized trace facility (GTF) is not running and tracing user events. which gives a module-by-module trace of OPEN/CLOSE/EOV’s work area and the DCB. DIAGNS X X X X X X X X X DIAGNS=TRACE Specifies the OPEN/CLOSE/EOV trace option. used to write a magnetic tape data set.DD: DCB Access Method B D DCB A Subparameters M DEN B I S A M B P A M B S A M X B T A M E X C P X Q I G S A A M M Q S A M X T C A M Description of Subparameters DEN={1|2|3|4} Specifies the magnetic density. PE Phase encoded recording mode. DEN 7-track tape 9-track tape 1 556 2 800 800 (NRZI) 3 1600 (PE) 4 6250 (GCR) NRZI Non-return-to-zero inverted recording mode.

QISAM.EXCP (PDS or PDSE) | POU Partitioned data set (PDS) that| BPAM. Default ABE Note: Do not code the EROPT subparameter with DD parameters DDNAME. x=SKP System is to skip the block causing the error.EXCP that contains | location-dependent information | PO Partitioned data set |BPAM. RECORG. QNAME.EXCP. x=T QSAM: Specifies the option to be executed if an error occurs in reading or writing a record. x=ACC System is to accept the block causing the error. QNAME. x=ABE System is to cause abnormal end of task. Chapter 12.QSAM.DD: DCB Access Method B D DCB A Subparameters M DSORG X B I S A M X B P A M X B S A M X B T A M X E X C P X Q I G S A A M M X X Q S A M X T C A M Description of Subparameters X DSORG=organization Specifies the organization of the data set and indicates whether the data set contains any location-dependent information that would make the data set unmovable.EXCP DAU Direct access data set that | BDAM.EXCP ISU Indexed sequential data set | QISAM.EXCP contains location-dependent | information | IS Indexed sequential data set | BISAM. Note: Do not code the DSORG subparameter with DD parameters DDNAME. Organization | Access Method ___________________________________ _ _____________________ PS Physical sequential data set | BSAM. | TCAM PSU Physical sequential data set | BSAM.EXCP contains location-dependent | information | CX Communications line group | BTAM GS Graphic data control block | GAM EROPT X X EROPT=x BTAM: Requests the BTAM on-line terminal test option. DD Statement 12-63 .EXCP that contains | location-dependent information | DA Direct access data set | BDAM.QSAM.

The only valid combinations of these values are: I R P W WT RP RPD RW RWT PW PWXT RPW RPWXT RPWD RWX RWXT PWX RPWX RWX Default: P. D Protected data set is for punching. Note: Do not code the IPLTXID subparameter with DD parameters DDNAME. BFTEK. INTVL X INTVL={n|0} Specifies the interval. UCS. between passes through an invitation list. Default: 0 Note: Do not code the INTVL subparameter with DD parameters DDNAME. Note: Do not code the FUNC subparameter with the data-set-sequence number of the DD LABEL parameter. for output data set. R Data set is for reading cards.DD: DCB Access Method B D DCB A Subparameters M FUNC B I S A M B P A M B S A M X B T A M E X C P Q I G S A A M M Q S A M X T C A M Description of Subparameters FUNC={I|R|P|W|D|X|T} Specifies the type of data set to be opened for a 3505 Card Reader or 3525 Card Punch. I Data set is for punching and printing cards. in seconds. QNAME. W Data set is for printing. R. QNAME. IPLTXID X IPLTXID=member Specifies the name of the partitioned data set (PDS) member that you want loaded into a 3704/3705 Communications Controller. or DD parameters DDNAME. Note: Do not code the GNCP subparameter with DCB subparameters BFALN. 12-64 z/OS V1R3. T Two-line print option.0 MVS JCL Reference . P Data set is for punching cards. QNAME. QNAME. DSNAME. FCB. for input data set. The DCB IPLTXID subparameter overrides IPLTXID in the TERMINAL macro representing the NCP. X Data set is for both punching and printing. GNCP X GNCP=n Specifies the maximum number of I/O macro instructions that the program will issue before a WAIT macro instruction. or DD parameters DDNAME. Unpredictable results will occur if coded for other than a 3505 or 3525.

LIMCT is ignored. TRTCH. you must also specify either C or E. MODE X X X MODE= {C [O]} {E [R]} Specifies the mode of operation to be used with a card reader.DD: DCB Access Method B D DCB A Subparameters M KEYLEN X B I S A M B P A M X B S A M X B T A M E X C P X Q I G S A A M M X Q S A M T C A M Description of Subparameters X KEYLEN=bytes The KEYLEN keyword subparameter is described on the DD KEYLEN parameter. Do not code the MODE subparameter for data entered through the input stream except in a JES3 system. DD Statement 12-65 . QNAME. LIMCT X LIMCT={blocks|tracks} Specifies how many blocks (if relative block addressing is used) or how many tracks (if relative track addressing is used) are to be searched for a free block or available space. Chapter 12. C Card image (column binary) mode E EBCDIC mode O Optional mark read mode R Read column eliminate mode If you specify R. the entire data set is searched. otherwise. QNAME. If the LIMCT number equals or exceeds the number of blocks or tracks in the data set. a card punch. Default: E Note: Do not code the MODE subparameter with DCB subparameters KEYLEN. PRTSP. page 12-140. LRECL X X X X X X LRECL=bytes The LRECL keyword subparameter is described on the DD LRECL parameter. or a card read-punch. Note: Do not code the LIMCT subparameter with DD parameters DDNAME. or DD parameters DDNAME. This kind of search occurs only when DCB OPTCD=E is also specified. KEYLEN. page 12-127. Do not code MODE=C for JES2 or JES3 output.

The DCB NTM is needed only when the DCB OPTCB=M. The maximum number for BISAM is 99. or DD parameters DDNAME. the number should be greater than 1. QNAME. 12-66 z/OS V1R3. QNAME.0 MVS JCL Reference . If chained scheduling is used. When the specified number of tracks has been filled. If you specify OPTCD=M but omit NTM. but may actually be smaller depending on the size of the address space. or DD parameters DDNAME.DD: DCB Access Method B D DCB A Subparameters M NCP B I S A M X B P A M X B S A M X B T A M E X C P Q I G S A A M M Q S A M T C A M Description of Subparameters NCP=n Specifies the maximum number of READ or WRITE macro instructions that may be issued before a CHECK macro instruction is issued to test for completion of the I/O operation. Default: 1 Note: Do not code the NCP subparameter with DCB subparameter BUFMAX. a master index is created. Note: Do not code the NTM subparameter with DCB subparameter PCI. NTM X NTM=tracks Specifies the number of tracks to be used for a cylinder index. The maximum number is 255 for BSAM and BPAM. the master index option is ignored.

requests a validity check for write operations on direct access devices. the DCB RKP must be greater than zero for fixed-length records and greater than four for variable-length records. LIMCT must also be coded. indicates that an extended search (more than one track) is to be performed for a block of available space. the processing program can modify the DCB OPTCD field. or in the DD DCB parameter. The problem program can analyze these statistics to determine when to reorganize the data set. F W BISAM: OPTCD={[L][R][W]} L requests that the control program delete records that have a first byte of all ones. do not code commas between the characters. All optional services must be requested in one source. in the data set label of an existing data set. requests a validity check for write operations on direct access devices. indicates that feedback can be requested in READ and WRITE macro instructions and the device is to be identified in the same form as it was presented to the control program. whenever the OPTCD subparameter is omitted from all sources. Do not code LIMCT=0 because it will cause an abnormal termination when a READ or WRITE macro instruction is executed. However. BDAM: OPTCD= {A}[E][F][W] {R} A R E indicates that the actual device addresses are to be specified in READ and WRITE macro instructions. Chapter 12. Code the characters in any order. DD Statement 12-67 . requests that the control program place reorganization criteria information in certain fields of the DCB. These records will be deleted when space is required for new records. that is. when coding more than one. R W Default: R. indicates that relative block addresses are to be specified in READ and WRITE macro instructions.DD: DCB Access Method B D DCB A Subparameters M OPTCD X B I S A M X B P A M X B S A M X B T A M E X C P X Q I G S A A M M X Q S A M X T C A M Description of Subparameters X Specifies the optional services to be performed by the control program. To use the delete option. Note: Do not code the OPTCD subparameter with DD parameter DDNAME. in the DCB macro.

For an input data set on a standard-labeled (SL or AL) tape. See ″Data Sets that Span Libraries″ in z/OS MVS JCL User’s Guide for a description of allocation processing for multi-volume data sets created in different tape libraries. the EOV routine treats EOF labels as EOV labels until the volume serial list is exhausted. {B } {T } {U[C] } {C[T][B][U] } {H[Z][B] } {J[C][U] } {W[C][T][B][U]} {Z[C][T][B][U]} {Q[C][T][B] } {Z } BSAM and QSAM: OPTCD= B requests that the end-of-volume (EOV) routine disregard the end-of-file (EOF) recognition for magnetic tape. requests a validity check for write operations.DD: DCB Access Method B D DCB A Subparameters M OPTCD (continued) B I S A M B P A M B S A M B T A M E X C P Q I G S A A M M Q S A M T C A M Description of Subparameters BPAM: OPTCD= {C|W|CW} C W has no effect. The TRC identifies which character arrangement table in the CHARS parameter is to be used to print the line. instructs the system that the logical record for each output data line contains a table reference character (TRC). This option allows SL or AL tapes to be read out of volume sequence or to be concatenated to another tape with the same data set name using one DD statement. see the 3800 Programmer’s Guide. requests chained scheduling. Before specifying OPTCD=J.0 MVS JCL Reference . for a data set to be printed on a 3800 Printing Subsystem. C H J 12-68 z/OS V1R3. requests hopper empty exit for optical readers or bypass of DOS checkpoint records.

requests user totaling facility. If U is omitted. data checks are not recognized as errors.DD: DCB Access Method B D DCB A Subparameters M OPTCD (continued) B I S A M B P A M B S A M B T A M E X C P Q I G S A A M M Q S A M T C A M Description of Subparameters BSAM and QSAM (continued): Q indicates that all the user data in the data set is in ASCII. When specified. OPTCD=Z has no effect on a tape cartridge. Chapter 12. DD Statement 12-69 . For a PDSE. The data set must reside on magnetic tape and must not contain IBM standard labels. requests that the control program shorten its normal error recovery procedure. specified as LABEL=(. The record format (RECFM) must not be V but can be D. T U W Z OPTCD=Z is ignored if chained scheduling or a tape cartridge is used. all options except OPTCD=J are ignored. EXCP: OPTCD=Z Z for magnetic tape reel input. requests that the control program shorten its normal error recovery procedure. a data check is considered permanent after five unsuccessful attempts to read a record. When specified. BSAM or QSAM converts the records from ASCII to EBCDIC when reading and converts the records from EBCDIC to ASCII when writing. requests a validity check for write operations on direct access devices.AL). for magnetic tape reel input. the system forces OPTCD=Q. T cannot be specified for a SYSIN or sysout data set. If the label type is ISO/ANSI/FIPS. Requests ″tape write immediate″ mode on a cartridge tape device such as the IBM 3490 Magnetic Tape Subsystem. a data check is considered permanent after five unsuccessful attempts to read a record. for 1403 or 3211 Printers with the Universal Character Set (UCS) feature and for the 3800. permits data checks and allows analysis by an appropriate error analysis routine.

DD: DCB Access Method B D DCB A Subparameters M OPTCD (continued) B I S A M B P A M B S A M B T A M E X C P Q I G S A A M M Q S A M T C A M Description of Subparameters QISAM: OPTCD={[I][L][M][R][U][W][Y]} I L requests that ISAM use the independent overflow areas for overflow records. U can be specified only for fixed-length records. specifies that the name of each message source is to be placed in an 8-byte field in the work area. according to the number of tracks specified in the DCB NTM subparameter. The problem program can analyze these statistics to determine when to reorganize the data set. M R U W Y Default: R. If U is omitted. requests that ISAM delete records that have a first byte of all ones. middle. To use the delete option. requests that the system accumulate track index entries in storage and write them as a group for each track of the track index. the DCB RKP must be greater than zero for fixed-length records and greater than four for variable-length records. requests that the system use the cylinder overflow areas for overflow records. TCAM: OPTCD={C|U|W} C specifies that one byte of the work area indicates if a segment of a message is the first. or last segment. specifies that the work unit is a message. the work unit is assumed to be a record.0 MVS JCL Reference . These records can be deleted when space is required for new records. U W 12-70 z/OS V1R3. requests that the control program place reorganization criteria information in the DCB. whenever the OPTCD subparameter is omitted from all sources. requests a validity check for write operations on direct access devices. requests that the system create and maintain one or more master indexes.

R])} {([A][. MODE. The first operand applies to receiving operations and the second to sending operations.single. and a buffer is allocated to take its place. The first buffer is not freed.N])} PCI= {([R][. QNAME. STACK.X])} Specifies (1) whether or not a program-controlled interruption (PCI) is to be used to control the allocation and freeing of buffers and (2) how these operations are to be performed. QNAME. but a new buffer is allocated. or DD parameters DDNAME. KEYLEN.A])} {([X][. a PCI occurs during the filling or emptying of the next buffer. N specifies that no PCIs are taken while filling buffers during receiving operations or emptying buffers during sending operations. Default: (A. PRTSP is valid only for an online printer and only if the RECFM is not A or M.DD: DCB Access Method B D DCB A Subparameters M PCI B I S A M B P A M B S A M B T A M E X C P Q I G S A A M M Q S A M T C A M Description of Subparameters X {([N][. PRTSP=2 is ignored if specified with the DD SYSOUT parameter. or DD parameters DDNAME.A) Note: Do not code the PCI subparameter with DCB subparameter NTM.double. specifies that after the first buffer is filled or emptied. DD Statement 12-71 . 2 . R A X You can omit the parentheses if you code only the first operand. The completed buffer is freed. 0 . The first buffer is freed. specifies that after the first buffer is filled or emptied. 1 . specifies that after a buffer is filled or emptied.triple spacing JES2 ignores PRTSP for sysout data sets. Default: 1 Note: Do not code the PRTSP subparameter with DCB subparameters KEYLEN. a PCI occurs during the filling or emptying of each succeeding buffer.spacing is suppressed. a PCI occurs during the filling or emptying of the next buffer. TRTCH. Chapter 12. 3 . but no new buffer is allocated to take its place. PRTSP X X X PRTSP={0|1|2|3} Specifies the line spacing for an online printer.

RESERVE X RESERVE=(bytes1.bytes2) Specifies the number of bytes (0 through 255) to be reserved in a buffer for insertion of data by the DATETIME and SEQUENCE macros. if OPTCD=L is not specified. bytes2 indicates the number of bytes to be reserved in all the buffers following the first buffer in a multiple-buffer header situation. the key is not written in the data field. For EXCP processing. the relative key position must be 4 or greater. For variable-length records. 12-72 z/OS V1R3. or DD parameters DDNAME. the key begins in the first byte of each record. the relative key position must be 5 or greater. FCB. Specifies the position of the first byte of the record key in each logical record. RKP. KEYOFF. UCS. Default: 0 Note: Do not code the RKP subparameter with DCB subparameter RESERVE. UCS. or DD parameters DDNAME. page 12-165.DD: DCB Access Method B D DCB A Subparameters M RECFM X B I S A M B P A M X B S A M X B T A M E X C P X Q I G S A A M M X Q S A M X T C A M Description of Subparameters X RECFM=format The RECFM keyword subparameter is described on the DD RECFM parameter. RKP can be coded but is ignored.0 MVS JCL Reference . QNAME. OPTCD=L must not be specified.0) Note: Do not code the RESERVE subparameter with DCB subparameters CYLOFL. use the DD KEYOFF or DATACLAS parameter. KEYOFF. If RKP=0 is specified for unblocked fixed-length records. bytes1 indicates the number of bytes to be reserved in the first buffer that receives an incoming message. RKP X X RKP=number With SMS. if OPTCD=L is specified. The first byte of a logical record is position 0. Default: (0. OPTCD=L can be specified. If RKP=0 is specified for blocked fixed-length records.

TRTCH. OUTLIM. or DD parameters DDNAME.DD: DCB Access Method B D DCB A Subparameters M STACK B I S A M B P A M B S A M X B T A M E X C P X Q I G S A A M M Q S A M X T C A M Description of Subparameters STACK={1|2} Specifies which stacker bin is to receive a card. Note: Do not code the THRESH subparameter with DCB subparameter CPRI. QNAME. PRTSP. DD Statement 12-73 . QNAME. KEYLEN. or DD parameters DDNAME. THRESH X THRESH=nn Specifies the percentage of the nonreusable disk message queue records that are to be used before a flush closedown occurs. Chapter 12. Default: Closedown occurs when 95 percent of the records have been used. Default: 1 Note: Do not code the STACK subparameter with DCB subparameters KEYLEN.

TRTCH subparameter. or DD parameters DDNAME. See z/OS MVS JCL User’s Guide for information about using IEFBR14 and the TRTCH subparameter. specifies no data conversion. PRTSP. data sets after the first data set have the same compaction value (COMP or NOCOMP) as the first data set. however. 4. DEVSUPxx member of SYS1. If specified. does not have to be system-managed. and that BCD to EBCDIC translation is required when reading and EBCDIC to BCD translation when writing. The hardware model. specifies no data conversion. as set by the storage administrator. The following sources can specify compaction: 1. Data compaction is not supported with ISO/ANSI labels. ET Default: no conversion. it will be ignored. Data class. or ET: specifies the recording technique for 7-track tape. The system takes the compaction value from the first source that specifies it. The system ignores any compaction specified on data sets after the first. MODE. and no translation. STACK. the default is COMP.PARMLIB. odd parity. odd parity. 2. and no translation. QNAME. 12-74 z/OS V1R3. even parity. the default is NOCOMP. With COMP or NOCOMP: specifies data compaction or no data compaction on a tape device enabled for compaction. For the IBM 3490. and that BCD to EBCDIC translation is required when reading and EBCDIC to BCD translation when writing. C E T specifies data conversion. Note: Do not code the TRTCH subparameter with DCB subparameters KEYLEN. specifies no data conversion. Note: TRTCH is not applicable for DASD data sets. KEYLEN.0 MVS JCL Reference . and no translation. E. COMP specifies data compaction. T. even parity.DD: DCB Access Method B D DCB A Subparameters M TRTCH B I S A M B P A M B S A M X B T A M E X C P X Q I G S A A M M Q S A M X T C A M Description of Subparameters TRTCH={C|E|T|ET} {COMP|NOCOMP} With C. odd parity. For the IBM 3480. The tape. 3. NOCOMP specifies no data compaction Defaults: On an IBM standard label tape.

The referenced DD statement must be later in the same job step. optional Purpose Use the DDNAME parameter to postpone defining a data set until later in the same job step. Overrides If any DCB subparameter appears on both DD statements. Each DDNAME parameter must refer to a different DD statement. or STEPCAT. the DCB subparameter on the referenced DD statement overrides the DCB subparameter on the DD statement that contains DDNAME. Chapter 12. Location in the JCL Place a DD statement containing a DDNAME parameter in a job step or in a cataloged or in-stream procedure. Syntax DDNAME=ddname v The DDNAME parameter can have a null value only when coded on a DD which either: – Overrides a DD in a procedure – Is added to a procedure. A job step or procedure step can contain up to five DD statements with DDNAME parameters.DD: DDNAME DDNAME Parameter Parameter Type Keyword. DD Statement 12-75 . A DDNAME parameter on a DD statement in a cataloged or in-stream procedure allows you to postpone defining the data set until a job step calls the procedure. or must be in a cataloged or in-stream procedure called by the job step. Relationship to Other Parameters The only DD parameters you can code with the DDNAME parameter are: DCB=BLKSIZE DCB=BUFNO DCB=DIAGNS LIKE REFDD Do not code the DDNAME parameter on a DD statement with a ddname of JOBLIB. JOBCAT. ddname must match the ddname of the referenced DD statement. Subparameter Definition ddname Refers to a later DD statement that defines the data set. must be in the calling job step. the data set must be defined in the calling job step.

Errors in Location of Referenced DD Statement The system treats a DDNAME parameter as though it were a DUMMY parameter and issues a warning message in the following cases: v If the job step or called procedure does not contain the referenced DD statement. DD DD PGM=TKM DDNAME=DD4 DSNAME=A. 12-76 z/OS V1R3. Referenced DD Statement If the DDNAME parameter appears in a procedure with multiple steps. For example.0 MVS JCL Reference .DISP=OLD UNIT=AFF=DD1 DD1 postpones defining the data set until DD4.DISP=OLD DSNAME=B. Location of DD Statements for Concatenated Data Sets To concatenate data sets to a data set defined with a DDNAME parameter. the DD statement requesting unit affinity must be placed after the referenced DD statement. the system assigns DD5 to the same device as DD1. not the referenced DD statement that defines the data set. Instead of specifying UNIT=AFF=ddname. If a DD statement requests unit affinity to a DD statement containing a DDNAME parameter.DD: DDNAME Do not use the name of a DDNAME statement more than once within the same step. DD5 requests unit affinity to DD1.DD1 DD * Parameters not Permitted on the Referenced DD Statement The referenced DD statement must not contain a DYNAM or PATH parameter. both DD statements can specify the same devices in their UNIT parameters or the same volume serials in their VOLUME parameters. the ddname on the referenced DD statement takes the form stepname. Because DD1 has been defined when DD5 is processed. the unnamed DD statements must follow the DD statement that contains the DDNAME parameter. //STEP //DD1 //DD2 //DD4 //DD5 EXEC DD DD . Location of DD Statement Requesting Unit Affinity To use the same device. if procedure step STEPCP1 contains: //INDATA DD DDNAME=DD1 The referenced DD statement in the calling job step is: //STEPCP1. a DD statement can request unit affinity to an earlier DD statement by specifying UNIT=AFF=ddname. v If the referenced DD statement appears earlier in the job step. . If the DD statement requesting unit affinity appears before. the system treats the DD statement requesting unit affinity as a DUMMY DD statement.ddname.

DISP=SHR Chapter 12. //STEP1 //SYSPRINT //SYSUT1 //INPUT // //SYSUT2 //SYSIN EXEC DD DD DD DD DD DD PGM=IEBGENER SYSOUT=* DDNAME=INPUT DSN=TSTDATA1. DD Statement 12-77 . TSTDATA1. For example: //STEP1 //SYSUT1 //SYSPRINT //SYSUT2 //INPUT // //SYSIN EXEC DD DD DD DD DD DD PGM=IEBGENER DDNAME=INPUT SYSOUT=* SYSOUT=* DSN=TSTDATA1. the rest of the data sets in the concatenation are appended to the first data set in the concatenation.DISP=SHR DSN=MYDSN3. TSTDATA2 will be appended to SYSUT2. the second data set in the DDNAME forward reference INPUT.DISP=SHR SYSOUT=* DUMMY In this example.DD: DDNAME A DD statement that contains a DDNAME parameter must not override a procedure sysout DD statement that contains an OUTPUT parameter if the referenced DD statement also contains an OUTPUT parameter.DISP=SHR DSN=TSTDATA2.DISP=SHR DSN=TSTDATA2. The following example illustrates this. In that example IEBGENER will only recognize TSTDATA1 as input.DISP=SHR TPROC DSN=MYDSN1. Note that this may result in these concatenated DDs being added to an unexpected DD. TSTDATA2. will be appended to SYSUT1 as well. the last DD statement preceding the concatenation. If there are no DD statements between the forward reference and the concatenation. If there are any DD statements between the forward reference and the concatenation. //TPROC //S1 //DD1 //DD2 //DD3 //S2 //DDA //DDB //DDC // //STEP1 //INPUT PROC EXEC DD DD DD EXEC DD DD DD PEND EXEC DD PGM=IEFBR14 DDNAME=INPUT DSN=MYDSN2. IEBGENER will recognize TSTDATA1 and TSTDATA2 as input.DISP=SHR DUMMY In the preceding example. The following example illustrates this.DISP=SHR PGM=IEFBR14 DDNAME=INPUT DSN=MINE2. defined in the DDNAME forward reference INPUT.DISP=SHR DSN=MINE3. the forward reference resolves to the first data set in the concatenation. References to Concatenated Data Sets If you make a forward reference to a concatenation. the rest of the data sets in the concatenation are appended to the last DD statement preceding the concatenation. SYSUT1 will resolve to the first data set TSTDATA1. defined by the DDNAME forward reference INPUT. If a concatenated DD is added to a procedure. SYSUT1 will resolve to the first data set. the remaining concatenated data sets will be concatenated to the last DD in the step named in an override or addition (or to the first step if no step was named in an override or addition).

Backward References A backward reference is a reference to an earlier DD statement in the job or in a cataloged or in-stream procedure called by a job step. The ddname in the reference is the ddname of the earlier DD statement.stepname.DD: DDNAME // DD //S2.2)) DSNAME=OUTLIST. the DDNAME parameter is coded to postpone defining the data set until the procedure is called by a job step. the reference is to the ddname in the name field of the earlier statement. which is the name field ddname.1).DISP=SHR In the preceding example.ddname or *.VOLUME=REF=*.SPACE=(TRK.ddname.UNIT=3330.DISP=OLD. DD statement INPUT cannot use a backward reference to the VOLUME parameter on DD5 because DD5 is between the referring DD1 and the referenced INPUT.KEEP).DISP=SHR DSN=MINE4. For example: //SHOW //DD1 //DD2 //DD3 // //DD4 //DD5 //INPUT // EXEC DD DD DD DD DD DD PGM=ABLE DDNAME=INPUT DSNAME=TEMPSPAC. Examples of the DDNAME Parameter Example 1 The following procedure step is the only step in a cataloged procedure named CROWE: //PROCSTEP EXEC PGM=RECPGM //DD1 DD DDNAME=WKREC //POD DD DSNAME=OLDREC. A backward reference is in the form *.VOLUME=SER=333333. Because the * and DATA parameters cannot be used in cataloged procedures.SPACE=(TRK.VOLUME=SER=333333 DSNAME=NEWLIST.stepname. The DD statement referenced in a DDNAME parameter cannot refer to a DD statement between the statement containing the DDNAME parameter and itself. these records are processed by this step.ddname or *.UNIT=SYSDA DSNAME=INCOPY. the result of the DDNAME forward reference INPUT is: v In step S1.procstepname. DDA resolves to data set MINE1 and data set MINE4 is concatenated to data set MINE3.(5. The VOLUME parameter of DD3 specifies a backward reference to DD1. UNIT=3330 The DDNAME parameter on DD1 refers to DD statement INPUT. DD1 resolves to data set MYDSN1 and data set MYDSN4 is concatenated to data set MYDSN3.DISP=(OLD. The step that calls the procedure is: 12-78 z/OS V1R3. DD statement INPUT identifies the volume 333333 in its VOLUME=SER=333333 parameter.KEEP).DISP=OLD DD statement DD1 is intended for weekly records in the input stream. v In step S2.0 MVS JCL Reference . If the earlier DD statement contains a DDNAME parameter.INPUT DD // DD DSN=MYDSN4.DISP=SHR DSN=MINE1.DISP=OLD DSNAME=MESSAGE.DD1. not to the ddname in the DDNAME parameter. DISP=(.

/* Example 3 When the referenced DD statement is to be a concatenation.DD: DDNAME //STEPA //WKREC EXEC PROC=CROWE DD * .ddname for the ddname of the referenced DD statement. use the form stepname. .QUOTES DD * . . data . /* Example 2 When the procedure contains multiple steps. . the following procedure steps appear in a cataloged procedure named PRICE: //STEP1 //DD1 EXEC DD . . //NEWONE //STEP1 //DD1 // PROC EXEC PGM=TRYIT DD DDNAME=INSTUFF DD DSN=OLDSTUFF. the procedure must already contain the concatenation. For example. /* The instream data (DDNAME=INSTUFF) is inserted before OLDSTUFF in the concatenation. the following procedure step appears in cataloged procedure NEWONE.DISP=OLD The step that calls the procedure is: //STEPA EXEC PROC=PRICE //STEP1. DD Statement 12-79 . INPUT1 Chapter 12.INSTUFF DD * . PGM=SUGAR DDNAME=QUOTES PGM=MOLASS DSNAME=WEEKB. Example 4 In the following example we create a DD concatenation in a procedure using multiple DDNAME forward references. data . In the example. INPUT1—INPUT5.DISP=OLD . //STEP2 EXEC //DD2 DD . . data . The step that calls the procedure is: //STEPA EXEC PROC=NEWONE //STEP1.) For example. . (Such as when the referencing DD statement is to contain in-stream data. .

DD: DDNAME resolves to data set FIRST.DISP=SHR DD DSN=THIRD. Note: Code the DEST parameter only on a DD statement with a SYSOUT parameter. or a node and userid. then ignores it. INPUT4 and INPUT5 resolve to DUMMY. Otherwise. and INPUT3 resolves to data set THIRD. //ABC //SI //DD1 // // // // //STEP1 //INPUT1 //INPUT2 //INPUT3 PROC EXEC PGM=IEFBR14 DD DDNAME=INPUT1 DD DDNAME=INPUT2 DD DDNAME=INPUT3 DD DDNAME=INPUT4 DD DDNAME=INPUT5 EXEC ABC DD DSN=FIRST. optional Purpose Use the DEST parameter to specify a destination for a sysout data set. a node and remote workstation. INPUT2 resolves to data set SECOND.DISP=SHR DEST Parameter Parameter Type Keyword. The DEST parameter can send a sysout data set to a remote or local terminal. For more information about USERID and WRITER ID.DISP=SHR DD DSN=SECOND.0 MVS JCL Reference . 12-80 z/OS V1R3. the system checks the DEST parameter for syntax. a node. see z/OS MVS JCL User’s Guide. a local device or group of devices.

#.userid) (nodename. name Identifies a destination by a symbolic name which is defined by the installation during JES2 initialization. The name is 1 through 8 alphanumeric or national ($. The maximum number of digits for n and m combined cannot exceed six. is 1 through 4 decimal numbers from 1 through 1000. remote device. Do not code leading zeros in n or m. nnnn is 1 through 4 decimal numbers from 1 through 1000. @) characters. The name can be. Rmmmm RMmmmm Chapter 12. Nnnnn Identifies a node. The remote work station number.DD: DEST Syntax DEST=destination The destination subparameter for JES2 is one of the following: LOCAL|ANYLOCAL name Nnnnn NnnRmmmm NnnnRmmm NnnnnRmm Rmmmm RMmmmm RMTmmmm Unnnn (node. indicated in the format by m.devicename) Subparameter Definition for JES2 Systems LOCAL|ANYLOCAL Indicates the local node on a local device.remote) Identifies a node and a remote work station connected to the node. NnnRmmmm NnnnRmmm NnnnnRmm (node. Note: NnnR0 is equivalent to LOCAL specified at node Nn. for example. The node number. is 1 through 4 decimal numbers from 1 through 9999. indicated in the format by n. DD Statement 12-81 .userid) userid The destination subparameter for JES3 is one of the following: ANYLOCAL device-name device-number group-name nodename (node. a local device. or a userid.

this syntax is a valid subset of DEST=(node. Precede a 4-digit number with a slash (/). userid Identifies a userid at the local node. @) characters.0 MVS JCL Reference . #. or a group of 12-82 z/OS V1R3. userid for TSO/E is 1 through 7 alphanumeric or national ($. node is 1 through 8 alphanumeric or national ($. however. but not SYSOUT=(A.DEST=(node). the installation may translate this route code to another route code. For JES2 to print the output at RMTmmmm at the executing node. JES2 returns the output to Unnnn at the node of origin. group-name Identifies a group of local devices.DEST=(node. Note: You can code DEST=(nodename.userid) is not valid. If you send a job to execute at a remote node and the job has a ROUTE PRINT RMTmmmm statement. Unnnn Identifies a local terminal with special routing. #.userid). @) characters.writer-name). @) characters and for VM is 1 through 8 alphanumeric or national ($. device-name is 1 through 8 alphanumeric or national ($. Note that with remote pooling. @) characters. #.writername). code DEST=NnnnRmmm on an OUTPUT JCL statement or sysout DD statement. A 3-digit number can be specified with or without a slash. Therefore. you can code SYSOUT=(A. #. an individual remote station.userid). device-number Identifies a specific device by a 3-digit or 4-digit hexadecimal number.userid) Identifies a node and a TSO/E or VM userid at that node. The node is a symbolic name defined by the installation during initialization. (node. DEST=(node. Subparameter Definition for JES3 Systems ANYLOCAL Indicates any local device that is attached to the global processor. mmmm is 1 through 4 decimal numbers from 1 through 9999. DEST=(node) is valid with a writer-name subparameter in the SYSOUT parameter. nnnn is 1 through 4 decimal numbers from 1 through 9999. If you send a job to execute and the job has a ROUTE PRINT Unnnn statement. The userid must be defined at the node. device-name Identifies a local device by a symbolic name defined by the installation during JES3 initialization. JES2 returns the output to RMTmmmm at the node of origin. See your system programmer for information regarding how routings will be interpreted by JES2. Note: R0 indicates any local device.Unnnn) here.DD: DEST RMTmmmm Identifies a remote workstation. Note: JES2 initialization statements determine whether or not the node name is required when coding a userid.

nodename Identifies a node by a symbolic name defined by the installation during JES3 initialization. @) characters. DEST=(node) is valid with a writer-name subparameter in the SYSOUT parameter: however. DD Statement 12-83 . code DEST=(node.writer-name). and the destination ANYLOCAL. @) characters. @) characters. @) characters.devicename) Identifies by symbolic names defined by the installation during JES3 initialization. For jobs submitted through TSO/E and routed to NJE for execution. nodename is 1 through 8 alphanumeric or national ($. (nodename.userid) Identifies a node and a TSO/E or VM userid at that node.DD: DEST remote stations by a symbolic name defined by the installation during JES3 initialization. #. #. In a JES3 system. A userid requires a node. The userid must be defined at the node. If a specified destination is invalid. If you’ve coded the ORG parameter but did not explicitly code a primary destination.userid) is invalid. you can code SYSOUT=(A. JES directs the sysout data set to the default destination for the input device from which the job was submitted. Use this form of the DEST parameter to override the ORG parameter. userid for TSO/E is 1 through 7 alphanumeric or national ($. Chapter 12. group-name is 1 through 8 alphanumeric or national ($. the default primary destination is the node specified in the ORG parameter. therefore. Defaults If you do not code a DEST parameter. the default is the node from which the job was submitted. Relationship to Other Parameters Code the DEST parameter only on a DD statement with the SYSOUT parameter. Therefore. If the nodename you specify is the same as the node you are working on. if you do not code a DEST parameter. #. #. The node is a symbolic name defined by the installation during initialization. DEST=(node. JES3 treats the output as though you specified ANYLOCAL. not the submitting node. the job fails. nodename and devicename are each 1 through 8 alphanumeric or national ($.DEST=(node). (node. @) characters and for VM is 1 through 8 alphanumeric or national ($.userid). a node and a device defined to that node. node is 1 through 8 alphanumeric or national ($. #. Overrides The DEST parameter on the sysout DD statement overrides an OUTPUT JCL DEST parameter. #. the default destination is the submitting location. You cannot code a userid without a node. @) characters.

MSGCLASS=B PGM=INTEREST SYSOUT=A SYSOUT=A. v DISP=NEW. the system sends the sysout data set defined by DD statement DEBIT to the work station that submitted the job. //*FORMAT PR. If the system obtains unit and volume information for an OLD.DEST=(BOCA.0 MVS JCL Reference . MOD.DD: DEST Relationship to Other Control Statements You can also code an output destination using: v The OUTPUT JCL statement. If the UNIT parameter specifies a device. or DISP=OLD on a dynamic allocation request. if needed. or DISP=OLD on a JCL request.DEST=R555 SYSOUT=A. and the data set defined by DD statement FLOR to VM userid 9212U28 at node BOCA. Example of the DEST Parameter //JOB01 //STEP1 //DEBIT //CALIF //FLOR JOB EXEC DD DD DD . DISP=MOD. and //*FORMAT PU control statements. DISP Parameter Parameter Type Keyword. the system converts all requests for shared control of that data set within that job (DISP=SHR) to requests for exclusive control. Because DEST=(node. You can specify one disposition for normal termination and another for abnormal termination. on a DD or OUTPUT JCL statement. whether or not it is physically on the device. the data set is treated as if it exists. do not code the DISP parameter. you must code it. that does not involve a data set. disposition of the volume(s) on which the data set resides is a function of the volume status when the volume is demounted. Note: Disposition of the data set is controlled solely by the DISP parameter. the data set defined by DD statement CALIF to the remote terminal 555. or SHR status. For example.’9212U28’) In this example. v The JES3 //*MAIN. utility control statements that delete/scratch a data set will result in exclusive use of that data set.’MAE BIRD’. v The JES2 /*OUTPUT and /*ROUTE control statements. including dynamic allocation requests that result from the use of certain utility control statements. 12-84 z/OS V1R3. One of two methods can be used to request exclusive control: v DISP=NEW. When any step of a job requests exclusive control of a data set. optional Purpose Use the DISP parameter to describe the status of a data set to the system and tell the system what to do with the data set after termination of the step or job. such as a printer or telecommunications device. DISP=MOD.userid) cannot be coded on JES2 or JES3 control statements.

CATLG. SHR Indicates that the data set exists before this step and that other jobs can share it. DISP=(OLD.DELETE) or DISP=(. Syntax {DISP=status } {DISP=([status][. use it at the same time.KEEP ] [. v If you omit the second subparameter but code the third. For example. OLD Indicates that the data set exists before this step and that this step requires exclusive (unshared) use of the data set. the system does not verify the data set name in the header label.DD: DISP When any step of a job requests exclusive control of a data set (through DISP=NEW. MOD Indicates one of the following: Chapter 12.KEEP ] [. the system converts all requests for shared control of that data set within that job (DISP=SHR) to requests for exclusive control.KEEP). see z/OS DFSMS: Using Magnetic Tapes. If you specify DISP=SHR for an output tape data set and (1) the data set is not protected by RACF or a password or (2) the data set has no expiration date. you must code a comma to indicate the absence of NEW. Note: Initialize a new data set to ensure that it is empty.CATLG ] [. DISP=(.abnormal-termination-disp])} DISP= ( [NEW] [OLD] [SHR] [MOD] [. DISP=MOD. ] [. ] [.UNCATLG] v You can omit the parentheses if you code only the status subparameter.KEEP) or DISP=(.. or DISP=OLD). the system does not verify the data set name in the header label. If you specify DISP=OLD for an output tape data set and (1) the data set is not protected by RACF or a password or (2) the data set has no expiration date.DELETE ] [.UNCATLG] [.. that is. Subparameter Definition Status Subparameter NEW Indicates that a new data set is to be created in this step. v If you omit the status subparameter but code subparameters for normal or abnormal termination disposition.PASS ] [.DELETE). DD Statement 12-85 . This subparameter can also be coded as SHARE.DELETE ] ) [. For example. you must code a comma to indicate the absence of the second subparameter. References For information about tape data set processing.CATLG ] [.normal-termination-disp][.

if you do not specify an explicit volume serial number on the DD statement. v A VOLUME=REF parameter that refers to a DD statement that makes a nonspecific volume request. see Determining the Last Volume on page 12-91. the read/write mechanism is positioned after the last sequential record for an existing data set or at the beginning for a new data set. MOD specifies exclusive (unshared) use of the data set. After the system chooses a volume for a new data set. In either case. or passed with the data set from a previous step. you may code VOLUME=REF or VOLUME=SER. In a JES3 system. To use DISP=MOD to create a new data set. JES3 will not execute the job until all volumes. are allocated. code one of the following: v No VOLUME=SER or VOLUME=REF parameter on the DD statement. SMS-managed data sets require unique data set names. MOD causes the read/write mechanism to be positioned at the beginning of the data set.DD: DISP v The data set exists and records are to be added to the end of it. the system will try to allocate a different volume. the read/write mechanism is positioned after the last sequential record. – The two DD statements must request different areas of the same ISAM data set. Note: You cannot specify DISP=MOD to extend an ISO/ANSI/FIPS Version 3 tape data set unless the ISO/ANSI/FIPS Version 3 label validation installation exit allows the extension. For a new data set. the request fails. (A nonspecific volume request is a DD statement for a new data set that can be assigned to any volume or volumes. v In the case of tape. 12-86 z/OS V1R3. Such a job will wait on the queue until all volumes are allocated. For an SMS-managed data set the system ignores the volume. For a new generation of a generation data group (GDG) data set (where (+n) is greater than 0). the system assumes that the data set is being created in this job step. The data set must be sequential. When the data set is opened. If the system cannot find volume information for the data set on the DD statement. in the catalog. v A new data set is to be created. see z/OS DFSMS: Using Magnetic Tapes. For subsequent OPENs within the same step. For information on using ISO/ANSI/FIPS Version 3 installation exits. If a new data set is chosen to be SMS-managed and an existing SMS-managed data set has the same name. if the system finds another data set with the same name on that volume. the system requests the operator to mount a ″scratch″ tape. if you code DISP=MOD for a multivolume data set and any of the volumes are JES3-managed. If you are using DISP=MOD for an existing data set. including scratch volumes being added.) One of the following must also be true: – The DSNAME parameters in the two DD statements must be different.0 MVS JCL Reference . The data set must not be cataloged or passed from another job step. However.

cataloged. PASS Indicates that the data set is to be passed for use by a subsequent step in the same job. an existing data set is deleted if the expiration date has passed. see the documentation for the security product. Existing data sets: v If you set a retention period on the DD RETPD parameter. The data will remain on the tape until overwritten by another data set. otherwise the data set is kept. DELETE does not physically erase the data from the tape volume. For information on how to set the erase option. UNCATLG is ignored. Without SMS. the data set will be deleted whether or not the expiration date or the retention period has passed. uncataloged. the data will remain on the DASD until overwritten by another data set. The system will physically erase the data set itself only if the erase option of a security product. For new SMS-managed data sets. KEEP implies CATLG. If the system retrieves volume information from the catalog because the DD statement does not specify VOLUME=SER or VOLUME=REF. the system may overwrite the data set.DD: DISP Normal Termination Disposition Subparameter DELETE Indicates that the data set is no longer needed if this step terminates normally. See z/OS MVS Initialization and Tuning Reference for information on the IGDSMSxx parmlib member. or deleted. For a DASD data set. you can override the expiration date or retention period for SMS-managed data sets by specifying DELETE on the DD DISP parameter. however. VSAM data sets should not be passed.PARMLIB. v If you set an expiration date on the DD EXPDT parameter. DELETE means that the space occupied by that data set is available for use by other data sets. KEEP Indicates that the data set is to be kept on the volume if this step terminates normally. With SMS. Chapter 12. If the erase option is not in effect. For a tape data set. such as RACF. only KEEP is valid for VSAM data sets. New data sets: A new data set is deleted at the end of the step even though a retention period or expiration date is also specified. See the DD EXPDT or RETPD parameters. In that case. then DELETE implies UNCATLG: the system deletes the data set and removes its catalog entry. is in effect for this data set. DD Statement 12-87 . all dispositions are valid for VSAM data sets. If the tape volume is a public volume. an existing data set is deleted only if its retention period is passed. If the storage administrator specified OVRD_EXPDT(YES) in the IGDSMSxx member of SYS1. specifying DELETE allows the system to reuse the tape volume for other data sets that require a public volume.

the system is to place an entry pointing to the data set in the system or user catalog. Coding PASS does not ensure that the operator will not unload the volume or that the system will not demount it to accommodate another job step allocation. Abnormal Termination (Conditional) Disposition Subparameter DELETE Indicates that the data set’s space on the volume is to be released if this step terminates abnormally. v If you set an expiration date on the DD EXPDT parameter. If the system does demount a volume for which RETAIN was requested. With SMS. if the step terminates normally. UNCATLG is ignored for SMS-managed data sets and VSAM data sets (KEEP is implied). Note that the data set is kept. if the step terminates normally. the system replaces PASS with KEEP for permanent VSAM and non-VSAM data sets. 2. Note that the data set is kept. except for the highest level entry.) For example. if the current limit is 1635 DD statements. UNCATLG Indicates that. you can specify DISP=(NEW. When the system reaches the next step requiring that volume. the data set will be deleted whether or 12-88 z/OS V1R3.DD: DISP With SMS. unless the volume request is nonspecific or unless the data set is allocated to a dual-density tape drive but no density is specified. If you specify DISP=(NEW. and up to 1634 DD statements. The space can be used for other data sets. In that case. when the volume requires verification. A nonspecific volume request is a DD statement for a new data set that can be assigned to any volume or volumes. For information about the rules for cataloged data set names. Existing data sets: v If you set a retention period on the DD RETPD parameter. it will do so by issuing message IEF234E R (retain) for that volume. An unopened tape data set is cataloged.0 MVS JCL Reference .PARMLIB member. A data set can be passed only within a job. (The size of the TIOT controls how many DD statements are allowed per job step. CATLG Indicates that. see z/OS DFSMS Access Method Services for Catalogs.PASS). otherwise the data set is kept. Either can occur when the device on which the volume is mounted is not allocated to the job step that specified PASS or.PASS) but. at the end of the job. an existing data set is deleted if the expiration date has passed. an existing data set is deleted only if its retention period is passed. 3. For CVOL catalogs. Notes: 1. one or more data sets were not received by any job step. then the maximum number of DD statements you can specify decreases by one. When you refer to the data set later in the job. it will request the operator to remount the volume on an available device of the appropriate type. You can override the expiration date or retention period for SMS-managed DASD data sets using the OVRD_EXPDT(YES) parameter in the IGDSMSxx SYS1. for unlabaled tapes. the system obtains data set information from the catalog. the system creates any missing index levels. the system is to delete (1) the entry pointing to the data set in the system or user catalog and (2) unneeded indexes. the data set is not erased from the space.

passed data set. passed data set. the system is to delete (1) the entry pointing to the data set in the system or user catalog and (2) unneeded indexes. CATLG Indicates that. Note that the data set is kept. UNCATLG Indicates that. Chapter 12. For new SMS-managed data sets. KEEP implies CATLG. only KEEP is valid for VSAM data sets. if the second subparameter specified PASS. For CVOL catalogs. An unopened tape data set is cataloged. With SMS. UNCATLG is ignored. the user catalog is not updated. v If you omit the abnormal termination disposition subparameter. v If you omit the normal termination disposition subparameter. New data sets: A new data set is deleted at the end of the step even though a retention period or expiration date is also specified. See z/OS MVS Initialization and Tuning Reference for information on the IGDSMSxx parmlib member. KEEP Indicates that the data set is to be kept on the volume if this step terminates abnormally. However.DD: DISP not the data set has expired or the retention period has passed. all dispositions are valid for VSAM data sets. the default abnormal termination disposition is DELETE for a NEW data set or KEEP for an existing data set. the default is the disposition specified or implied by the second subparameter. the user catalog is not updated. passed data set. DD Statement 12-89 . the user catalog is not updated. not received data set is not cataloged if the data set name has a first-level qualifier of a catalog name or alias. uncataloged. the default is NEW. cataloged. VSAM data sets should not be passed. however. except for the highest level entry. the system creates any missing index levels. A passed. Defaults v If you omit the status subparameter. For a cataloged. if this step terminates abnormally. If the system retrieves volume information from the catalog because the DD statement does not specify VOLUME=SER or VOLUME=REF. unless the volume request is nonspecific or unless the data set is allocated to a dual-density tape drive but no density is specified. Note that the data set is kept. or deleted. For a cataloged. the default is DELETE for a NEW data set or KEEP for an existing data set. then DELETE implies UNCATLG: the system deletes the data set and removes its catalog entry. With SMS. UNCATLG is ignored for SMS-managed data sets and VSAM data sets (KEEP is implied). Without SMS. For a cataloged. See the DD EXPDT or RETPD parameters. if the step terminates abnormally. the system is to place an entry pointing to the data set in the system or user catalog.

the system positions the read/write mechanism at the end of the data set. QSAM assumes that the short block is the last block and starts end-of-file processing.0 MVS JCL Reference . * BURST CHARS COPIES DATA DDNAME DYNAM FLASH MODIFY QNAME SYSOUT Disposition of QSAM Data Sets Do not code DISP=MOD if the data control block (DCB) specifies RECFM=FBS and the data set is processed by QSAM. If the member name already exists and the data set is opened for output. The system does not make an automatic entry into the directory.DD: DISP v If you omit the DISP parameter. Thus. If the member name already exists. the system ignores any abnormal termination disposition specified in the third subparameter and always PASSes the data set to subsequent steps. and you also specify a member name in the DSNAME parameter. If you do and a block is shorter than the specified block size. and you also specify a member name in the DSNAME parameter. the data set must already exist. when a DSNAME parameter is omitted from the DD statement. Disposition of Partitioned Data Sets (PDSs and PDSEs) When you specify DISP=MOD or DISP=NEW for a partitioned data set (PDS) or partitioned data set extended (PDSE). When you specify DISP=OLD for a PDS or a PDSE. 12-90 z/OS V1R3. the system replaces the existing member with the new member. you can omit the DISP parameter for a data set that is created and deleted during a step. and you do not specify a member name. Relationship to Other Parameters Do not code the following parameters with the DISP parameter. If the member name does not already exist and the data set is opened for output. the default is a NEW data set with a disposition of DELETE for both normal and abnormal termination disposition. that is. the system terminates the job. | | | For a temporary data set name. the system adds the member to the data set. QSAM can embed short blocks in your data set and so affect the number of records per track. Disposition of Generation Data Sets See Appendix B in z/OS MVS JCL User’s Guide for additional information about disposition processing for generation data sets. Disposition of Temporary Data Sets Specify a normal termination disposition of PASS or DELETE for a temporary data set or for a data set with a system-generated name. By this action. When you specify DISP=MOD for a PDS or a PDSE. the member name must not already exist.

When you specify DISP=SHR for a partitioned data set extended (PDSE) and also specify a member name. multiple jobs can access different members of the data set and add new members to the data set concurrently — but concurrent update access to a specific member (or update and read by other jobs) is not valid. Thus. KEPT RECATALOGED Non-SMS-managed Data Sets If you do not reference the catalog when adding a volume to a cataloged data set.P) The VOLUME parameter references the system catalog for volume information about the data set and increases the maximum number of volumes for OPER. DISP=MOD for a Multivolume Data Set Minimizing Tape Mounts When you code DISP=MOD and the volume information is for a multivolume data set.DATA VOL SER NOS= 333001. if the data set is opened for output. the member can have one writer or be shared by multiple readers. Adding a Volume to a Cataloged Data Set If you want to add a volume to a cataloged data set and have it properly cataloged after it is kept or passed. If the number of tape volumes is more than the number of allocated devices.DATA. the system positions the read/write mechanism at the end of the data set. IEF285I IEF285I IEF285I IEF285I OPER. // VOLUME=(.. the system does not update the catalog with the newly referenced volumes. OPER.333003. then: v If the member name exists. or a volume sequence number in the VOLUME parameter. //DDEX2 DD DSNAME=OPER. normally the first volume(s) will be mounted on the devices(s) allocated.DATA VOL SER NOS= 333001. Assume that this data set was created with a volume count of 2. and you do specify a member name. the system must allocate the same number of units as the number of volumes in the VOLUME parameter. The following is an example of the messages in the job log after the job completes. code VOLUME=REF or DEFER in the UNIT parameter. The following DD statement shows how to keep and extend a cataloged data set using the system catalog. the system asks the operator to demount the first volume(s) and mount the last. Then. the member can be added to the data set. the system terminates the job. If the member name already exists. you can code a volume sequence number to specify the volume on which reading or writing Chapter 12. Determining the Last Volume If a data set that is not a striped data set resides on multiple volumes. 3.333003. or v If the member name does not exist. OPEN starts with the last volume.KEEP).DATA.. Because the UNIT parameter requests parallel mounting.333002. code the volume count subparameter of the VOLUME parameter to make the system use the values in the system catalog to process the data set.333002.DD: DISP When you specify DISP=MOD for a PDS or a PDSE. To have the last tape volume mounted without first mounting and then demounting the earlier volume(s).UNIT=(. DD Statement 12-91 .DISP=(MOD.3). in this case.

Tape For tapes with IBM standard or ANSI/ISO/FIPS labels. For unlabeled tapes and those with the BLP option. When you do not specify a volume sequence number. use the volume count and volume sequence number subparameters of the VOLUME parameter if you want to keep the system from positioning the read/write mechanism after the last record on the last volume. it checks each subsequent volume until it finds one that has a last-volume indicator. for the following DD statement. Effect of DCB=dsname Parameter If the DCB parameter refers to a cataloged data set. If the label indicates it contains the end of the data set. and then selects the volume on which to begin writing as follows: SMS-managed DASD The system tests the data set label on the first volume in the list. the system selects the wrong volume. and selects the first volume that ends with an end-of-file label instead of an end-of-volume label. this volume may or may not be the last volume. the system selects that volume. Thus. Data might not have been written on all the volumes. In DASD and tape data set labels there is an indicator on the last volume containing user data. it positions the read/write mechanism on that volume.DD: DISP is to begin. the system selects that volume to begin writing.. Otherwise. Extending on a Volume Other Than the Last When you code DISP=MOD for a multivolume data set.VOLUME=(. If the last volume in the list once had the end of the data set but now the data set requires fewer volumes. After the system identifies the last volume.DISP=(MOD.2) The volume sequence number of 1 specifies that you want to use the first volume. the system obtains the volume sequence number from the label of the data set. the system must identify the volume that contains the logical end of the data. and any data you add will not be retrievable by normal access. and the volume count of 2 specifies that the data set requires two volumes. 12-92 z/OS V1R3. even though DISP=MOD is specified.0 MVS JCL Reference .1. the system checks the first and subsequent volumes until it finds a last-volume indicator or until it tests the second-to-last volume. unless the volume sequence number is coded on the DD statement. (To begin writing. and the label indicates it is the last volume of the data set. If that volume does not have a label for the data set or that label does not have the last-volume indicator.KEEP). the system looks in the data set label for the indicator that identifies the last volume. If you do not code a volume sequence number and the data set is not striped.DATA. the system reads trailer labels on each volume starting with the first volume. the system will not select later volumes that might also have the last-volume indicator by virtue of having previously contained parts of the data set. If it contains a label for the data set. For example: //DDEX1 DD DSNAME=OPER. the system positions the read/write mechanism after the last record on the volume specified in the volume sequence number in the label.) Non-SMS-managed DASD The system tests the last volume in the list. the system selects the first volume.

DCB=CATDD To control which volume is processed. code a volume sequence number.DISP=MOD.VOLUME=(.DCB=CATDD.DISP=MOD. Summary of Disposition Processing DISP Subparameters: Status Normal Termination Disposition Abnormal Termination Disposition Disposition (If Data Set was Allocated): At Normal End of Step At Abnormal End of Step Step Abnormally Terminated deleted kept deleted cataloged passed passed deleted If all steps terminated normally: deleted If a step terminated abnormally: third subparameter disposition deleted If Later Allocation Failed in Step At End of Job NEW permanent data set or MOD treated as new none KEEP DELETE CATLG PASS DELETE KEEP CATLG UNCATLG PASS none deleted kept deleted cataloged passed passed passed passed DELETE KEEP CATLG UNCATLG NEW temporary data set NEW data set in step to be automatically restarted NEW data set in step to be restarted at checkpoint none DELETE PASS DELETE KEEP PASS CATLG UNCATLG DELETE KEEP PASS CATLG UNCATLG KEEP DELETE CATLG DELETE KEEP CATLG UNCATLG DELETE KEEP CATLG UNCATLG DELETE KEEP CATLG UNCATLG second subparameter disposition deleted kept deleted cataloged deleted deleted passed deleted deleted deleted kept.. if being used when checkpoint was taken Chapter 12.DD: DISP //DD1 DD DSNAME=MULTI1. //DD2 DD DSNAME=MULTI2. DD Statement 12-93 .2) Summary of Disposition Processing Table 12-1.

kept. if originally old. if data set was originally new. if step was receiving deleted originally cataloged or.DD: DISP Table 12-1. kept. if old data set. deleted. if originally old kept. recataloged uncataloged passed DELETE KEEP CATLG UNCATLG passed UNCATLG PASS OLD or SHR or MOD treated as old (continued) PASS DELETE KEEP CATLG UNCATLG KEEP DELETE CATLG second parameter disposition UNCATLG OLD permanent data set passed to this job step OLD data set in step to be automatically restarted OLD data set in step to be restarted at checkpoint none none deleted. step was receiving recataloged originally uncataloged new data set deleted. if new volumes were added. Summary of Disposition Processing (continued) DISP Subparameters: Status Normal Termination Disposition Abnormal Termination Disposition Disposition (If Data Set was Allocated): At Normal End of Step At Abnormal End of Step Step Abnormally Terminated kept deleted cataloged or. recataloged uncataloged passed passed passed passed kept If all steps terminated normally: kept. if were added. new volumes deleted. if originally new If a step terminated abnormally: third subparameter disposition If Later Allocation Failed in Step kept At End of Job OLD or SHR or MOD treated as old none KEEP DELETE CATLG none kept deleted cataloged or. if being used when checkpoint was taken 12-94 z/OS V1R3. if new volumes were added. if originally old kept kept DELETE KEEP PASS CATLG UNCATLG DELETE KEEP PASS CATLG UNCATLG DELETE KEEP CATLG UNCATLG DELETE KEEP CATLG UNCATLG kept.0 MVS JCL Reference . if data set was originally new.

STEPB. DD Statement 12-95 .DD: DISP Examples of the DISP Parameter Example 1 //DD2 // DD DSNAME=FIX.SPACE=(TRK.PASS. this data set is kept.DISP=(OLD.PASS) EXEC PGM=CHAR DD DSNAME=XTRA. the second subparameter is PASS. If STEPB abnormally terminates.DELETE) DD statement DD1 defines a new data set and requests that the data set be passed.. Example 4 //SMSDD7 DD DSNAME=MYDS7.GROUP12. Example 3 //SMSDD5 DD DSNAME=MYDS5. If STEPC abnormally terminates. However.VOLUME=SER=44889. If STEPA abnormally terminates. the data set is deleted because of the third subparameter of DELETE. DD statement DD4 in STEPC receives the passed data set and requests that the data set be cataloged at the end of the step.PGM.DISP=(OLD.LEVEL18.DD1. VOLUME=SER=LOCAT3.UNIT=3420-1. DD statement DD2 defines an old data set named XTRA.STORCLAS=SCLAS05.DELETE) EXEC PGM=TERM DD DSNAME=*.DATACLAS=DCLAS05. Example 2 //STEPA //DD1 // //STEPB //DD2 //DD3 //STEPC //DD4 EXEC PGM=FILL DD DSNAME=SWITCH.DISP=OLD DD DSNAME=*. the data set is kept because UNCATLG is ignored for SMS-managed data sets.DD3.DELETE) DD statement DD2 defines an existing data set and implies by the omitted second subparameter that the data set is to be kept if the step terminates normally.DISP=(OLD. When STEPB terminates. The statement requests that the system delete the data set if the step terminates abnormally.PGM.(80.KEEP) DD statement SMSDD5 defines a new SMS-managed data set and requests that the data set be kept (which implies that it be cataloged).UNCATLG) DD statement SMSDD7 defines an existing SMS-managed data set (the data set had been assigned a storage class when it was created) and requests that the data set be uncataloged. the data set is deleted because it is a new data set.STEPA. and an abnormal termination disposition is not coded. the data set is deleted because of the abnormal termination disposition of DELETE. Chapter 12. DISP=(OLD. normally or abnormally. DD statement DD3 in STEPB receives this passed data set and requests that the data set be passed. // DISP=(NEW.UNIT=3350.15)).DISP=(.CATLG.

the system does not recognize JES2 and JES3 statements in an input stream between the DLM parameter and the delimiter it assigns. 12-96 z/OS V1R3. Each pair of consecutive ampersands or apostrophes counts as one character. in the data. the in-stream data records can include standard delimiters. code each ampersand or apostrophe as two consecutive ampersands or apostrophes. In this case. the system keeps reading until the reader is empty. v If the delimiter contains an ampersand or an apostrophe. #. enclose it in apostrophes. optional Purpose Use the DLM parameter to specify a delimiter to terminate this in-stream data set. only the assigned delimiter ends the input data set. Syntax DLM=delimiter v If the specified delimiter contains any special characters. @). When the DLM parameter assigns a different delimiter. Note: When the DLM delimiter overrides any implied delimiter. v The DLM parameter can have a null value only when coded on a DD which either: – Overrides a DD in a procedure – Is added to a procedure. In a JES2 system. you must terminate the data with the DLM characters. either the assigned delimiter or // ends the input data set. Failing to code enclosing apostrophes produces unpredictable results. If you code DLM. only the assigned delimiter ends the input data set. Except for the JES2 /*SIGNON and /*SIGNOFF statements. when the DLM delimiter appears on either a DD * or DD DATA statement. such as /* and //. a special character is any character that is neither alphanumeric nor national ($. when the DLM delimiter appears on a DD * statement. Otherwise. In a JES3 system. the system will check it for syntax and ignore it. Considerations for an APPC Scheduling Environment The DLM parameter has no function in an APPC scheduling environment.DD: DLM DLM Parameter Parameter Type Keyword. When the DLM delimiter appears on a DD DATA statement.0 MVS JCL Reference . The JES2 /*SIGNON and /*SIGNOFF statements are processed by the remote work station regardless of any DLM delimiter.

Default If you do not specify a DLM parameter. . The DLM parameter has meaning only on statements defining data in the input stream. If the system finds an error on the DD statement before the DLM parameter. a JCL error message is issued. data . JES3 accepts only the characters specified for the DLM parameter as a terminator for DD * or DD DATA. it does not recognize the value assigned as a delimiter. The in-stream data set is terminated when a record starting with // or /* is read. The system reads records until it reads a record beginning with /* or //. Invalid Delimiters If the delimiter is not two characters: v For JES2.DD: DLM Subparameter Definition delimiter Specifies two characters that indicate the end of this data set in the input stream. if an incorrect number of characters is coded. optional Purpose Use the DSID parameter to specify the data set identifier of an input or output data set on a diskette of the 3540 Diskette Input/Output Unit. JES3 terminates the job. Relationship to Other Parameters Code the DLM parameter only on a DD statement with the * or DATA parameter. the delimiter is not recognized. For JES2. Chapter 12. The system fails the job due to the invalid delimiter. DD * and DD DATA statements. DSID Parameter Parameter Type Keyword. the default is the /* delimiter statement. v For JES3. AA The DLM parameter assigns the characters AA as the delimiter for the data defined in the input stream by DD statement DD1. the characters // would also serve as valid delimiters since a DD * statement was used. Example of the DLM Parameter //DD1 DD *. If DLM is specified on any other statement. DD Statement 12-97 .DLM=AA . that is.

#. BURST CHARS DDNAME DYNAM FLASH MODIFY MVSGP QNAME For 3540 Diskette Input/Output Units 12-98 z/OS V1R3. must start the diskette writer before this DD statement is processed. The characters must be alphanumeric. except when a diskette reader or writer processes the JCL. References For more information about associated data sets. #. see 3540 Programmer’s Reference. @). see z/OS JES2 Initialization and Tuning Guide or z/OS JES3 Initialization and Tuning Guide. This subparameter is required only on a SYSIN DD statement. The id is 1 through 8 characters. @). Note: The system ignores the DSID parameter on a DD *. which is an external writer. to begin the input stream data set. To read a data set from a 3540 diskette. the DD statement must contain: v A DSID parameter. DD DATA. v Null positions in the DSID parameter are invalid.[V])} v You can omit the parentheses if you code only an id. v An * or DATA parameter. V Indicates that the data set label must have been previously verified on a 3741 Data Station/Workstation. Also. a hyphen. or a DD statement with the SYSOUT parameter.0 MVS JCL Reference . or a left bracket. and an output data set is written on a 3540 diskette by a diskette writer. Relationship to Other Parameters Do not code the following parameters with the DSID parameter. v A SYSOUT parameter that specifies the output class that the diskette writer processes and the name of the diskette writer. Subparameter Definition id Specifies the data set identifier. To write a data set on a 3540 diskette. the DD statement must contain: v A DSID parameter.DD: DSID An input data set is read from a 3540 diskette by a diskette reader program. a system command. The first character must be alphabetic or national ($. national ($. For information about external writers. from the operator or in the input stream. Syntax DSID= {id } {(id.

DD: DSID A DSID parameter on a DD *. In a DFSMS-active environment.. See 3540 Programmer’s Reference. the names of all data sets that are to be cataloged or SMS-managed must conform to the rules for cataloged data set names. On a DD * or DD DATA statement processed by a diskette reader.DCB=LRECL=128. for an existing data set. or sysout DD statement is ignored except when detected by a diskette reader as a request for an associated data set. For information about the rules for cataloged data set names. and LRECL to indicate that a diskette data set is to be merged into the input stream following the DD statement. you can specify DSID. The output will be written on a diskette in data set BAKER. For a new data set. DD DATA. DSNAME Parameter Parameter Type Keyword. refer to either z/OS DFSMS Access Method Services for Catalogs. References Data sets are described in z/OS DFSMS: Using Data Sets. the SYSIN DD statement indicates that the input is on diskette 123456 in data set ABLE and must have been verified.VOLUME=SER=123456. VOLUME=SER.MSGLEVEL=(1. Chapter 12.DSID=BAKER In this example.1) EXEC PGM=AION DD *. the system uses the name to locate the data set. the specified name is assigned to the data set. optional Purpose Use the DSNAME parameter to specify the name of a data set.V). DCB=LRECL=80 DD SYSOUT=E. DD Statement 12-99 .DSID=(ABLE. Example of the DSID Parameter //JOB1 //STEP //SYSIN // //SYSPRINT JOB . BUFNO.

When SMS is not installed or active incorrect characters or length result in data set allocation. Data sets with an unqualified name cannot be cataloged.ddname *. and ignores the name specified on the DSNAME parameter v The system ignores blank characters at the end of a data set name. SYSOUT=P. but the data set is not cataloged. v Any data set name enclosed in apostrophes on the DSNAME parameter will be treated as an unqualified name. v Blanks can be included in a data set name if the name is enclosed in apostrophes. 12-100 z/OS V1R3. for example. you cannot enclose the data set name in apostrophes.stepname. or already resides on.procstepname. When SMS is active.1 or later is installed. such as DSNAME='AB CD'. v If the data set is to be managed through SMS.DSNAME='&&AB CD' is not valid. do not code blanks in the name for an in-stream or sysout data set. v Avoid starting a data set name with JES or SYS1. the system assigns the data set with a unique temporary data set name. The system uses these characters for system data sets. it will fail the job for incorrect characters or length.DD: DSNAME Syntax {DSNAME} {DSN } =name name for permanent data set: dsname dsname(member) dsname(generation) dsname(area) name for temporary data set: &&dsname &&dsname(member) &&dsname(area) name for in-stream or sysout data set: &&dsname name copied from earlier DD statement: *. However.stepname. an SMS-managed mountable tape volume.0 MVS JCL Reference . the following exception applies: You can enclose the data set name on the DSNAME parameter in apostrophes if the data set is to be assigned to. This exception applies only if DFSMS/MVS 1. However. v If the data set name begins with a blank character.ddname name for dummy data set: NULLFILE v You can abbreviate DSNAME as DSN. v The system does not check data set names enclosed in apostrophes for valid characters or valid length.ddname *.

#. On a DD statement in a cataloged or in-stream procedure. Qualified Name Multiple unqualified names joined by periods.)' and DSNAME='A. other than hyphens.ABC)' and DSNAME='(ABC. @). v Parentheses to enclose the member name of a partitioned data set (PDS) or partitioned data set extended (PDSE). The data set name should not contain the 44 special characters (X'04') created by the 12-4-9 multiple punch or any operation that converts the value of characters to X'04'. For the characters allowed in ISO/ANSI/FIPS tape data set names.DD: DSNAME Non-Significant Special Characters: When a data set name contains special characters that are not significant to the system. the area name of an indexed sequential data set. Code each apostrophe that is part of the data set name as two consecutive apostrophes. enclose it in apostrophes. the system performs correct substitution only if the symbolic parameter enclosed in apostrophes is preceded by a symbolic parameter not enclosed in apostrophes. v Plus (+) or minus (-) sign to identify a generation of a generation data group. or immediately before a comma. immediately after a left parenthesis. you must enclose in apostrophes a period immediately before a right parenthesis. DSNAME='&&AB' and DSNAME='&AB' refer to the same data set. DSNAME='(. @) characters. For example. see information about label definition and organization in z/OS DFSMS: Using Magnetic Tapes. code DAYS'END as DSNAME='DAYS''END'. DSNAME=ALPHA is an unqualified data set name. DD Statement 12-101 . DSNAME=ALPHA.PGM is a qualified data set name. Significant Special Characters: The following special characters are significant to the system.B. If it is enclosed in apostrophes. Do not enclose them in apostrophes. therefore. a hyphen. The system ignores blank characters at the end of a data set name. v The asterisk to indicate a backward reference. or the generation number of a generation data set. However. v Double ampersands to identify an in-stream or sysout data set name.C. Note that if you use apostrophes. or a character X'C0'. For example. even if the data set name is enclosed in apostrophes. do not enclose it in apostrophes. The first character must be alphabetic or national ($. DSNAME='DS/29'. Subparameter Definition The data set names you specify on DSNAME are described in the following topics: v Data Set Name for Permanent Data Set v Data Set Name for Temporary Data Set v Data Set Name for In-Stream or Sysout Data Set v Data Set Name Copied from Earlier DD Statement v Data Set Name for Dummy Data Set Data Set Name for Permanent Data Set Assign a permanent data set either an unqualified or a qualified name: Unqualified Name 1 through 8 alphanumeric or national ($. if the data set name is a symbolic parameter. The maximum length of a qualified data set name is: Chapter 12. Each qualifier is coded like an unqualified name. #. for example. v Double ampersands to identify a temporary data set name. For example. For example. the name must contain a period after every 8 characters or fewer. v Periods to indicate a qualified data set name.'.

national. See the z/OS Security Server RACF Security Administrator’s Guide for details. generation v The first character of a relative generation number is +. see z/OS DFSMS Access Method Services for Catalogs. excluding trailing blanks. which includes RACF. dsname Specifies a data set name. from 1 through 44 characters. If you define an indexed sequential data set on only one DD statement. −. If the first character is + or −. or OVFLOW. v The numeric portion (not + or −) of a relative generation number must be expressed in 1 to 3 numeric characters. member 1 to 8 alphanumeric or national characters.0 MVS JCL Reference . PRIME. see z/OS DFSMS: Using Magnetic Tapes . −. or −. v For a generation data group. Name for RACF-Protected Data Set The OS/390 Security Server. only the rightmost 17 characters. and the name of a member within that data set. omit the area name. The first character must be alphabetic. omit the area name or code it as PRIME. expects the data set name to have a high-level qualifier that is defined to RACF. For example. The area-name is INDEX. including periods. 000. Cataloged Data Set Name For information about the rules for cataloged data set names. when protecting a tape data set. To retrieve an indexed sequential data set. −09. To retrieve all generations of a generation data group. omit the generation number. 17 characters. +4. v All characters of a relative generation number that follow the +. dsname(area) Specifies the name of a permanent indexed sequential data set and an area of the data set. −002.DD: DSNAME v 44 characters. For more information. For example. v A relative generation number cannot exceed 255. including periods. the member is a part of a generation data group. or 0. +. 12-102 z/OS V1R3. +100. including periods. If longer than 17 characters. Note: A VSAM data set cannot be a generation data set. or a character X'C0'. 35 characters. DSNAME=dsname or DSNAME=dsname(PRIME). dsname(member) Specifies the name of permanent partitioned data set (PDS) or partitioned data set extended (PDSE). RACF uses the entire data set name. v For an output tape data set. are written to the tape header label. or 0 must be numeric (0 through 9). dsname(generation) Specifies the name of a generation data group (GDG) and the generation number (zero or a signed integer) of a generation data set within the GDG.

jjobname. code the name as two ampersands (&&) followed by a character string 1 to 8 characters in length: v The first character following the ampersands must be alphabetic or national. see ″Data Set Name for In-Stream or Sysout Data Set. note that the system-generated qualified name for the temporary data set will not be unique under the following conditions: Chapter 12. When you use DSNAME for a temporary data set.jjobname where: yy indicates ddd indicates hh indicates mm indicates ss indicates jjobname indicates the the the the the year Julian day hour minute second the name of the job Date fields in the system-generated name reflect when the job containing the request (or the dynamic allocation request) was allocated.Thhmmss. you can code the DSNAME parameter or omit it.DD: DSNAME Data Set Name for Temporary Data Set A temporary data set is a data set that you create and delete within a job.Thhmmss.RA000.Thhmmss.RA000. v The remaining characters must be alphanumeric or national.RA000.name. in a sysplex. | | | | | | | v If you do not specify a data set name. the system identifier nnnnn a number that is unique within a system v If you do specify a data set name. the full format of the temporary data set name is: SYSyyddd.″) Note: SMS manages a temporary data set if you specify a storage class (with the DD STORCLAS parameter) or if an installation-written automatic class selection (ACS) routine selects a storage class for the temporary data set. DD Statement 12-103 .Rggnnnnn where: gg 01 or. in a sysplex. the system generates a qualified name for the temporary data set. (For information about coding data set names with the DD *.jjobname. Time fields in the system-generated name reflect when the job started (or the time of a dynamic allocation request). and SYSOUT parameters. DATA. in either case. the full format of the temporary data set name is: SYSyyddd. The format of the qualified name the system generates depends on whether or not you specified a data set name on the DSNAME parameter: v All temporary data set names begin as follows: SYSyyddd. If you use DSNAME.Hgg where: name the name you specified as &&name on the DSNAME parameter gg 01 or. the system identifier. When you define a temporary data set.

and v The tasks or transactions contain DD statements with identical temporary data set names. or a character X'C0'. the system will process it as a temporary data set name. Allow the system to assign one. and do not assign a value to or nullify the symbolic parameter. PRIME. &&dsname(member) Specifies the name of a temporary partitioned data set (PDS) or partitioned data set extended (PDSE) and a member within that data set. The area name is INDEX. &&dsname(area) Specifies the name of a temporary indexed sequential data set and an area of the data set. When defining an in-stream or sysout data set. The first character following the ampersands must be alphabetic or national ($. #. if you code a data set name as a symbolic parameter (by coding DSNAME=&xxxxxxxx).) characters.) However.DD: DSNAME v Multiple tasks or APPC transactions having identical jobnames execute at exactly the same time. Data Set Name for In-Stream or Sysout Data Set Use the DSNAME parameter to assign a data set name to an in-stream data set (defined with the DD * or DD DATA parameter) and to a sysout data set (defined with the DD SYSOUT parameter). The qualified name contains: v The userid of the job v The jobname v The jobid v A system-assigned identifier v The data set name from the DSNAME parameter (if DSNAME is coded). or OVFLOW. the system generates a name for the data set. the system treats a single ampersand (&) followed by a character string of 1 to 8 characters as a symbolic parameter. The data set name for in-stream and sysout data sets consists of two ampersands (&&) followed by one through eight 8 alphanumeric or national ($. #. do not code a temporary data set name. To ensure that a temporary data set name is unique. DSNAME=&&dsname or DSNAME=&&dsname(PRIME). a hyphen.8 alphanumeric or national characters. For example. or a character X'C0'. @). &&dsname Specifies the name of a temporary data set. The first character must be alphabetic or national. (See “Using System Symbols and JCL Symbols” on page 5-12. 12-104 z/OS V1R3. member 1 . The system generates a qualified name for the in-stream or sysout data set. If you define an indexed sequential data set on only one DD statement.0 MVS JCL Reference . @. omit the area name or code it as PRIME. if omitted. or a question mark (?) if DSNAME is not coded. you can code the DSNAME parameter or omit it. Note: In general. Only the job that creates a temporary data set has access to it to read and write data and to scratch the data set.

and ddname is the name of the DD statement. *.stepname.jobid.jobname. *. IBM does not support the use of NULLFILE to obtain a dummy data set for these (or other) formats: v When followed by a member name v As a qualifier in a qualified data set name Chapter 12. if no value is assigned to the name on either the EXEC statement that calls the procedure. For instance. Data Set Name Copied from Earlier DD Statement A backward reference is a reference to an earlier statement in the job or in a cataloged or in-stream procedure called by this or an earlier job step. When copying the data set name. NULLFILE has the same effect as coding the DD DUMMY parameter. the system also copies the following from the DD statement: v Whether or not the data set is a PDS or a PDSE. ddname. in the same job. stepname.stepname. *. Stepname is the name of this job step or an earlier job step that calls the procedure.name where name is the dsname or a question mark (?).name Profiles of this format may be defined in your security system to allow other users access to your SYSOUT data sets. A backward reference can be coded in the DSNAME parameter to copy a data set name from an earlier DD statement. the check is made against the JESSPOOL class using the fully qualified name. procstepname is the name of the procedure step that contains the DD statement.DD: DSNAME The format of the name is: userid. v Whether or not the data set is a temporary data set.ddname Asks the system to copy the data set name from a DD statement in a cataloged or in-stream procedure.Ddsnumber. Data Set Name for Dummy Data Set NULLFILE Specifies a dummy data set.ddname Asks the system to copy the data set name from earlier DD statement ddname. DD Statement 12-105 .jobid. preceded by the node name and a period: nodename. However.userid.jobname.procstepname. NULLFILE must be coded as a single-word parameter. a PROC statement in the procedure.Ddsnumber. A profile is not necessary for you to access your own data sets. or a previous SET statement. When the system checks a user’s authority to access a SYSOUT data set. the system treats the name as the last qualifier of the data set name for an in-stream or sysout data set. in an earlier step.ddname Asks the system to copy the data set name from DD statement. Note: A single ampersand before a data set name in a cataloged or in-stream procedure signifies a symbolic parameter. &&dsname Specifies the last qualifier of the system-generated data set name for an in-stream or sysout data set.

SPACE=(TRK. or SYSOUT parameter (an in-stream or sysout data set). Relationship to Other Parameters Do not code the following parameters with the DSNAME parameter.(1. v That names a generation data group.DELETE). the disposition must be other than DELETE.PASS) Note: When you code a disposition of CATLG for a data set. do not code a DSNAME name in apostrophes. a minus (hyphen).UNIT=SYSALLDA.APAR. v That is in the form for ISAM.REPORT. or a plus (+) sign.DISP=(.(5.CATLG). JESJCL JESJCLIN JESMSGLG JESYSMSG With DD AMP Parameter When you code an AMP parameter for a VSAM data set. either explicitly or implicitly.1)) DD UNIT=SYSALLDA. DISP=(NEW.DD: DSNAME v As a temporary data set name.SPACE=(CYL. The following example illustrates how to create a permanent data set: //REPORT // // DD DSN=DEHART. DATA.1). DDNAME DYNAM QNAME Do not code the DCB IPLTXID subparameter with the DSNAME parameter.5)). Examples of the DSNAME Parameter Example 1 12-106 z/OS V1R3. The following two examples illustrate how to create a temporary data set: //MYDD1 //DD2 DD DSN=TEMP1.RECFM=FBA. the names are reserved for system use. v That is in the form for PAM (partitioned access method). With DD DISP Parameter You can create a permanent data set by specifying a qualified or unqualified data set name. do not code a DSNAME: v That contains parentheses. Reserved Data Set Names Do not code the following data set names on the DSNAME parameter with the *.UNIT=3480.DELETE).BLKSIZE=1210) You can create a temporary data set by specifying a: v &&dsname or by omitting the DSNAME parameter v Qualified or unqualified data set name and specifying.0 MVS JCL Reference . DISP=(NEW.SPACE=(TRK.DISP=(NEW. DCB=(LRECL=121.

SPACE=(CYL.DISP=(OLD.. DD Statement 12-107 . DD statements in later job steps or jobs may retrieve this data set by specifying ALPHA in the DSNAME parameter.DELETE) DD statement DD4 in STEP1 defines a temporary indexed sequential data set named ISDATA. Because the data set is deleted at the end of the job step. data .UNIT=3350 VOLUME=SER=882234 DD statement DD2 retrieves member PROG12 from the partitioned data set named LIB1.jobname.DISP=(.SYSOUT=P DD statement DDOUT defines PAYOUT1 as the last qualifier of the system-generated data set name for the sysout data set. the DSNAME parameter can be omitted.KEEP). UNIT=3420.2). unit information in the UNIT parameter. MGMTCLAS=MCLAS1. DD statements in later job steps or jobs may retrieve this data set by specifying ALPHA.KEEP). Example 7 //STEP1 EXEC PGM=CREATE //DD4 DD DSNAME=&&ISDATA(PRIME).jobid.PASS).PGM.DD: DSNAME //DD1 // DD DSNAME=ALPHA.PAYOUT1. Example 6 //DD3 DD DSNAME=&&WORK.PAYIN1.DISP=(OLD.STORCLAS=SCLAS1 DD statement DDSMS1 defines a new SMS-managed data set and names it ALPHA. Example 2 //DDSMS1 // DD DSNAME=ALPHA.jobid.(10.Ddsnumber.DSNAME=&&PAYIN1 .UNIT=(3350.Ddsnumber. Example 3 //DD2 // DD DSNAME=LIB1(PROG12).CONTIG).DCB=DSORG=IS //STEP2 EXEC PGM=OPER //DD5 DD DSNAME=*.DATACLAS=DCLAS1.VOLUME=SER=389984 DD statement DD1 defines a new data set and names it ALPHA.UNIT=3420 DD statement DD3 defines a temporary data set. and volume information in the VOLUME parameter.jobname. This DD statement defines all of the areas of an indexed sequential Chapter 12.DD4.KEEP). This generates a data set name such as userid. /* DD statement DDIN defines PAYIN1 as the last qualifier of the system-generated data set name for the in-stream data set. Example 5 //DDOUT DD DSNAME=&&PAYOUT1.2). Example 4 //DDIN DD DATA.DISP=(. The following example shows why a temporary data set should be named.. This generates a data set name such as userid.DISP=(NEW. // VOLUME=SER=334859.STEP1.PGM in the DSNAME parameter.PGM.

DD: DSNAME data set. For information on HFS data sets and FIFO special files. concurrent update access to a specific member (or update and read by other jobs) is not allowed. A FIFO special file defined in a DD statement provides a connection filled with data among programs. References For information on partitioned data sets and PDSEs. However. A PDSE can be created through the BPAM. similar to a PDSE. or MOD result in exclusive use of the entire data set. DD statement DD5 in STEP2 retrieves the data set by referring to the earlier DD statement that defines the data set. optional — use this parameter only with DFSMS/MVS Purpose Use the DSNTYPE parameter to specify: v A new partitioned data set (PDS) v A new partitioned data set extended (PDSE). BSAM.0 MVS JCL Reference . It is a partitioned format data set. Before you define a PDSE. One or more programs can write data into the file. Because the temporary data set is passed when it is defined in STEP1. Multiple jobs can access different members of the data set and create new members of the data set concurrently. sharing of the data set applies to the data set and the individual member specified. it is not deleted at the end of STEP1 and STEP2 can retrieve it. Dispositions of DISP=OLD. 12-108 z/OS V1R3. see z/OS DFSMS: Using Data Sets. It contains a mountable file system. A FIFO special file is a type of file with the property that data written to such a file is read on a first-in-first-out basis. check with your storage administrator to ensure that SMS is able to manage the data set and assign the PDSE to a storage class. see z/OS UNIX System Services Planning and the z/OS UNIX System Services User’s Guide. DSNTYPE Parameter Parameter Type Keyword. which is also called a library v A new hierarchical file system (HFS) data set v A first-in first-out (FIFO) special file. one or more programs can read the data. Serialization of the data set can exist at both the data set (library) level and the member level. If DFSMS is not installed or is not active. the system checks the syntax and then ignores the DSNTYPE parameter. and QSAM access methods. which is also called a named pipe Also use the DSNTYPE parameter to override the DSNTYPE attribute defined in the data class of the partitioned data set or PDSE. NEW. Information that you need to define a PDSE appears in z/OS DFSMS: Using Data Sets . An HFS data set is a data set used by z/OS UNIX System Services (z/OS UNIX) programs. If you specify DISP=SHR on the DD statement for a PDSE.

A PDS can contain data and load module members. Specify HFS only when the DD statement also specifies a DSNAME parameter. management class. DSNTYPE cannot default to HFS or PIPE. Relationship to Other Parameters Do not code the following DD parameters with the DSNTYPE parameter.KEEP) In the example. You must explicitly specify these attributes. DD Statement 12-109 . or an installation default.ABC.DISP=(NEW. PDS Specifies a partitioned data set (PDS). and storage class for the data set.DD: DSNTYPE Syntax DSNTYPE= {LIBRARY} {HFS } {PDS } {PIPE } Subparameter Definition LIBRARY Specifies a DFSMS-managed partitioned data set extended (PDSE). Note that installation-written ACS routines select the data class (which specifies LIBRARY for DSNTYPE). the NEWPDSE DD statement defines member REC1 in the new PDSE named FILEA. See “Overrides” on page 12-52. Defaults If you do not specify DSNTYPE.ABC(REC1). Specify PIPE only when the DD statement also specifies a PATH parameter. Overrides DSNTYPE overrides the DSNTYPE attribute in the DATACLAS parameter for the data set. HFS Specifies an HFS data set. PIPE Specifies a FIFO special file. the data class for the data set. A PDSE can contain data and problem object members. Chapter 12. the type of data set is determined by other data set attributes. * AMP DATA DDNAME DYNAM QNAME RECORG Examples of the DSNTYPE Parameter Example 1 //NEWPDSE DD DSNAME=FILEA.

DISP=SHR. For more information.OEXCL. DSNTYPE=LIBRARY overrides the DSNTYPE attribute in data class DCLAS09 but uses other data set attributes in DCLAS09. DUMMY Parameter Parameter Type Positional.USRJOE. The DCLAS05 in DATACLAS specifies allocation characteristics.DELETE) The PIPE DD statement creates a file named /u/payroll/buffer for use as a FIFO special file.ONE. If you are specifying a pathname containing a special character.PATHMODE=(SIWUSR. The PATHDISP parameter requests that the file be kept when the program ends normally and deleted when it ends abnormally. The PATHOPTS parameter specifies that the user intends that the program open the FIFO special file for writing.1)) The FILESYS DD statement creates an HFS data set to contain an HFS file system. // PATHDISP=(KEEP.DSNTYPE=LIBRARY In the example. DATACLAS=DCLAS09. Pathnames are case-sensitive. Other jobs can be concurrently processing existing members of PDSE named REPORT. // PATHOPTS=(OWRONLY. including a lowercase character. DATACLAS=DCLAS09. DSNTYPE=LIBRARY overrides the DSNTYPE attribute in data class DCLAS09 but uses other data set attributes in DCLAS09.ONE(WEEK1). refer to “PATH Parameter” on page 12-150.DD: DSNTYPE Example 2 //NEWA // DD DSNAME=REPORT. Note that installation-written ACS routines select the management class and storage class for the data set. the NEWB DD statement adds a new member named WEEK2 to the existing PDSE named REPORT. the NEWA DD statement defines member WEEK1 in the new PDSE named REPORT.DISP=(NEW. Note that installation-written ACS routines select the management class and storage class for the data set.100.KEEP).ONE.SIRGRP). The number of directory blocks must be specified to indicate that this is an HFS data set but the value has no effect on allocation. The PATHMODE parameter specifies that the file owner can write in the FIFO special file and that users in the file group class can read from the FIFO special file. // DSNTYPE=HFS.SPACE=(CYL. enclose it in apostrophes.DSNTYPE=PIPE.(100.OCREAT).DSNTYPE=LIBRARY In the example. Example 4 //FILESYS DD DSNAME=OPENDS.DATACLAS=DCLAS05.DISP=(NEW. optional Purpose Use the DUMMY parameter to specify that: 12-110 z/OS V1R3. Example 5 //PIPE DD PATH=’/u/payroll/buffer’.0 MVS JCL Reference .TWO(WEEK2).KEEP). Example 3 //NEWB // DD DSNAME=REPORT.

except the DDNAME parameter. then ignores them.. replace the DD DUMMY statement with a DD statement that fully defines the data set.DISP=OLD Nullify the DUMMY parameter by coding: //JS EXEC //PS. otherwise. Parameters on DD DUMMY Statements v Code the DUMMY parameter by itself or follow it with all the parameters you would normally code when defining a data set. Relationship to Other Parameters Do not code the following parameters with the DUMMY parameter. v No disposition processing is to be performed on the data set. for syntax. nullify the effects of the DUMMY parameter by coding on the DD statement that overrides the DD DUMMY statement a DSNAME parameter that matches the DSNAME parameter on the DD DUMMY statement. All parameters coded on a DD DUMMY statement must be syntactically correct. no input or output operations are to be performed on the data set. v Code AMP=AMORG if you are using VSAM’s ISAM interface. the system checks the SPACE and DISP parameters. Code on the DD DUMMY statement all the required parameters. make sure that the DCB parameter supplies the missing information. procedure step PS contains the following: //DS1 DD DUMMY. When testing is finished and you want input or output operations performed on the data set. v Because no I/O is performed to the dummy data set.DS1 DD PROC=PROC1 DSNAME=A Syntax //ddname DD DUMMY[. if coded. Otherwise the system terminates the job. the referenced dsname must be cataloged or passed. The system checks their syntax. DD Statement 12-111 . One use of the DUMMY parameter is in testing a program. v If you code either VOLUME=REF=dsname or DCB=dsname with DUMMY. v For BSAM and QSAM. For example. the system will ignore it if the specified unit name is syntactically correct and defined to the system. Another use of the DUMMY parameter is in a cataloged or in-stream procedure. the job is terminated.DSNAME=A. * DATA DDNAME DYNAM QNAME Chapter 12. If the program does not supply all the data control block information.parameter].. When the procedure is called. If you code UNIT with DUMMY. if needed. v Code the DCB parameter.DD: DUMMY v No device or external storage space is to be allocated to the data set.

the system nullifies a DUMMY parameter on the overridden DD statement. the job is terminated. or DATA parameter.(10. For more information on the ISAM/VSAM interface. Relationship to Access Methods Use one of the following access methods with the DUMMY parameter: v Basic sequential access method (BSAM) v Virtual storage access method (VSAM) v Queued sequential access method (QSAM) v BDAM load mode (BSAM with MACRF=WL in the data control block) If you use any other access method.2)). or nullify. You must code a subparameter value for SYSOUT to nullify the DUMMY parameter. You must assign values to. the system assigns a dummy status to the later DD statement. Overriding a Procedure DD Statement Coding DUMMY on a DD statement that overrides a DD statement in a procedure does not nullify symbolic parameters on the overridden DD statement. If the overriding DD statement contains a DSNAME parameter other than NULLFILE.RECFM=FB) 12-112 z/OS V1R3.DSNAME=X. SYSOUT.0 MVS JCL Reference .stepname. However. or a SUBSYS. Data Sets Concatenated to Dummy Data Sets The system treats data sets concatenated to a DUMMY data set as dummy data sets in that I/O operations are bypassed. see z/OS DFSMS: Using Data Sets. Note: If you code SYSOUT= on an overriding statement.CATLG) DD statement OUTDD1 defines a dummy data set.X. SPACE=(TRK. The other parameters coded on the statement are checked for syntax but not used. Examples of the DUMMY Parameter Example 1 //OUTDD1 // DD DUMMY. symbolic parameters on the overridden DD statement as described in “Using System Symbols and JCL Symbols” on page 5-12.LRECL=400. the system performs disposition processing and allocates devices and storage for any concatenated data sets.UNIT=3380. Note: The ISAM/VSAM interface does not support the DUMMY parameter. Example 2 //IN1 DD DUMMY.DD: DUMMY Relationship to Other Control Statements Backward References If a later DD statement in a job refers to a DD DUMMY statement when requesting unit affinity (UNIT=AFF=ddname) or volume affinity (VOLUME=REF=*.Z. without specifying a subparameter value.DISP=(.DCB=(BLKSIZE=800. a PATH parameter other than /dev/null. *. the system does not nullify the DUMMY parameter.ddname).

Without it. Example 3 //IN2 DD DUMMY.VOLUME=SER=11257.TAB DD DUMMY Example 5 //MSGS DD SYSOUT=A If you call a cataloged procedure that contains the DD statement MSGS in procedure step LOCK.UNIT=3350 When calling a cataloged procedure that contains DD statement IN2 in procedure step STEP4. The DYNAM parameter is supported to provide compatibility with older systems.IN2 DD DSNAME=ELLN Example 4 //TAB DD DSNAME=APP. The DCB parameter supplies data control block information not supplied in the program. for example. the step might be abnormally terminated. you can nullify the effects of the DUMMY parameter by coding: //STEP4. SYSCHK.MSGS DD DUMMY DYNAM Parameter Parameter Type Positional. Syntax //ddname DD DYNAM [comments] Relationship to Other Parameters Do not code any parameters with the DYNAM parameter. the system normally holds resources in anticipation of reuse.DISP=OLD If you call a cataloged procedure that contains DD statement TAB in procedure step STEP1.DD: DUMMY DD statement IN1 defines a dummy data set. A DD DYNAM statement is a dummy request. JOBLIB. you can make this DD statement define a dummy data set by coding: //LOCK. Do not code on a DD DYNAM statement a ddname that is meaningful to the system. optional Purpose Use the DYNAM parameter to increase by one the control value for dynamically allocated resources held for reuse.LEV12. DD Statement 12-113 .DSNAME=ELLN.DISP=OLD. Even when DYNAM is not coded. Chapter 12. you can make this DD statement define a dummy data set by coding: //STEP1.

Example of the DYNAM Parameter //INPUT DD DYNAM This DD statement increases by one the control value for dynamically allocated resources held for reuse. the data set can be deleted or written over by another data set. or. either normally or abnormally. EXPDT Parameter Parameter Type Keyword. this would not be an error condition. optional Purpose Use the EXPDT parameter to specify the expiration date for a new data set. even if you have specified an expiration date.DD: DYNAM Relationship to Other Control Statements v Do not refer to a DD DYNAM statement in a DDNAME parameter. DSNAME=NULLFILE does not nullify a DYNAM parameter. v Do not code a backward reference to a DD DYNAM statement. with SMS. If the DD statement contains DISP=(NEW. Code the EXPDT parameter when you want to specify an expiration date for the data set. the system deletes the data set when the step terminates. v To nullify the DYNAM parameter on a DD statement in a cataloged or in-stream procedure. Syntax EXPDT= {yyddd } {yyyy/ddd} The EXPDT parameter can have a null value only when coded on a DD statement that is either added to a procedure or overrides a DD statement in a procedure. The EXPDT parameter achieves the same result as the RETPD parameter.DELETE) or the DISP parameter is omitted and defaults to NEW and DELETE. code a SYSOUT or DSNAME parameter in the overriding DD statement. Do not specify EXPDT for a temporary data set.0 MVS JCL Reference . override the expiration date defined in the data class for the data set. Note: You may specify a past date. 12-114 z/OS V1R3. v Do not code the DYNAM parameter on the first DD statement for a concatenation. Note: You cannot use the EXPDT parameter to change the expiration date of an existing SMS data set. On and after the expiration date.

code February 2. DD Statement 12-115 . Overrides With SMS. 2000 as EXPDT=2000/366. Data sets with these expiration dates are not deleted or written over. yyddd This form of the expiration date specifies a two-digit year number yy (from 00 through 99) and a three-digit day number ddd (from 001 through 365 for a non-leap year date. You may specify the years from 1900. Data sets with these expiration dates are not deleted or written over. and code December 31. Relationship to Other Parameters Do not code the following DD parameters with the EXPDT parameter.DD: EXPDT Subparameter Definition EXPDT=yyddd EXPDT=yyyy/ddd Specifies an expiration date for the data set. from 001 through 366 for a leap year date). Note: Expiration dates of 99365 and 99366 are considered “never-scratch” dates. and code December 31. Note: For expiration dates of January 1. yyyy/ddd This form of the expiration date specifies a four-digit year number yyyy (from 1900 through 2155) and a three-digit day number ddd (from 001 through 365 for a non-leap year date. For example. 2000 and later. you MUST use the form EXPDT=yyyy/ddd. See “Overrides” on page 12-52. However. 1999 as EXPDT=99033. code February 2. * DATA DDNAME DYNAM RETPD SYSOUT Deleting a Data Set Before its Expiration Date To delete a data set (and make the space occupied by the data set available for reallocation) before the expiration date has passed. With SMS. Note: Expiration dates of 1999/365 and 1999/366 are considered “never-scratch” dates. 1996 as EXPDT=96366. 1999 as EXPDT=1999/033. the data set is immediately eligible for replacement. both the expiration date specified on EXPDT and defined in the data class for an SMS-managed data set can be limited by a maximum expiration date defined in the management class for the data set. if you specify the current date or an earlier date. EXPDT overrides the expiration date defined in the DATACLAS parameter for the data set. For example. use one of the following methods: Chapter 12. from 001 through 366 for a leap year date).

2001 overrides the expiration date defined in the data class for the data set. See z/OS MVS Initialization and Tuning Reference for information about the IGDSMSxx parmlib member. FCB Parameter Parameter Type Keyword.1)). 4248 Printer. 2006. IBM provides three standard FCB images: v STD1. the expiration date of February 2. this also uncatalogs the data set. the data set is not eligible for being deleted or written over until February 2. v The carriage control tape JES is to use to control printing of this sysout data set by a 1403 Printer or by a printer supported by SNA RJE.DISP=(NEW. as described in z/OS DFSMS Access Method Services for Catalogs. 3203 Printer Model 5. Example 2 //SMSDS2 // DD DSNAME=MYDS2. v For data sets not cataloged in an integrated catalog facility catalog.VOLUME=SER=663344 In this example.(1. you can override the expiration date for SMS-managed DASD data sets by specifying DELETE on the DD DISP parameter. The FCB image specifies how many lines are to be printed per inch and the length of the form. JES loads the image into the printer’s forms control buffer. The FCB image is stored in SYS1. use the DELETE command. or by a printer supported by systems network architecture (SNA) remote job entry (RJE). UNIT=SYSDA.5-inch-long form. which specifies 6 lines per inch on an 8.IMAGELIB. as described in z/OS DFSMSdfp Utilities.DATACLAS=DCLAS02. as described in z/OS DFSMSdfp Advanced Services.KEEP).DISP=(NEW. (3211 and 3203-2 only) v STD2.KEEP). which specifies 6 lines per inch on an 11-inch-long form. 3800 Printing Subsystem.0 MVS JCL Reference . v If the storage administrator specified OVRD_EXPDT(YES) in the IGDSMSxx member of SYS1. The system will delete the data set whether or not it has expired. 3211 Printer. If the data set is SMS-managed.EXPDT=2006/033.DD: EXPDT v For data sets cataloged in an integrated catalog facility catalog.PGM.PARMLIB. optional Purpose Use the FCB parameter to specify: v The forms control buffer (FCB) image JES is to use to guide printing of this sysout data set by a 1403 Printer. Examples of the EXPDT Parameter Example 1 //DD7 // DD DSNAME=TOM1. v The data-protection image JES is to use to control output of this sysout data set by a 3525 Card Punch. EXPDT=2001/033 In this example. v Use the SCRATCH macro with the OVRD parameter. (3211 and 3203-2 only) 12-116 z/OS V1R3. use the IEHPROGM utility.SPACE=(TRK. 4245 Printer.

the system checks the FCB image in the printer’s forms control buffer. DD Statement 12-117 . Overrides An FCB parameter on a sysout DD statement overrides an OUTPUT JCL FCB parameter. Code the fcb-name as STD3 for a high-density dump. The operator can also take this opportunity to align the printer forms.VERIFY])} v v v v You can omit the parentheses if you code only the fcb-name. JES loads the FCB image that is the installation default specified at JES initialization. Code the fcb-name as STD1 or STD2 only to request the IBM-supplied images. ALIGN Requests that the system ask the operator to check the alignment of the printer forms before the data set is printed.ALIGN|. v ALIGN is ignored for a data set printed on a 3800. Note: v ALIGN is ignored for a sysout data set. The name is 1 through 4 alphanumeric or national ($. if it is a default image. (3800 only) References For more information on the forms control buffer. @) characters and is the last characters of a SYS1. The 3800 does not use the ALIGN subparameter. v FCB3xxxx member for a 3800. Note: VERIFY is ignored for a sysout data set. which specifies 8 lines per inch for a dump on an 11-inch form. Null positions in the FCB parameter are invalid. see z/OS DFSMSdfp Advanced Services or 3800 Programmer’s Guide. Chapter 12. v FCB4xxxx member for a 4248. VERIFY Requests that the system ask the operator to verify that the image displayed on the printer is for the desired FCB image. or a printer supported by SNA. a 3203 model 5. JES uses it. Subparameter Definition fcb-name Identifies the FCB image.IMAGELIB member name: v FCB2xxxx member for a 3211. Syntax FCB= {fcb-name } {(fcb-name[.DD: FCB v STD3. as indicated by its first byte. If it is not a default image. #. Defaults If you do not code the FCB parameter.

the DD statement defines an output data set to be printed by a 3211. do not code the SYSOUT parameter and the FCB parameter.0 MVS JCL Reference .IMAGELIB. You can code one or both of these parameters. v The JES3 //*FORMAT PR statement. * AMP DATA DDNAME DYNAM KEYOFF PROTECT QNAME Do not code the following DCB subparameters with the FCB parameter.DD: FCB Relationship to Other Parameters Do not code the following parameters with the FCB parameter. the FCB image is defined in the work station.FCB=(IMG1. When a work station does not use a PDIR. Examples of the FCB Parameter Example 1 //DD1 DD UNIT=3211. add an FCB member to SYS1. v The JES2 /*OUTPUT statement. Relationship to Other Control Statements You can also code the FCB parameter on the following: v The OUTPUT JCL statement. Defining an FCB Image for a Work Station When a work station uses a peripheral data set information record (PDIR). The DD statement FCB fcb-name subparameter must match the FCB name defined in the PDIR work station. v CHARS=DUMP.IMAGELIB. You can place both on the same statement or one on each statement. the system displays the FCB image on the printer before printing the data set. CYLOFL RKP INTVL For output to the 3525. Requesting a High-Density Dump You can request a high-density dump on the 3800 through two parameters on the DD statement for the dump data set or on an OUTPUT JCL statement referenced by the dump DD statement: v FCB=STD3. This parameter produces 204-character print lines. The FCB parameter requests that the data set be printed under control of the FCB2IMG1 member in SYS1. Example 2 12-118 z/OS V1R3. the system ignores the FCB parameter. This parameter produces dump output at 8 lines per inch. JES3 translates the FCB into a set vertical format (SVF). Because VERIFY is coded. At setup time.VERIFY) In this example.

the DD statement requests that the 3800 print a dump at 8 lines per inch. the DD statement defines an output data set to be printed by a 3211. Chapter 12. Example 4 //PUNCH DD UNIT=3525.ALIGN) In this example.FCB=IMG2 This sysout DD statement specifies output class A. JES loads the FCB image IMG2 into the forms control buffer. Therefore. the system checks the FILEDATA syntax and then ignores the parameter.FCB=(6.DD: FCB //DD2 DD SYSOUT=A. see z/OS Network File System Customization and Operation and z/OS Network File System User’s Guide. If output class A routes output to a printer having the forms control buffer feature. Because ALIGN is coded. the FCB parameter defines the data protection image to be used for the 3525. If the printer does not have the forms control buffer feature. Example 3 //OUTDDS DD UNIT=3211. If a job containing the FILEDATA parameter runs on a system without the required DFSMS/MVS support. Example 5 //SYSUDUMP DD SYSOUT=A. the DD statement requests output on a 3525.FCB=DP2 In this example.FCB=STD3 In this example. DD Statement 12-119 . The FCB parameter requests that the data set be printed under control of the FCB image named 6. FILEDATA Parameter Parameter Type Keyword.3 or later. References For more information on network file protocols. the operator receives a message to mount the carriage control tape IMG2 on the printer. Use the FILEDATA keyword only on a system that includes DFSMS/MVS Version 1. the system issues a message to the operator requesting that the alignment of the printer forms be checked before the data set is printed. optional Purpose Use the FILEDATA keyword to describe the organization of a hierarchical file so that the system can determine how to process the file.

0 MVS JCL Reference .OCREAT) In this example. Relationship to Other Parameters You can code the FILEDATA parameter only on a DD statement that contains a PATH parameter. optional Purpose Use the FLASH parameter to identify the forms overlay to be used in printing this sysout data set on a 3800 Printing Subsystem and. optionally. 12-120 z/OS V1R3. The access method does not insert or delete record delimiters.FILEDATA=TEXT. You can code the following parameters with the FILEDATA parameter. TEXT The file described by the DD statement contains records delimited by the EBCDIC newline character (x’15’).SISUID).PATHOPTS=(ORDONLY. FLASH Parameter Parameter Type Keyword. the DD statement identifies a hierarchical file and informs the system that this file contains records delimited by the newline character.DD: FILEDATA Syntax FILEDATA= {BINARY} {TEXT } Subparameter Definition BINARY The file described by the DD statement is a byte-stream file and does not contain record delimiters. PATHMODE=(SIRWXU. to specify the number of copies on which the forms overlay is to be printed. the system assigns a default value of BINARY. BLKSIZE BUFNO DSNTYPE DUMMY LRECL NCP PATH PATHDISP PATHMODE PATHOPTS RECFM TERM Example of the FILEDATA Parameter //DD1 // DD PATH=’/u/d89pek1/new’. Overrides The FILEDATA parameter does not override the specification of any other JCL keyword or system parameter. Defaults If you do not code the FILEDATA parameter.

Overrides A FLASH parameter on a sysout DD statement overrides an OUTPUT JCL FLASH parameter. Syntax FLASH= {overlay-name } {(overlay-name[. However. but is permitted on an OUTPUT JCL statement. count Specifies the number. #. for example. If you omit it. The name is 1 through 4 alphanumeric or national ($. That is. JES3 sets the overlay-name to zero before sending the job to the node. if you omit it.) is invalid.count])} {NONE } The count subparameter is optional. FLASH=(ABCD. DD Statement 12-121 . 0 through 255. all copies are flashed. References For information on forms overlays. beginning with the first copy printed. @) characters. * AMP DATA DDNAME DISP DSID DYNAM LABEL PROTECT QNAME SUBSYS VOLUME Chapter 12. NONE Suppresses flashing for this sysout data set. the default for count is 255.DD: FLASH Note: FLASH applies only for a data set printed on a 3800. you must not code it as a null. Note: A null first subparameter is invalid in a FLASH parameter on a DD statement. Subparameter Definition overlay-name Identifies the forms overlay frame that the operator is to insert into the printer before printing begins. forms are not flashed. If you specify an overlay-name without specifying a count or with a count of 0. you can omit the parentheses. see the Forms Design Reference Guide for the 3800. Code a count of 0 to flash all copies. Defaults If you do not code a FLASH parameter and an installation default was not specified at JES2 or JES3 initialization. If FLASH=NONE is on a DD statement in a job to be executed at a remote node. Relationship to Other Parameters Do not code the following parameters with the FLASH parameter. of copies that JES is to flash with the overlay.

4)) and FLASH=(LTHD. v The sum of the group-values specified in the COPIES parameter.FLASH=(ABCD.12) JES prints 10 copies. v Omit the FLASH parameter on all of the statements for the data set and on all JES initialization statements. FREE Parameter Parameter Type Keyword. v The JES2 /*OUTPUT statement. JES prints with the forms overlay the number of copies specified in one of the following: v COPIES=nnn. if the FLASH count is larger than nnn. Relationship to Other Control Statements FLASH can also be coded on the following: v The OUTPUT JCL statement.(2.0) on a referenced OUTPUT JCL statement. Example of the FLASH Parameter //DD1 DD SYSOUT=A. optional Purpose 12-122 z/OS V1R3. v The count subparameter in the FLASH parameter.DD: FLASH Relationship to COPIES Parameter If this DD statement or a referenced OUTPUT JCL statement also contains a COPIES parameter. if COPIES=(. Verification of Forms Overlay Frame Before printing starts. JES issues a message to the operator requesting that the forms-overlay frame named ABCD be inserted into the printer. For example. all with the forms overlay. specify one of the following: v FLASH=NONE on the DD or OUTPUT JCL statement. Printing without Flashing To print without flashing.0 MVS JCL Reference . if COPIES=10 and FLASH=(LTHD. the system requests the operator to load the specified forms overlay frame in the printer. if COPIES=10 and FLASH=(LTHD.12) JES prints nine copies in groups. Then JES prints the first five copies of the data set with the forms-overlay and the last five copies without.5) In this example. omit the FLASH parameter on the DD statement and specify FLASH=(. For example. v The JES3 //*FORMAT PR statement.COPIES=10. v For a sysout data set. if the FLASH count is larger than the sum.7) JES prints seven copies with the forms overlay and three copies without. For example. all with the forms overlay.3. A frame must be loaded. if the FLASH count is smaller than nnn or the sum from the COPIES parameter. but the system cannot verify that it is the correct frame.

The resources can be devices.DD: FREE Use the FREE parameter to specify when the system is to unallocate the resources used for this DD statement’s data set. JOBLIB. v The data set is referenced by another DD statement in the same or subsequent step. or exclusive use of a data set. CLOSE Requests that the system unallocate the data set when it is closed. Do not specify FREE=CLOSE on a DD statement with a ddname of JOBCAT. CLOSE is ignored. Syntax FREE= {END } {CLOSE} Subparameter Definition END Requests that the system unallocate the data set at the end of the last step that references the data set. STEPCAT. * DATA DDNAME DYNAM QNAME If the DD statement specifies FREE=END and a DISP subparameter of PASS. Also. volumes. the data set is not unallocated until the end of the job or until used for a later DD statement with a disposition of other than PASS. Relationship to Other Parameters Do not code the following parameters with the FREE parameter. Overrides FREE=CLOSE is ignored when: v The data set is a member of a concatenated group. the default is END. such as an ESTAE routine. the system substitutes END and issues a warning message. Note: Specifying FREE will not release the enqueue on the data set until the last step that requires the data set completes processing. If a recovery routine. if the FREE parameter is incorrectly coded. DD Statement 12-123 . Chapter 12. gets control and closes the data set. v The task using the data set abnormally terminates. however. Defaults If no FREE parameter is specified. the system uses the abnormal termination disposition from the DISP parameter to process the data set. When you specify FREE=CLOSE: v If the job step abnormally terminates before the data set is closed. or STEPLIB. it uses the normal termination disposition.

Examples of the FREE Parameter Example 1 //EA33 DD SYSOUT=D. the FREE=CLOSE parameter makes JES unallocate this output class D data set when it is closed. the sysout data set will be unallocated. Relationship to Other Control Statements If a DD statement requests unit affinity in a UNIT=AFF parameter or volume affinity in a VOLUME=REF parameter with an earlier DD statement. If you specify SPIN=UNALLOC with FREE=END. JES2 will not group the data sets into one output group. unless the data set is dynamically allocated in the interval. If you specify SPIN=NO with FREE=CLOSE. do not code FREE=CLOSE on the earlier statement.0 MVS JCL Reference . If you specify SPIN=NO with FREE=END. or FREE. If you dynamically unallocate the sysout data set. rather than at the end of the job step. Instead. JES2 produces one copy of the sysout data set for each OUTPUT JCL statement that the DD statement references. REWIND. Example 2 //EA33 DD DSNAME=SYBIL. but not printed until the end of the job. If you code FREE=CLOSE on a sysout DD statement that references an OUTPUT JCL statement containing a GROUPID parameter. If you do not explicitly close or dynamically unallocate the data set. Then the data set can be reopened. the system makes the sysout data set available for printing at the end of the job. When you specify SPIN=UNALLOC with FREE=CLOSE. and is made available for printing then. the system makes it available for printing immediately. If the data set is reopened after the system has unallocated it. the sysout data set is unallocated at the end of the step.DD: FREE v If the job step abnormally terminates after the data set is closed. it will be available for printing at the end of the step. the sysout data set is available for printing immediately when you explicitly close or dynamically unallocate the data set. The data set is not unallocated until the end of the job if the assembler CLOSE macro instruction specifies LEAVE or REREAD.DISP=OLD. then the system has already processed the data set using the normal termination disposition. regardless of when the data set is unallocated or closed. JES schedules the data set for printing. Relationship to the CLOSE Macro Instruction When FREE=CLOSE is specified for a data set that is opened and closed more than once during a job step: v The data set is unallocated after it is closed if the assembler CLOSE macro instruction specifies DISP.FREE=CLOSE In this example. the job step abnormally terminates.FREE=CLOSE 12-124 z/OS V1R3.

dequeue it.FREE=END In this example. when it is also cataloged. Example 4 //STEP1 //DD //STEP2 EXEC PGM=BAKER1 DD DSNAME=A. or a JES3 //*OPERATOR statement. If HOLD appears on a DD statement that does not contain a SYSOUT parameter.DD: FREE In this example. FREE=END is ignored and the data set remains allocated.PASS).FREE=END PGM=ABLE2 DSNAME=A. the job being submitted will be held. When the data set is ready for processing. FREE=END on DD statement DD2 causes data set A to be unallocated at the end of STEP2. notify the system operator to release it via a TSO/E NOTIFY parameter. FREE=END on DD statement DD1 is ignored because the disposition is PASS.DISP=(. HOLD is supported only for sysout data sets. and make it available to other jobs as soon as it is closed. the TSO/E user can process only work on the hold queue. Notes: 1. a JES2 /*MESSAGE statement. DD Statement 12-125 . data set A is passed by STEP1 to STEP2.CATLG). HOLD allows the sysout data set to be the internal reader.DISP=(OLD. Example 3 //STEP1 //DD1 //STEP2 //DD2 EXEC DD EXEC DD PGM=ABLE1 DSNAME=A. HOLD Parameter Parameter Type Keyword. optional Purpose Use the HOLD parameter to tell the system to hold a sysout data set until it is released by the system operator. Syntax HOLD= {YES} {Y } {NO } {N } Chapter 12. For JES3. 2.FREE=END EXEC PGM=BAKER2 In this example. A TSO/E user can specify HOLD=YES to retrieve a sysout data set and display it on a terminal. Because PASS is specified. it is ignored.PASS).DISP=(NEW. the FREE=CLOSE parameter makes JES unallocate the data set. data set A is a new data set. If the sysout data set is the internal reader.

If the HOLD parameter is incorrectly coded.DISP=SHR SYSOUT=A.PROCLIB(JES3). the system holds the output data set at that node on the BDT queue (when transmitting to an SNA-attached node) or the WTR queue (when transmitting to a BSC-attached node) if all of the following are true: – The ″// DD SYSOUT=″ JCL statement does not contain a DEST=(node. Defaults If no HOLD parameter is specified. (NODE5 is attached to NODE1 via BSC and output class A is not defined as a hold class. 12-126 z/OS V1R3.PROCLIB(JES3).DEST=NODES Example 2. The following job executes on NODE1 and results in the SYSUT2 output data set being held on the WTR queue on NODE1. The following job executes on NODE1 and results in the SYSUT2 output data set being held on the BDT queue on NODE1. the system does not hold the data set until it reaches its ultimate destination node. – No WRITER= parameter is coded on the OUTPUT JCL statement.OUTPUT=(*. the job continues. the default is NO.0 MVS JCL Reference . – The SYSOUT= parameter does not contain the WRITER-NAME subparameter and the output class is not defined as a hold class. the system assumes the default of NO and issues a warning message. the system may still not hold the data set if the class of output being transmitted is not defined as a hold class.) //S1 //SYSPRINT //SYSIN //SYSUT1 //SYSUT2 EXEC DD DD DD DD PGM=IEBGENER SYSOUT=A DUMMY DSN=SYS1. Example 1. Overrides HOLD=NO is overridden by the unallocation verb of dynamic allocation or the TSO/E FREE command.). You can also code this subparameter as Y. v If the destination node is a JES3 node. NJE Notes: v In a JES2 NJE environment.HOLD=YES.DD: HOLD Subparameter Definition YES Requests that the system hold the sysout data set until the data set is released by the system operator. If the sending node is JES3.HOLD=YES. You can also code this subparameter as N.O1) NO Requests that the system perform installation-defined processing for the sysout data set’s output class.MYWRITR DD SYSOUT=A DD DUMMY DD DSN=SYS1.) //S1 //O1 //SYSPRINT //SYSIN //SYSUT1 //SYSUT2 EXEC PGM=IEBGENER OUTPUT CLASS=A.DISP=SHR DD SYSOUT=(. (NODE5 is attached to NODE1 via SNA and output class A is not defined as a hold class.userid) parameter.DEST=NODE2.

.) or v the sysout data set is placed on the hold queue.SET SYSOUT=(. JES2 users can use the /*NOTIFY control statement to direct job notification messages and to override a JOB NOTIFY parameter.HOLD=YES In this example. Example 2 //$JOBxx //OUT1 //STEP1 //SYSPRINT //SYSUT1 //SYSUT2 JOB OUTPUT EXEC DD DD DD .. JES3 does not ignore the HOLD=YES.CLASS=A. optional Purpose Use the KEYLEN parameter to specify the length of the keys used in a new data set.DSN=A. Relationship to Other Parameters Code the HOLD parameter only on a DD statement with the SYSOUT parameter. sysout data set DD1 from JOB01 is held on a queue until the TSO/E user at RMT6 asks the system operator to release the data set.MSGLEVEL=1 DEST=NODE2. Example 1 shows this case.HOLD=YES In this example.OUTPUT=(*. if SYSOUT=(.MSGLEVEL=1 PGM=MJCOSCO SYSOUT=B..DATA. Example 2 shows this case. (JES3 does not ignore the HOLD=YES when DEST= is coded on the OUTPUT DD statement. Relationship to Other Control Statements Code a NOTIFY parameter on the JOB statement to ask the system to send a message to your TSO/E userid when job processing is complete. if the job is submitted on NODE1.).OUT1).DD: HOLD Either HOLD=YES or HOLD=NO on the DD statement overrides the sysout data set disposition specified on the OUTDISP parameter of the OUTPUT JCL statement.’OSWALD CHALMERS’. JES3 ignores HOLD=YES when v DEST=(node. Examples of the HOLD Parameter Example 1 //JOB01 //STEP1 //DD1 JOB EXEC DD . DD Statement 12-127 .userid) is coded on the SYSOUT= DD statement.writer-name) is coded. for example. PGM=IEBGENER SYSOUT=* DISP=SHR. The SYSOUT data set is held at NODE1 and is not transmitted to NODE2 to be held there. KEYLEN Parameter Parameter Type Keyword.’HAROLD DUQUETTE’.printer.DEST=RMT6. Code the KEYLEN parameter when you want to: v Specify a key length for the data set or Chapter 12.

A key length must be specified. Use 0 or 8 to perform input operations on the directory of a PDSE.DISP=(NEW. or in the data class for the data set. to VSAM data sets.B. The key length can be supplied from the data set label (or data class with SMS).2)).DD: KEYLEN v With SMS. See “Overrides” on page 12-52. * DATA DCB=KEYLEN DCB=MODE DCB=PRTSP DCB=STACK DCB=TRTCH DDNAME DYNAM Examples of the KEYLEN Parameter Example 1 //DD4 // DD DSNAME=JST.KEEP). Note: Use only 0 for a member of a partitioned data set extended (PDSE). BPAM. of the keys used in the data set. Syntax KEYLEN=bytes Subparameter Definition bytes Specifies the length.(12. QISAM.KEYLEN=8 DD statement DD4 defines a new data set named JST and requests that the system copy the DCB information from the data set label of the cataloged data set 12-128 z/OS V1R3.0 MVS JCL Reference . The number of bytes is: v 0 to 255 for non-VSAM data sets. v 1 to 255 for VSAM key-sequenced (RECORG=KS) data sets. either explicitly with the KEYLEN or LIKE parameter. and with SMS. BSAM. SPACE=(CYL. KEYLEN applies to data sets with the BDAM. Overrides KEYLEN overrides the key length specified in the data set label. The key length must be less than the record length. override the key length defined in the data class of the data set. The key length must be less than or equal to the record length. and.DCB=(A. EXCP.UNIT=3350. input or output requests must not require keys. KEYLEN overrides the key length defined in the DATACLAS parameter for the data set. and TCAM access methods. Relationship to Other Parameters Do not code the following DD parameters with the KEYLEN parameter. with SMS. If a key length is not specified or supplied.C). in bytes.

The offset is 0 to the difference between the record length (LRECL) and key length (KEYLEN).DD: KEYLEN named A. it is overridden by the KEYLEN coded on this DD statement.PGM. KEYLEN=6 In the example. Code the KEYOFF parameter only for a VSAM key-sequenced data set (RECORG=KS). use the RKP subparameter of the DCB parameter described on page 12-72. If SMS is not installed or is not active. DD Statement 12-129 . If the data set label contains a key length specification. See “Overrides” on page 12-52. optional — use this parameter only with SMS Without SMS. Chapter 12. The first byte of a logical record is position 0. the position of the first byte of the record key in each logical record of a new VSAM data set.C. the key length of 6 overrides the key length defined in the data class. Code the KEYOFF parameter when you want to (1) specify a key offset for the data set or (2) override the key offset defined in the data class of the data set. References See z/OS DFSMS: Using Data Sets for information on VSAM key-sequenced data sets. KEYOFF Parameter Parameter Type Keyword. where the data class VSAM1 defines a key-sequenced VSAM data set. Syntax KEYOFF=offset-to-key Subparameter Definition offset-to-key Specifies the position (offset). in bytes. Purpose Use the KEYOFF parameter to specify the key offset. in the range 0 to 32. the system syntax checks and then ignores the KEYOFF parameter.DATACLAS=VSAM1.DISP=(NEW.KEEP).B. of the first byte of the key in each record. Overrides KEYOFF overrides the key offset defined in the DATACLAS parameter for the data set.760. Example 2 //SMSDS3 // DD DSNAME=MYDS3.

KEYOFF=2 In the example.0 MVS JCL Reference .KEEP). you should use the RETPD or EXPDT DD parameter to specify a retention period or expiration date for the data set. 12-130 z/OS V1R3.PGM. v If a password is required to access the data set. see z/OS DFSMSdfp Advanced Services. Although subparameters RETPD and EXPDT are shown in the syntax of the LABEL parameter.DISP=(NEW. v If the system is to open the data set only for input or output. the data class VSAM1 defines a key-sequenced VSAM data set. this parameter can also specify the relative position of the data set on the volume. optional Purpose Use the LABEL parameter to specify for a tape or direct access data set: v The type and contents of the label or labels for the data set. For a tape data set.DATACLAS=VSAM1. For information on protecting a data set with a password. v The expiration date or retention period for the data set. * DATA DCB=RESERVE DCB=RKP DDNAME DYNAM FCB UCS Example of the KEYOFF Parameter //SMSDS3 // DD DSNAME=MYDS3. LABEL Parameter Parameter Type Keyword. References For details on tape labels. The key offset of 2 overrides the key offset defined in the data class and specifies that the first byte of the key is in the third position of each record. see z/OS DFSMS: Using Data Sets. see z/OS DFSMS: Using Magnetic Tapes.DD: KEYOFF Relationship to Other Parameters Do not code the following DD parameters with the KEYOFF parameter. For details on direct access labels.

you can omit the parentheses.EXPDT=1997/033) If you specify only the data-set-sequence-number or only the retention period or only the expiration date..EXPDT={yyddd }] [. The data-set-sequence-number is 1 through 4 decimal digits.EXPDT=97033) LABEL=(.EXPDT=1997/033) LABEL=(0001. and the DD EXPDT Subparameter Definition Data-Set-Sequence-Number data-set-sequence-number Identifies the relative position of a data set on a tape volume.SUL.. you do not need commas to indicate omitted subparameters.NOPWREAD][. Omit this subparameter or code 0 or 1 to indicate the first data set on the tape volume.IN) LABEL=(0001. Alternate Syntax for RETPD and EXPDT RETPD and EXPDT should be specified as DD parameters rather than subparameters of the LABEL parameter. code LABEL=data-setsequence-number. LABEL=RETPD=nnnn. LABEL=EXPDT=yyddd. Omit this subparameter for the following: v Cataloged data sets.IN. code RETPD and EXPDT on the DD statement as: RETPD=366 or EXPDT=2006/033 See the DD RETPD parameter described on page 12-172. If you omit any positional subparameters but code a following positional subparameter.RETPD=nnnn ]) [. parameter described on page 12-114. Chapter 12. ] [ {yyyy/ddd}] label is one of the following: AL AUL BLP LTM NL NSL SL SUL The first four subparameters are positional. This allows you to specify a retention period or expiration date without the need to code LABEL. or LABEL=EXPDT=yyyy/ddd.SUL.DD: LABEL Syntax LABEL=([data-set-sequence-number][.IN ][.PASSWORD.label] [.PASSWORD. For example: LABEL=(0001..EXPDT=1997/033) LABEL=(. For example.PASSWORD) LABEL=(. the last subparameter is keyword. ] [.. For example.PASSWORD][.OUT][.IN) LABEL=(.SUL. indicate each omitted subparameter by a comma.SUL. DD Statement 12-131 . If the following subparameter is one of the keyword subparameters (EXPDT or RETPD). The system obtains the data-set-sequence-number from the catalog.

NL Indicates that a tape data set has no labels. the data is placed in the generation and version number fields of the HDR1 label. SL is the default. code LABEL=(.GnnnnVnn (where n=0 through 9) will not appear as part of the file identifier (data set name field) of the HDR1 label. AUL Indicates that a tape data set has user labels and ISO/ANSI Version 1 or ISO/ANSI/FIPS Version 3 labels. If this subparameter is omitted.DD: LABEL v A DD DSNAME parameter that requests all members of a generation data group (GDG). 12-132 z/OS V1R3. the ending . Code only SL or SUL for data sets on direct access devices. Before you code NSL. Do not code SUL for partitioned or indexed sequential data sets. SL Indicates that a data set has IBM standard labels. Code only SL or SUL for data sets on direct access devices. the label type is not obtained from any other source referred to in the DD statement. Instead.SL). concatenate the DD statements and repeat the LABEL parameter on each DD statement. The system retrieves the data-set-sequence-number from the catalog. Label The system does not retain label type information for cataloged data sets. If the LABEL parameter is coded on a SYSCKEOV DD statement. v A data set passed from a preceding step. AL Indicates that a tape data set has ISO/ANSI Version 1 or ISO/ANSI/FIPS Version 3 labels. SUL Indicates that a data set has both IBM standard and user labels. NSL Indicates that a tape data set has nonstandard labels. Only two label types are valid for direct access devices: SL and SUL. the data control block must specify OPTCD=Q. the system obtains the label type from the DD statement. if the label type is not coded in the LABEL parameter for a cataloged data set. ensure that your installation has created and installed non-standard label processing routines. The system obtains the data-set-sequence-number from the passing step. If you specify AL for a tape generation data set for output. the system assumes SL.0 MVS JCL Reference . If you are processing ASCII data on unlabeled tapes. For a data set on a direct access device. described in z/OS DFSMS Installation Exits. When retrieving two or more data sets from several NL or BLP tape volumes.

Notes: 1. the number must reflect all labels and data sets that precede the desired data set. coding BLP might result in incorrect tape positioning. which represent overriding esoteric unit names.. code the data-set-sequence-number subparameter. When retrieving two or more data sets from several NL or BLP tape volumes. BLP has the same effect as NL. Password protecting data sets requires the following: v Data set names no longer than 17 characters. if NOPWREAD is coded. See the DD SECMODEL parameter described on page 12-176. code the password of the existing data set. the system obtains the data-set-sequencenumber from the catalog. If the ACS routine does not exclude these subparameters. To password-protect a data set on a tape volume containing other data sets. Chapter 12. 2. you must password-protect all the data sets on the volume and the passwords must be the same for all data sets.IN) is the system-managed tape library equivalent of either UNIT=SYS3480R or UNIT=SYS348XR. longer names could be identical in password checks. the system will abnormally terminate a job step when it attempts to open the data set for output. If a password is not assigned. if PASSWORD is coded. concatenate the DD statements and repeat the LABEL parameter on each DD statement. the job will fail with JCL errors. LABEL=(. but you cannot use the NSL or LTM subparameters. SMS sets the password indicators in the VTOC and catalog but ignores the indicators and does not use password protection for the data set. Therefore.. If you code BLP and the tape volume has labels. or for input or output. Do not specify BLP when the DD DSNAME parameter requests all members of a generation data group (GDG). If the installation did not specify the BLP feature in the reader cataloged procedure. You may use the LABEL parameter when allocating a system-managed tape volume. or when retrieving a data set from several BLP tape volumes and those volumes have labels.DD: LABEL BLP Requests that the system bypass label processing for a tape data set. Consequently. v A password assigned in the PASSWORD data set. Password Protection For an SMS-managed data set (one with an assigned storage class). To let the system position a tape with labels to the proper data set. System-managed tape volumes must be IBM standard label or ANSI standard tapes. a tapemark delimits the data set. v Volumes with IBM standard labels or ISO/ANSI/FIPS Version 3 labels. The password must be the same in both the existing and the new data set. LTM Indicates that the data set has a leading tapemark. MVS retains in the tape label only the rightmost 17 characters of the data set name. DD Statement 12-133 . To create a password-protected data set following an existing password-protected data set.

Relationship to Other Parameters Do not code the following parameters with the LABEL parameter. The results are unpredictable. Input or Output Processing IN Indicates that a BSAM data set opened for INOUT or a BDAM data set opened for UPDAT is to be read only. deleted. PASSWORD Indicates that a data set cannot be read. Retention Period or Expiration Date for Data Set You should avoid using the RETPD and EXPDT subparameters on the LABEL parameter to specify a retention period or expiration date for the data set. which do the same function. ISO/ANSI/FIPS Version 3 tape data sets can be protected by use of the ACCODE parameter. The IN subparameter overrides the processing option in the assembler OPEN macro instruction. This allows you to specify a retention period or expiration date without the need to code the LABEL parameter. or written to unless the system operator or TSO/E user supplies the correct password. NOPWREAD Indicates that a data set cannot be changed. v If no label type subparameter is specified.0 MVS JCL Reference . the default is only IBM standard labels (SL). No password is necessary for reading the data set. the default is the first data set on the tape volume. OUT Indicates that a BSAM data set opened for OUTIN or OUTINX is to be written in only. The OUT subparameter overrides the processing option in the assembler OPEN macro instruction. unless the data set is passed or cataloged.DD: LABEL To password-protect an existing data set using PASSWORD or NOPWREAD. changed. 12-134 z/OS V1R3. open the data set for output the first time it is used during the job step. Any attempt by the processing program to write in the data set makes the system give control to the error analysis (SYNAD) routine. * BURST CHARS COPIES DATA DDNAME DYNAM FLASH MODIFY QNAME SYSOUT Do not specify the LABEL parameter with the FUNC subparameter of the DCB parameter. Use the DD RETPD parameter (described on page 12-172) or the DD EXPDT parameter (described on page 12-114). Any attempt by the processing program to read the data set makes the system give control to the error analysis (SYNAD) routine. or written to unless the system operator or TSO/E user supplies the correct password. deleted. Defaults v If no data-set-sequence-number subparameter is specified or if the number is coded as 0 or 1.

Each time this data set is used by a program. v For direct access.UNIT=TAPE.NSL. Although LABEL=(3.SUL) subparameter from the referencing DD statement.NL). you must specify OPTCD=Q for conversion to occur. however.NL) DD statement DD2 defines a new data set.NL). the DD statement must include LABEL=(.UNIT=3400-5. Data Conversion AL or AUL in the LABEL parameter requests conversion between EBCDIC and ASCII. The LABEL parameter indicates that the data set is fourth on the tape volume.RETPD=188 Example 2 //DD2 DD DSNAME=A. v This data set is to be kept for 188 days.LABEL=(3. requests that the system catalog it. you must provide the data set sequence number on the LABEL parameter. the system copies the LABEL label type subparameter from the referenced DD statement. the copied label type overrides the label type on the referencing DD statement.DD: LABEL If you specify a LABEL parameter on a SYSCKEOV DD statement.UNIT=3400-5. VOLUME=SER=T2. code LABEL=(. LABEL=(. it is better practice to use the DD RETPD parameter as follows: //DD1 // DD DSNAME=HERBI. the system copies the LABEL label type subparameter from the referenced DD statement. v This tape volume has nonstandard labels. DISP=OLD.RETPD=188) DD statement DD1 defines a new data set.UNIT=TAPE. Relationship to Other Control Statements When a VOLUME=REF subparameter refers to an earlier DD statement to use the same volume(s): v For tape.B.DISP=(NEW.SL).DISP=(.RETPD=188) is valid. You can also request conversion by specifying OPTCD=Q in the data control block. For all other data set names. the system obtains the data from the catalog.CATLG.DELETE).C. the copied label type overrides the label type on the referencing DD statement.KEEP). DD Statement 12-135 .LABEL=4 DD statement DD3 indicates an existing data set.NSL.DISP=(NEW.KEEP).NSL). the system uses a LABEL=(. Examples of the LABEL Parameter Example 1 //DD1 // DD DSNAME=HERBI. The LABEL parameter tells the system: v This data set is to be the third data set on the tape volume.LABEL=(. Chapter 12. VOLUME=SER=T2.SL) or LABEL=(. Example 3 //DD3 // DD DSNAME=SPECS. If the tape is not labeled. v You do not need to provide a data set sequence number when the DD DSNAME parameter references all the members of a GDG or a single member through a relative generation number. and indicates that the data set has no labels.VOLUME=SER=10222. If the referencing DD statement specifies any other label type.LABEL=(3.

LABEL=(. otherwise.DISP=OLD. 2006.0 MVS JCL Reference . Example 6 //DD7 // DD DSNAME=TOM1.LABEL=(.DISP=OLD.LABEL=EXPDT=2006/033.) Syntax LGSTREAM=name 12-136 z/OS V1R3.LABEL=(. because the system does not obtain the label type through the backward reference in the DSNAME parameter. cataloged data set on direct access.3 and earlier releases. VOLUME=SER=1257.EXPDT=2006/033.KEEP). requests the system to keep the data set.STEP1.(1. Use it only: v For allocating SMS-managed VSAM data sets that will be accessed using record level sharing (RLS).DISP=(NEW. The LABEL parameter is required.DD: LABEL Example 4 //STEP1 //DDX // //STEP2 //DDY EXEC PGM=FIV DD DSNAME=CLEAR. UNIT=3350.1)). if the DD statement does not contain a LABEL parameter. and indicates that the data set cannot be deleted or written over until the expiration date of February 2.DISP=(NEW. DD statement DDY in STEP2 receives the data set. optional Purpose Use the LGSTREAM parameter to specify the prefix of the name of the log stream for an SMS-managed VSAM data set.UNIT=3400-5.NSL) DD statement DDX in STEP1 indicates an existing data set with nonstandard labels and requests that the system pass the data set.NSL) EXEC PGM=BOS DD DSNAME=*. DDY contains the label type.SPACE=(TRK.SUL) DD statement DDZ indicates an existing. Example 5 //DDZ DD DSNAME=CATDS.VOLUME=SER=663344 LGSTREAM Parameter Parameter Type Keyword.1)). UNIT=3350.PASS). the system assumes that a direct access data set has SL labels.(1.DDX. it is better practice to use the DD EXPDT parameter as follows: //DD7 // DD DSNAME=TOM1. The data set has IBM standard labels and user labels. v On a system that includes DFSMS/MVS Version 1 Release 4 or later.VOLUME=SER=663344 DD statement DD7 defines a new data set. (The system ignores the LGSTREAM parameter when operating with DFSMS 1.SPACE=(TRK. Although LABEL=EXPDT=2006/033 is valid.DISP=(OLD.KEEP).

Segments are joined by periods. Chapter 12. numeric. Subparameter Definition name Specifies the name of the prefix the system logger uses for the forward recovery log stream for recording changes made to the data set when accessed in the RLS mode. (The system ignores the LGSTREAM parameter for existing data sets. with periods being counted as characters towards the limit of twenty-six. The LGSTREAM name on a DD statement can override the LOGSTREAMID name specified in the SMS data class.NEW. * BURST CHARS COPIES DATA DCB=DSORG DCB=RECFM DDNAME DLM DSNTYPE DYNAM FLASH MODIFY OUTPUT PATHOPTS PATHMODE PATHDISP QNAME SEGMENT SPIN SYSOUT TERM UCS Example of the LGSTREAM Parameter //FRED // DD DSN=VSAM. Relationship to Other Parameters Code a disposition of NEW or of MOD treated as NEW. DD Statement 12-137 . Defaults If you do not code a LGSTREAM parameter the system will assign the value specified in the SMS data class assigned to the data set. Overrides The system ignores LGSTREAM specifications for non-SMS-managed and non-VSAM data sets and for VSAM linear data sets. and assigns a POOL storage group. KEYLEN=8.NEW as the prefix to generate the data set name where it will keep the forward recovery logs. Each segment may contain one to eight characters. which may be alphabetic.KEEP) In this example. The system logger will use the name SSAB1234. The first character of each segment must be non-numeric.DD: LGSTREAM The name.KEYOFF=0. The system logger adds other qualifiers to the end of the LGSTREAM name to generate the data set name where it keeps the forward recovery logs.DATASET.) Do not code the following DD parameters with the LGSTREAM parameter. #. if applicable. the system will create an SMS-managed VSAM key-sequenced data set if the storage administrator assigns a data class that provides other parameters such as SPACE and LOG=ALL. or national ($. @) characters.RECORG=KS.DISP=(.LGSTREAM=SSAB1234. consists of one or more segments. up to a maximum of twenty-six characters.

When you specify the LIKE parameter on a JCL DD statement. BLKLGTH or RECLGTH was specified rather than TRK or CYL). Note that if the model data set was allocated in blocks (that is. Therefore. the system syntax checks and then ignores the LIKE parameter.0 MVS JCL Reference . Purpose Use the LIKE parameter to specify the allocation attributes of a new data set by copying the attributes of a model data set. the system determines the space to be allocated for the new data set by adding up the space allocated in the first three extents of the model data set. This means that specifying compaction in DATACLAS is not the only way compression can be achieved. When you create a PDS. For additional information on VSAM data set compression. the space allocated for the new data set will generally not match the space that was specified for the model data set. Note: Directory quantity is picked up as part of the space allocation attribute except when the model data set is a PDSE. the LIKE parameter copies existing data set attributes. then the system will allocate space for the new data set in tracks. see z/OS DFSMS Migration. the SMS read-only variable values that correspond to the attributes copied from the model data set are not available as input to the ACS routines. If SMS is not installed or is not active. see z/OS DFSMSdfp Storage Administration Reference. If the new data set is to reside on tape: v The model data set must be a sequential DASD data set v Only the record format (RECFM) and the record length (LRECL) attributes are copied to the new data set. | | | | | | | 12-138 z/OS V1R3. which must be an existing cataloged data set and reside on a direct access volume. PDS or PDSE (DSNTYPE) v Space allocation (AVGREC and SPACE) Unless you explicitly code the SPACE parameter for the new data set. The following attributes are copied from the model data set to the new data set: v Data set organization – Record organization (RECORG) or – Record format (RECFM) v Record length (LRECL) v Key length (KEYLEN) v Key offset (KEYOFF) v Type.DD: LIKE LIKE Parameter Parameter Type Keyword. LIKE processing on a model data set that is compressed will pass the attribute to the new data set. use the DCB=dsname form of the DCB parameter described on page 12-54. For more information on SMS read-only variables. That is. For VSAM data set compression. optional — use this parameter only with SMS Without SMS. There is no requirement that either the new data set or the model data set must be SMS-managed. the directory blocks must be specified directly on the JCL by using the SPACE parameter.

Any attributes you specify on the same DD statement with the following parameters override the corresponding attributes obtained from the model data set. DYNAM REFDD SYSOUT Examples of the LIKE Parameter Example 1 //SMSDS6 DD DSNAME=MYDS6. and relative generation number for a GDG. DD Statement 12-139 .PGM are obtained from the cataloged model data set MYDSCAT.DISP=(NEW.DD: LIKE The retention period (RETPD) or expiration date (EXPDT) is not copied to the new data set. PDS or PDSE) KEYLEN (key length) KEYOFF (key offset) LRECL (record length) RECORG (record organization) or RECFM (record format) SPACE (average record length. Syntax LIKE=data-set-name Subparameter Definition data-set-name Specifies the data set name (dsname) of the model data set whose attributes are to be used as the attributes of the new data set. AVGREC (record request and space quantity) DSNTYPE (type. the data set attributes used for MYDS6. primary.DISP=(NEW.LIKE=MYDSCAT.PGM. and directory quantity) Relationship to Other Parameters Do not code the following DD parameters with the LIKE parameter. secondary.KEEP). LRECL=1024 Chapter 12.LIKE=MYDSCAT.KEEP) In the example. partitioned data set if a member name is included. Example 2 //SMSDS7 // DD DSNAME=MYDS7. Note: Do not use the LIKE parameter to copy attributes from a temporary data set (&&dsname). Overrides Any attributes obtained using the LIKE parameter override the corresponding attributes in the DATACLAS parameter.PGM.PGM.PGM.PGM.

0 MVS JCL Reference . in bytes. QISAM. The value of bytes is: v 1 to 32. (LRECL does not apply to VSAM linear space. nnnnn is from 1 through 16. QSAM. Note: When RECFM is F or U. Code the LRECL parameter when you want to v Specify the logical record length for the data set. EXCP. and TCAM access methods. and with SMS.760 for non-VSAM data sets. LRECL applies to data sets with the BPAM. the logical record length of 1024 overrides the logical record length obtained from the model data set. in bytes. RECORG=LS. the length must not exceed BLKSIZE minus 4. v 1 to 32. or v With SMS. Also. override the record length defined in the data class of the data set.PGM. the length must not exceed DCB BLKSIZE. For RECFM=D or V. The record length must be greater than the key length. For unblocked records when DCB RKP=0. the length can exceed BLKSIZE. LRECL=0 is valid only for RECFM=U. to VSAM data sets. The value in the DCB 12-140 z/OS V1R3. Syntax LRECL=bytes Subparameter Definition bytes Specifies (1) the length. or in the data class for the data set. Additional Syntax for LRECL=bytes LRECL=nnnnnK Specifies the length in kilobytes for variable-length spanned records in ISO/ANSI/FIPS Version 3 tape data sets that are processed by the Data Facility Product using the extended logical record interface (XLRI). the data set attributes used for MYDS7. optional Purpose Use the LRECL parameter to specify the length of the records in a new data set. data sets. or relative record (RR) data sets. for variable-length records. the length is for only the data portion of the record. For RECFM=VS. entry-sequenced (ES). LRECL Parameter Parameter Type Keyword. a record length must be specified.DD: LIKE In the example. either explicitly with the LRECL or LIKE parameter. for fixed length records or (2) the maximum length.PGM are obtained from the cataloged model data set MYDSCAT. BSAM.761 for VSAM key-sequenced (KS).383 and indicates multiples of 1024 bytes.) For VSAM key-sequenced (KS) data sets.

KEEP). Purpose Use the MGMTCLAS parameter to specify a management class for a new SMS-managed data set. specifies that the logical record length exceeds 32.DATACLAS=DCLAS02. The storage administrator at your installation defines the names of the management classes you can code on the MGMTCLAS parameter. This option is not valid for ISO/ANSI/FIPS Version 3 variable-length records. Overrides LRECL overrides the record length specified in the data set label. LRECL=X For QSAM only.(200. If a K is coded for any other type of data set. LRECL=256 In the example. only the numeric value of LRECL is recognized.DISP=(NEW. the logical record length of 326 is used for the new data set EVER. After the data set is allocated.40)) In the example. RECFM=FB. See “Overrides” on page 12-52. the logical record length of 256 overrides the logical record length defined in the data class for the data set.SPACE=(23472. DCB=LRECL DDNAME DYNAM Examples of the LRECL Parameter Example 1 //DD1B // DD DSNAME=EVER. there are no DD parameters that provide this function. the attributes in the management class control: v Migration of the data set. MGMTCLAS Parameter Parameter Type Keyword. including migration from primary storage to DFSMShsm-owned storage to archival storage Chapter 12. DD Statement 12-141 . optional Use this parameter only with SMS and for SMS-managed data sets.KEEP).DISP=(NEW. and with SMS. Example 2 //SMSDS2 // DD DSNAME=MYDS2. Without SMS.DD: LRECL macro must already be coded as LRECL=0K or LRECL=nnnnnK.PGM.760 bytes for variable-length spanned records.UNIT=3380. LRECL overrides the record length defined in the DATACLAS parameter for the data set.LRECL=326. Relationship to Other Parameters Do not code the following DD parameters with the LRECL parameter.

This maximum limits the values that are specified on the EXPDT or RETPD parameter. including frequency of backup. Overrides You cannot override management class attributes via JCL parameters. Defaults If you do not specify MGMTCLAS for a new data set and the storage administrator has provided an installation-written automatic class selection (ACS) routine. 12-142 z/OS V1R3.DD: MGMTCLAS v Backup of the data set. The management class for a data set defines a maximum value for the expiration date or retention period of the data set. With SMS. the ACS routine may select a management class for the data set.0 MVS JCL Reference . The use of a management class can be protected by RACF. SMS ignores the MGMTCLAS parameter if you specify it for an existing data set. An ACS routine can override the management class that you specify on the MGMTCLAS parameter. References See z/OS DFSMS: Using the Interactive Storage Management Facility for information on how to use ISMF to view your installation-defined management classes. Check with your storage administrator to determine if an ACS routine will select a management class for the new data set. Syntax MGMTCLAS=management-class-name Subparameter Definition management-class-name Specifies the name of a management class to be used for management of the SMS-managed data set after the data set is allocated. is defined by the storage administrator at your installation. or defined in the data class for the data set. and retention criteria for backup versions v Automatic deletion of data sets v Automatic release of unused space in data sets The Hierarchical Storage Manager (DFSMShsm) or a functionally equivalent program performs these functions. number of versions. The name. the system syntax checks and then ignores the MGMTCLAS parameter. If SMS is not installed or is not active. See “Overrides” on page 12-52. in which case you do not need to specify MGMTCLAS. MGMTCLAS overrides the attributes defined in the DATACLAS parameter for the data set. one to eight alphanumeric or national ($ # @) characters.

optional Purpose Use the MODIFY parameter to specify a copy-modification module that tells JES how to print this sysout data set on a 3800 Printing Subsystem.STORCLAS=SCLAS1. v Column headings. and data class.KEEP) In the example. storage class.DD: MGMTCLAS Relationship to Other Parameters Do not code the following DD parameters with the MGMTCLAS parameter. Note: MODIFY applies only for the 3800 Printing Subsystem Models 1 and 2 and the 3800 Printing Subsystem Models 3. However. Note that installation-written ACS routines may override the specified management class. you can omit the parentheses. SMS uses the attributes in the management class named MCLAS01 to handle the migration and backup of the SMS-managed data set. The module is defined and stored in SYS1. v Where and on which copies the data is to be printed. see z/OS DFSMSdfp Utilities. * DDNAME DYNAM DATA QNAME Code MGMTCLAS only when you specify a storage class for the data set (via the STORCLAS parameter) or an ACS routine selects a storage class. for example.DISP=(NEW. v The trc subparameter is optional. and 8 in compatibility mode. MODIFY Parameter Parameter Type Keyword.PGM. if you omit it. If you omit it. 6. Chapter 12.) is invalid. MGMTCLAS=MCLAS01. DD Statement 12-143 .DATACLAS=DCLAS1. MODIFY=(TAB1. Syntax MODIFY= {module-name } {(module-name[. you must not code it as a null. The module can specify the following: v Legends. Example of the MGMTCLAS Parameter //SMSDS1 // DD DSNAME=MYDS1.IMAGELIB using the IEBIMAGE utility program.trc])} v You must code the module-name. References For more information on the copy modification module and the IEBIMAGE utility program.

JES2 uses the first table named in the CHARS parameter and JES3 uses the default character arrangement table.IMAGELIB. 5. 1 for the second. This way of specifying fonts is indicated by the OUTPUT JCL TRC parameter.DD: MODIFY Subparameter Definition module-name Identifies a copy-modification module in SYS1. A statement in the library member specified on the OUTPUT JCL PAGEDEF parameter. in override order: 1.0 MVS JCL Reference . so that each record can be printed in a different font. The second character of each logical record can be a TRC code.IMAGELIB member obtained by default. @) characters. JES2 provides no installation default at initialization. This table reference character is 0 for the first table-name specified. Defaults If no MODIFY parameter is specified. A referenced OUTPUT JCL statement. If you do not specify trc or if the trc value is greater than the number of table-names in the CHARS parameter. The CHARS parameter is on the following. This DD statement. or 3 for the fourth. v The JES3 //*FORMAT PR statement. 4. #. but is permitted on an OUTPUT JCL statement. 3. * AMP DATA DDNAME DISP DSID DYNAM LABEL PROTECT QNAME SUBSYS VOLUME Relationship to Other Control Statements MODIFY can also be coded on the following: v The OUTPUT JCL statement. The module-name is 1 through 4 alphanumeric or national ($. trc Identifies which table-name in the CHARS parameter is to be used. 2 for the third. JES3 uses an installation default specified at initialization. v The JES2 /*OUTPUT statement. Relationship to Other Parameters Do not code the following parameters with the MODIFY parameter. Overrides A MODIFY parameter on a sysout DD statement overrides an OUTPUT JCL MODIFY parameter. A JES3 initialization statement. 2. 12-144 z/OS V1R3. Note: A null first subparameter is invalid in a MODIFY parameter on a DD statement. A statement in the SYS1.

optional Purpose Use the OUTLIM parameter to limit the number of logical records in the sysout data set defined by this DD statement. the MODIFY parameter requests that the data in the copy-modification module named A replace variable data in the data set to be printed by the 3800. GS15. the system terminates the job. Relationship to Other Parameters Code the OUTLIM parameter only on a DD statement with the SYSOUT parameter. the system exits to the SYSOUT limit exit routine. If the installation does not supply a routine. If the installation supplies an installation-written routine. References For more information on the SYSOUT limit exit routine. The number is 1 through 8 decimal digits from 1 through 16777215.GS10) In this example. Syntax OUTLIM=number Subparameter Definition number Specifies the maximum number of logical records. OUTLIM Parameter Parameter Type Keyword. be used. Note: OUTLIM is valid only on a DD statement with a SYSOUT parameter.DD: MODIFY Example of the MODIFY Parameter //DD1 DD UNIT=3800.CHARS=(GS15. The second subparameter in MODIFY specifies that the first character arrangement table in the CHARS parameter.0). Do not code the OUTLIM parameter with the DCB subparameters CPRI or THRESH. see z/OS MVS Installation Exits . these subparameters can alter the OUTLIM value. On Dump DD Statements Chapter 12.MODIFY=(A. JES2 provides no installation default at initialization. DD Statement 12-145 . Default (1) If no OUTLIM parameter is specified or OUTLIM=0 is coded and (2) if output is not limited by JES control statements. Module A defines which positions are to be replaced and which copies are to be modified. the routine can determine whether to terminate the job or increase the limit. JES3 uses an installation default specified at initialization. When the limit is reached.

v JES2 limits the output as specified on the OUTLIM parameter. When the OUTPUT parameter references more than one OUTPUT JCL statement. BYTES.. PAGES. or CARDS parameter of the JOB statement. PAGES. Otherwise. v The LINES.name *.)} A reference is one of the following: *. BYTES. but the OUTLIM parameter is applied independently of other limits.name 12-146 z/OS V1R3.reference].stepname. JES processes the sysout data set using the options from this DD statement combined with the options from the referenced OUTPUT JCL statement.name *.procstepname. Example of the OUTLIM Parameter //OUTDD DD SYSOUT=F. or CARDS parameter of the JES3 //*MAIN statement..DD: OUTLIM On a SYSABEND or SYSUDUMP DD statement: v JES3 ignores the OUTLIM parameter. PAGES. | | Not only can JECL statement limit output. optional Purpose Use the OUTPUT parameter with the SYSOUT parameter to associate a sysout data set explicitly with an OUTPUT JCL statement. the system produces separate output for each OUTPUT JCL statement.stepname.0 MVS JCL Reference . or CARDS parameter of the JES2 /*JOBPARM statement.OUTLIM=1000 The limit for the number of logical records is 1000. Syntax OUTPUT= {reference } {(reference[. Note: Code the OUTPUT parameter only on a DD statement with a SYSOUT parameter. the system checks the OUTPUT parameter for syntax then ignores it. BYTES. Relationship to Other Control Statements Output can also be limited by the following: v The LINES. v The LINES. OUTPUT Parameter Parameter Type Keyword.

3. *. JES uses the parameter.stepname.name Refers to an earlier OUTPUT JCL statement. stepname. Chapter 12. JES3 accepts that class and its associated truncation value. provided that the step contains no OUTPUT JCL statements with DEFAULT=YES.procstepname. For example. 2.name) v You can code the references to OUTPUT JCL statements in any order.name. Overrides When an OUTPUT JCL statement is used with the sysout DD statement to specify processing. JES3 uses the truncation value associated with the first referenced (or defaulted) OUTPUT statement that does specify a class.name. JES handles parameters as follows: v If a parameter appears on the DD statement.DD: OUTPUT v You can omit the parentheses if you code only one reference. *.OUTPUT=(*.*.*. From each OUTPUT JCL statement containing DEFAULT=YES before the first EXEC statement in the job. the following are valid: //EXA //EXB // DD DD SYSOUT=A. Only from the sysout DD statement.name.stepname.*. Defaults If you do not code an OUTPUT parameter on a sysout DD statement. procstepname is the name of the procedure step that contains the OUTPUT JCL statement. The system searches for the OUTPUT JCL statement first in the same step. then before the first EXEC statement of the job. in the same job. Subparameter Definition *.name Refers to an OUTPUT JCL statement in a cataloged or in-stream procedure. DD Statement 12-147 .stepname. in this step or an earlier step.stepname.name) SYSOUT=A. OUTPUT=(. v You can code references in any combination.stepname. Stepname is the name of this job step or an earlier job step that calls the procedure. JES obtains processing options for the sysout data set in the following order: 1. v If the same parameter appears on both statements.*. v You can reference a maximum of 128 OUTPUT JCL statements on one OUTPUT parameter.name) is invalid.name Refers to an earlier OUTPUT JCL statement with name in its name field. JES uses the DD parameter.name. v If a parameter appears only on the OUTPUT JCL statement. and name is the name field of the OUTPUT JCL statement. *. From each OUTPUT JCL statement containing DEFAULT=YES in the same step. v You must not code a null in an OUTPUT parameter. provided that neither the step nor job contains any OUTPUT JCL statements with DEFAULT=YES. name.procstepname. JES uses the parameter. For example. If you do not specify a SYSOUT class on the DD statement. If this DD statement specifies an OUTPUT class.OUTPUT=(*.

OUTPUT=*. If the referencing DD statement appears in an in-stream or cataloged procedure. the system issues a JCL error message and fails the job. you can still refer to that OUTPUT JCL statement in the OUTPUT parameter of a sysout DD statement. SYSOUT Third Subparameter You cannot reference a JES2 /*OUTPUT statement using the third subparameter of the SYSOUT parameter if either of the following is also coded: v The OUTPUT parameter on the same DD statement. the system does not pick up that subparameter from the overridden parameter. but is permitted on an OUTPUT JCL statement. ignoring the whole overridden parameter. The system ignores all of the FLASH parameter on the OUTPUT JCL statement.FLASH=(EFGH) Only EFGH is used. The processing options for a sysout data set come from one sysout DD statement and one OUTPUT JCL 12-148 z/OS V1R3. Location in the JCL All referenced OUTPUT JCL statements must precede the DD statement that refers to them. For example: //EXAMP2 //FVZ2 OUTPUT DD FLASH=(ABCD.3) is valid only on an OUTPUT JCL statement.3) SYSOUT=F. the referenced OUTPUT JCL statement must precede the DD statement in the procedure. Null Subparameters A null first subparameter is invalid in a FLASH or MODIFY parameter on a DD statement. No Match for OUTPUT Name If the system finds no match for the name coded in the OUTPUT parameter. MODIFY=(.EXAMP2. either explicitly in an OUTPUT parameter containing more than one reference or implicitly when several default OUTPUT JCL statements apply. Processing Options in Multiple References A sysout DD statement can refer to more than one OUTPUT JCL statement. Relationship to Other Parameters Code the OUTPUT parameter only on a DD statement with the SYSOUT parameter.0 MVS JCL Reference . A sysout DD statement in a procedure cannot refer to an OUTPUT JCL statement in the calling step. when the DD statement does not contain an OUTPUT parameter. With INTRDR Subparameter in SYSOUT Parameter Do not code an OUTPUT parameter when the SYSOUT parameter specifies a JES2 internal reader by an INTRDR parameter.DD: OUTPUT JES uses the whole overriding parameter. For example. If a subparameter is left off the overriding parameter. v An OUTPUT JCL statement containing DEFAULT=YES in the same step or before the EXEC statement of the job. including the second parameter. DEFAULT Parameter on OUTPUT JCL Statement If you code DEFAULT=YES on an OUTPUT JCL statement.

the sysout data set is printed in class H.OUTB) PGM=WRT DEST=ID2742 SYSOUT=A. output class H is printed on a 3800 Printing Subsystem. the system prints 5 copies of the data set on form RECP and indents the left margin 5 spaces.DD: OUTPUT statement.OUTB) The OUTPUT parameter on DS1 references: v The job-level OUTPUT JCL statement OUTA to send the sysout data set to HQ. DD Statement 12-149 .INDEX=6 PGM=XYZ CLASS=H.OUTPUT=(*. Example 2 //J6 JOB //OUTA OUTPUT //STEP1 EXEC //OUTB OUTPUT //DS1 DD //STEP2 EXEC //OUTC OUTPUT //DS2 DD .FORMS=RECP.OUTC. The OUTPUT parameter on DS2 references: v OUTPUT JCL statement OUTB in the first step to print the sysout data set double-spaced on the local 3800 Printing Subsystem used for output class A. v For DD ALL combined with OUTPUT SOUT. Therefore. (data) . If the DD statement does specify a class. In the installation. the system prints the single sysout data set twice: v For DD ALL combined with OUTPUT JOUT. Processing options are not cumulative across a group of OUTPUT JCL statements. Combining the parameters from the DD and OUTPUT JCL statements. Chapter 12.BURST=YES.*.FLASH=BLHD SYSOUT=(. v The step-level OUTPUT JCL statement OUTB to print the sysout data set double-spaced on the local 3800 Printing Subsystem used for output class A. Note that in JES3.JOUT. the sysout data set is printed in class C.OUTPUT=(*. the data set DSISO/TRUNC characteristics are derived from the first class specification encountered in the OUTPUT statements.OUTA. when TYPE=DSISO and/or TRUNC=YES|NO are specified on the SYSOUT initialization statement. each combination of sysout DD statement and one of the referenced OUTPUT JCL statements produces a separate set of printed or punched output. In the installation.OUTPUT=(*. In multiple references. /* .’MARY LUDWIG’ CLASS=C.*.CHARS=GT12.COPIES=5 * The OUTPUT parameter references two OUTPUT JCL statements. Combining the parameters from the DD and OUTPUT JCL statements.STEP1.).’SUE THACKER’ DEST=HQ PGM=RDR CONTROL=DOUBLE SYSOUT=A.SOUT). and a sysout DD statement that does not specify a class references multiple OUTPUT statements. the system prints 5 copies of the data set with the forms-overlay frame named BLHD using character-arrangement table GT12 and bursts the output. Examples of the OUTPUT Parameter Example 1 //J1 JOB //JOUT OUTPUT //STEP1 EXEC //SOUT OUTPUT //ALL DD //IN DD .*. output class C is printed on a 3211 Printer. the DSISO/TRUNC characteristics are derived from that class.

Syntax PATH=pathname v Enclose the pathname value in single quotes if it contains a character other than: Uppercase letters Numbers National characters Slash (/) Asterisk (*) Plus (+) Hyphen (-) Period (. 12-150 z/OS V1R3. and then the name of the file. Reference For information on HFS files.) Ampersand (&) v Enclose the pathname value in single quotes if you continue it on another statement. “Format of Statements” for the rules on continuing parameters in apostrophes. Note: The references to OUTPUT JCL statements are in no particular order.0 MVS JCL Reference . optional — use this parameter only with an HFS file Purpose Use the PATH parameter to specify the name of the HFS file. which is attached to the local system. These printable characters include all the characters that can be used in a portable filename. see z/OS UNIX System Services User’s Guide. For example: //EXA // DD PATH=’/u/payroll/directory171/DEPT64directory/account ingDIR/personhoursfile’ See Chapter 3. v Has a length of 1 through 254 characters. Subparameter Definition pathname Identifies a file in a hierarchical file system (HFS). v Consists of printable characters from X’40’ through X’FE’. v Can contain symbolic parameters. The system treats any consecutive slashes as a single slash. PATH Parameter Parameter Type Keyword. The pathname consists of the names of the directories from the root to the file being identified. not including the slash. Each directory or filename: v Is preceded by a slash (/).DD: OUTPUT v OUTPUT JCL statement OUTC in the same step to send the sysout data set to userid ID2742.

v Is case-sensitive. which is listed in z/OS UNIX System Services User’s Guide. but it cannot be specified in JCL. An ampersand (&) (X'50'). Defaults Defaults for a DD statement with a PATH parameter are: v If the PATHDISP parameter is not specified. Relationship to Other Parameters You can code the following parameters with the PATH parameter: BLKSIZE BUFNO DSNTYPE DUMMY FILEDATA LRECL NCP PATHDISP PATHMODE PATHOPTS RECFM TERM Do not code PATHDISP. Do not code a PATH parameter on the following DD statements: JOBCAT JOBLIB STEPCAT STEPLIB SYSABEND SYSMDUMP SYSUDUMP Chapter 12. PATHMODE.. use only the portable filename character set. A filename can contain characters outside this range. Thus. For a portable filename. or PATHOPTS on a DD statement without a PATH parameter..DD: PATH plus additional characters. v If the PATHOPTS parameter is not specified. The pathname: v Has the form: /name1/name2/name3/. the status is OLD. DD Statement 12-151 . v Is subject to symbolic substitution. based on the syntax rules for symbolic parameters./namen v Begins with a slash. followed by a character string that matches a valid symbolic parameter in the JCL. causes a substitution to occur. v Has a length of 1 through 255 characters. /u/joe and /u/JOE and /u/Joe define three different files. the normal and abnormal disposition is KEEP. The system checks the length after substituting for any symbols and before compressing any consecutive slashes.

//DUMMY1 DD PATH=’/dev/null’ //DUMMY2 DD DUMMY.PATH=/ANYNAME //DUMMY3 DD PATH=’//dev///null’ 12-152 z/OS V1R3. If: v You specify either: – OCREAT alone or: – Both OCREAT and OEXCL on the PATHOPTS parameter. and the options from PATHMODE (if specified) are used in the open(). for DUMMY3. MVS uses the close() function to close the file before the application program receives control. And if: v The file does not exist. The statements are equivalent. PATHOPTS. – Use the C/370 fopen(//dd: ) function. the referring DD statement is treated as an error. The options from PATHOPTS. Dummy HFS Files The following DD statements define a dummy HFS file. and PATHMODE. and pass it to the open() callable service. the description in this book assumes that the application passes the subparameters to the open() function without modification. See z/OS UNIX System Services User’s Guide for details on using open(). the DD statement referred to is treated as an error.0 MVS JCL Reference . The application program can ignore or modify the information specified in the JCL. See z/OS DFSMS: Using Data Sets. Relationship to Other Statements A PATH parameter other than /dev/null on a DD statement that overrides a procedure statement nullifies the DUMMY parameter on the overridden statement. For status group options other than OCREAT and OEXCL. this application uses dynamic allocation information retrieval (the DYNALLOC macro) to retrieve the values specified for PATHOPTS and passes the values to the open() function. the extra slashes (/) are compressed to single slashes. Backward and forward references to a DD statement containing a PATH parameter are not permitted.DD: PATH Coding the PATH parameter is useful only when one of the following is true: v The job runs on a system with both MVS SP5. programs can use standard MVS access methods to work with hierarchical files.3.2. For forward references. Programs designed to use such DD statements must either: – Use dynamic allocation information retrieval to obtain the information specified for PATH. Then MVS performs an open() function. At this level. fopen() handles the differences between DD statements with PATH and DSN specified. the pathname from the PATH parameter. For backward references. See z/OS UNIX System Services User’s Guide for details on using fopen(). That is.2 or later and DFSMS/MVS 1. v The program being run has been coded to recognize and process the PATH specification.

DD: PATH The system checks the syntax of pathnames specified with DUMMY. The PATHOPTS parameter specifies that the program can only read the file. The effects of the missing PATH parameters are: v The file must already exist. you must code a comma to indicate its absence. optional — use this parameter only with an HFS file Purpose Use the PATHDISP parameter to specify the disposition of an HFS file when the job step ends normally or abnormally. For example: PATHDISP=(.abnormal-termination-disposition)} PATHDISP=([KEEP ][. Syntax PATHDISP={normal-termination-disposition } ={(normal-termination-disposition. v The system will keep the file for both normal and abnormal step terminations.PATHOPTS=ORDONLY The DD statement specifies the HFS file pay. see z/OS UNIX System Services User’s Guide. The directory applics is listed in the directory usr. Reference For information on HFS files. Chapter 12.time’. v The access permissions were set with a PATHMODE parameter when the file was created. the pathname must be a valid name.DELETE]) A normal-termination-disposition or abnormal-termination-disposition is one of the following: KEEP DELETE v If you omit the normal-termination-disposition parameter. DD Statement 12-153 .DELETE) v If you code only the normal-termination-disposition parameter. In the DD statement DUMMY2. because the statement does not specify PATHOPTS=OCREAT. you may omit the enclosing parentheses. because the statement does not contain a PATHDISP parameter.time that is listed in the directory applics. PATHDISP Parameter Parameter Type Keyword.KEEP ]) =([DELETE][. Example of the PATH Parameter //DD1 DD PATH=’/usr/applics/pay.

such as PATHDISP=DELETE. v When the step ends abnormally.PATHDISP=(KEEP.) v If you do not code a PATHDISP on a DD statement with a PATH parameter If you code only a normal-termination-disp. Defaults The system uses KEEP for both the normal and abnormal dispositions: v If you do not code a value on the PATHDISP parameter — for example. The file persists until all of its names are deleted. If the step ends abnormally. DELETE Specifies that the file should be deleted: v When the step ends normally.DD: PATHDISP Subparameter Definition KEEP Specifies that the file should be kept: v When the step ends normally. deletes the file itself. KEEP is the second subparameter.DELETE). such as PATHDISP=(. DELETE is the first subparameter. Deleting a file deletes the name for the file. If the file has other names created by link() functions. Relationship to Other Parameters Code the PATHDISP parameter only on a DD statement that contains a PATH parameter. If you code only an abnormal-termination-disp. You can code the following parameters with the PATHDISP parameter: BLKSIZE BUFNO DSNTYPE DUMMY FILEDATA LRECL NCP PATH PATHMODE PATHOPTS RECFM TERM Example of the PATHDISP Parameter //DD1 DD PATH=’/usr/applics/pay. the system uses KEEP for the normal disposition.DELETE) The DD statement identifies a file that already exists. v When the step ends abnormally.time’. DELETE does not delete the file itself. the system deletes the filename and. DELETE is the second subparameter. PATHDISP=(. if no other names were set using link().0 MVS JCL Reference . The DD statement requests that the system keep the file. if the step ends normally. KEEP is the first subparameter. the abnormal disposition is the same as the normal disposition. 12-154 z/OS V1R3.

Syntax PATHMODE={file-access-attribute } {(file-access-attribute[.. SIWUSR Specifies permission for the file owner to write the file. SIRUSR Specifies permission for the file owner to read the file. see the z/OS UNIX System Services User’s Guide. Reference For information on HFS files.file-access-attribute]... do not code PATHMODE=(. Chapter 12. v The file-access-attributes can be in any order.file-access-attribute). optional — use this parameter only with an HFS file Purpose Use the PATHMODE parameter to specify the file access attributes when the system is creating the HFS file named on the PATH parameter.)} A file-access-attribute is one of the following: For file owner class: SIRUSR SIWUSR SIXUSR SIRWXU SIRGRP SIWGRP SIXGRP SIRWXG SIROTH SIWOTH SIXOTH SIRWXO SISUID SISGID For file group class: For file other class: To set user and group IDs: v You can specify up to 14 file-access-attributes. The user is identified by an OMVS user ID (UID). For example. Creating the file is specified by a PATHOPTS=OCREAT parameter. v Duplicate file-access-attributes are treated as one specification. v Do not code null positions.file-access-attribute) or PATHMODE=(file-access-attribute. DD Statement 12-155 . Subparameter Definition For File Owner Class The file owner class consists of the user who created the file or who currently owns the file.DD: PATHMODE PATHMODE Parameter Parameter Type Keyword.

and SIXOTH). and execute. The group is identified by an OMVS group ID (GID). SIWOTH Specifies permission for users in the file other class to write the file. For File Other Class The file other class consists of all users other than the file owner or the members of the file’s group who can access z/OS UNIX resources on the MVS system. write. and SIXGRP). write. and search. SIWOTH. SIROTH Specifies permission for users in the file other class to read the file. for a file other than a directory This value has the same effect as specifying all three parameters (SIRUSR. and SIXUSR). and search. For File Group Class The file group class contains the users who are in the same group as the file. write. SIWGRP Specifies permission for users in the file group class to write the file. if the file is a directory v To read. SIXGRP Specifies permission for users in the file group class either: v To search. for a file other than a directory This value has the same effect as specifying all three parameters (SIROTH. if the file is a directory v To execute the program in the file. and execute. for a file other than a directory SIRWXO Specifies permission for users in the file other class either: v To read. SIXOTH Specifies permission for users in the file other class either: v To search. if the file is a directory v To execute the program in the file. write. for a file other than a directory SIRWXG Specifies permission for users in the file group class either: v To read. for a file other than a directory SIRWXU Specifies permission for the file owner either: v To read.DD: PATHMODE SIXUSR Specifies permission for the file owner either: v To search.0 MVS JCL Reference . if the file is a directory v To read. and execute. and search. if the file is a directory v To execute the program in the file. if the file is a directory v To read. write. SIRGRP Specifies permission for users in the file group class to read the file. SIWGRP. 12-156 z/OS V1R3. write. for a file other than a directory This value has the same effect as specifying all three parameters (SIRGRP. SIWUSR.

Do not specify these controls in JCL. If the HFS file already exists. The system overrides the SISUID and SISGID parameters and sets the controls so that no users can run the program when either: v The DD statement creates the file v A user writes in the file. You can code the following parameters with the PATHMODE parameter: BLKSIZE BUFNO DSNTYPE DUMMY FILEDATA LRECL NCP PATH PATHMODE PATHOPTS RECFM TERM If: v You specify either: – OCREAT alone Chapter 12. which prevents access by all users. Defaults When creating a new HFS file. DD Statement 12-157 . The file owner can set the controls any time. not just in the DD statement. The group ID is taken from the directory in which the file resides. if you do not code a PATHMODE on a DD statement with a PATH parameter. because they will be reset when the file is written. for the program to be run. thus changing the program Then. SISUID Specifies that the system set the user ID of the process to be the same as the user ID of the file owner when the file is run as a program. SISGID Specifies that the system set the group ID of the process to be the same as the group ID of the file owner when the file is run as a program. PATHMODE is checked for syntax but ignored. Relationship to Other Parameters Code the PATHMODE parameter only on a DD statement that contains both a PATH parameter and a PATHOPTS parameter with OCREAT. the file owner must reset the controls.DD: PATHMODE To Set User and Group IDs in a Program These controls allow users to run a program with the user ID of the file owner or the group ID of the file owner of the program file. If OCREAT is not on the statement. They control access authorization a particular program is running. The permission bits are left as they are set. the system sets the permissions to 0. the PATHMODE parameter is checked for syntax and then ignored.

the pathname from the PATH parameter. 12-158 z/OS V1R3. The options from PATHOPTS. The application program can ignore or modify the information specified in the JCL. Then MVS performs an open() function.OCREAT. The PATHMODE parameter specifies that the file owner can read. optional — use this parameter only with an HFS file Purpose Use the PATHOPTS parameter to specify the access and status for the HFS file named in the PATH parameter. That is.PATHDISP=(KEEP.time’. see z/OS UNIX System Services User’s Guide. For status group options other than OCREAT and OEXCL.DD: PATHMODE or: – Both OCREAT and OEXCL on the PATHOPTS parameter.PATHMODE=(SIRWXU. write.DELETE). And if: v The file does not exist.OEXCL).0 MVS JCL Reference . and search or execute the file and that users in the file group can read the file. and the options from PATHMODE (if specified) are used in the open(). Reference For information on HFS files. PATHOPTS Parameter Parameter Type Keyword. this application uses dynamic allocation information retrieval (the DYNALLOC macro) to retrieve the values specified for PATHOPTS and passes the values to the open() function. PATHOPTS=(OWRONLY. Example of the PATHMODE Parameter //DD1 // DD PATH=’/usr/applics/pay. MVS uses the close() function to close the file before the application program receives control. the description in this book assumes that the application passes the subparameters to the open() function without modification.SIRGRP) The DD statement requests that the file named in the PATH parameter be created.

)} A file-option can be in the access or status group and is one of the following: Access group: ORDONLY OWRONLY ORDWR OAPPEND OCREAT OEXCL ONOCTTY ONONBLOCK OSYNC OTRUNC Status group: v You can specify up to 7 file-options. v If the file already exists and OEXCL was not specified. do not code PATHOPTS=(. Do not use this option for a FIFO special file. and the new file is not created. OCREAT Specifies that: v If the file does not exist. DD Statement 12-159 . v Code only one file-option from the access group. Status Group OAPPEND Specifies that MVS sets the file offset to the end of the file before each write. For example.DD: PATHOPTS Syntax PATHOPTS={file-option } {(file-option[.file-option) or PATHOPTS=(file-option.file-option). one is not created. If a directory specified in the pathname does not exist.. v Code any combination of file-options from the status group.. the system is to create it. ORDWR Specifies that the program should open the file for reading and writing. OWRONLY Specifies that the program should open the file for writing. v Duplicate file-options are treated as one specification. the system fails the allocation and the job step.. v Do not code null positions. Chapter 12. so that data is written at the end of the file. v If the file already exists and OEXCL was specified. the system uses ORDWR as the access. If you specify more than one file-option from the access group. Subparameter Definition Access Group ORDONLY Specifies that the program should open the file for reading.file-option]. the system allows the program to use the existing file. v The file-options can be in any order.

0 MVS JCL Reference . searches for it. the system assumes that the pathname exists. and issues a message if the pathname does not exist. v The file successfully opened with ORDWR or OWRONLY. Specification of ONONBLOCK has no effect on other file types. – With ONONBLOCK not specified and OWRONLY access: An open() function for writing-only blocks (waits) until a process opens the file for reading. v If the file already exists. the system fails the allocation and the job step. ONONBLOCK Specifies the following. OTRUNC has no effect on FIFO special files or character special files. depending on the type of file: v For a FIFO special file: – With ONONBLOCK specified and ORDONLY access: An open() function for reading-only returns without delay.DD: PATHOPTS OEXCL Specifies that: v If the file does not exist. The system does not change the mode and owner. The system ignores OEXCL if OCREAT is not also specified. – With ONONBLOCK specified and OWRONLY access: An open() function for writing-only returns an error if no process currently has the file open for reading. Defaults If you do not code a value on the PATHOPTS parameter or if you do not code a PATHOPTS on a DD statement with a PATH parameter. 12-160 z/OS V1R3. opening of the file does not make the terminal device the controlling terminal for the process. v The file is a regular file. v For a character special file that supports nonblocking open: – If ONONBLOCK is specified: An open() function returns without blocking (waiting) until the device is ready or available. OTRUNC Specifies that the system is to truncate the file length to zero if all the following are true: v The file specified on the PATH parameter exists. – If ONONBLOCK is not specified: An open() function blocks (waits) until the device is ready or available. OSYNC Specifies that the system is to move data from buffer storage to permanent storage before returning control from a callable service that performs a write. ONOCTTY Specifies that if the PATH parameter identifies a terminal device. – With ONONBLOCK not specified and ORDONLY access: An open() function for reading-only blocks (waits) until a process opens the file for writing. Device response depends on the type of device. the system is to create it.

You can code the following parameters with the PATHOPTS parameter: BLKSIZE BUFNO DSNTYPE DUMMY FILEDATA LRECL NCP PATH PATHMODE PATHOPTS RECFM TERM If: v You specify either: – OCREAT alone or: – Both OCREAT and OEXCL on the PATHOPTS parameter. Chapter 12. as follows: v OLD status: – PATHOPTS is not on the DD statement. the allocation succeeds. the pathname from the PATH parameter. the description in this book assumes that the application passes the subparameters to the open() function without modification. The options from PATHOPTS. If the file does not exist and you specify PATHOPTS without a file-option from the access group. And if: v The file does not exist. Then MVS performs an open() function. That is. The application program can ignore or modify the information specified in the JCL. For status group options other than OCREAT and OEXCL. – PATHOPTS does not contain OCREAT. this application uses dynamic allocation information retrieval (the DYNALLOC macro) to retrieve the values specified for PATHOPTS and passes the values to the open() function. DD Statement 12-161 . File Status The MVS system uses the PATHOPTS parameter to determine the status for the file. and the options from PATHMODE (if specified) are used in the open(). – PATHOPTS does not contain a file option. MVS uses the close() function to close the file before the application program receives control.DD: PATHOPTS If the file exists and you specify PATHOPTS without a file-option for the access group. the system fails to open the file and issues a message. Relationship to Other Parameters Code the PATHOPTS parameter only on a DD statement that contains a PATH parameter.

Note: The DISP parameter cannot appear on a DD statement containing the PATH parameter.NSL). the system will not create a file and the job step will fail.LTM) References For more information on RACF. LABEL=(. v One data set on a tape volume with one of the following types of labels: – IBM standard labels. LABEL=(.0 MVS JCL Reference . Syntax PROTECT= {YES} {Y } 12-162 z/OS V1R3. if the installation provides support – No labels.DELETE).ibm.BLP) – Leading tapemarks. LABEL=(.com/servers/eserver/zseries/racf/. LABEL=(. v NEW status: PATHOPTS contains both OCREAT and OEXCL.NL) – Bypassed label processing. OEXCL specifies that.SUL) – ISO/ANSI/FIPS Version 3 labels. LABEL=(. LABEL=(. if the installation provides support v An entire tape volume with one of the following: – IBM standard labels. With SMS. PROTECT Parameter Parameter Type Keyword. Example of the PATHOPTS Parameter //DD1 // DD PATH=’/usr/applics/pay. LABEL=(.OEXCL). if the file already exists.OCREAT.AUL) – Nonstandard labels. which includes RACF. to protect: v One data set on a direct access volume. use the SECMODEL parameter to protect data sets.SL) or LABEL=(. OWRONLY requests that the system open the file only for writing.DD: PATHOPTS v MOD status: PATHOPTS contains OCREAT but not OEXCL.AUL) – Nonstandard labels.PATHDISP=(KEEP.AL) or LABEL=(.PATHMODE=(SIRWXU.AL) or LABEL=(. optional Use the PROTECT parameter only if RACF is installed and active. LABEL=(.NSL). SECMODEL is described on page 12-176.time’. PATHOPTS=(OWRONLY. see www. LABEL=(. Purpose Use the PROTECT parameter to tell the z/OS Security Server.SUL) – ISO/ANSI/FIPS Version 3 labels.SIRGRP) OCREAT in the PATHOPTS parameter specifies that the file named in the PATH parameter be created.SL) or LABEL=(.

DD Statement 12-163 . Overrides With SMS. or DISP=SHR. This parameter can also be coded as Y. In this case. See z/OS Security Server RACROUTE Macro Reference for a description of these macro instructions. – AL or AUL for ISO/ANSI Version 1 or ISO/ANSI/FIPS Version 3 tape labels. specify a data-set-sequence-number in the LABEL parameter. v Specify in the LABEL parameter a label type of: – SL or SUL for IBM standard labels. Chapter 12. v Specify or imply DISP=NEW. See the z/OS Security Server RACF Security Administrator’s Guide for details. v Specify in the LABEL parameter a label type of: – SL or SUL for IBM standard labels. it must not specify or imply DISP=MOD. or tape volume. the NSL installation exit routine must issue a RACDEF or RACROUTE TYPE=DEFINE macro instruction. * BURST CHARS DATA DDNAME DLM DYNAM FCB FLASH MODIFY QNAME SYSOUT TERM UCS DSNAME Parameter for RACF-Protected Data Sets RACF expects the data set name specified in the DSNAME parameter to have a high-level qualifier that is defined to RACF. v Specify or imply DISP=NEW. Requirements for Protecting a Tape Data Set A DD statement that contains a PROTECT parameter to establish RACF protection for a tape data set must: v Specify or imply VOLUME=PRIVATE. v If the data set is not the first on the volume. the DD SECMODEL parameter overrides the PROTECT=YES parameter. – NSL for nonstandard labels. Requirements for Protecting a Tape Volume A DD statement that contains a PROTECT parameter to establish RACF protection for a tape volume must: v Specify or imply VOLUME=PRIVATE. DISP=OLD. Relationship to Other Parameters Do not code the following parameters with the PROTECT parameter. which requires that the RACF TAPEDSN option be active.DD: PROTECT Subparameter Definition YES Requests RACF to protect a direct access data set. – AL or AUL for ISO/ANSI Version 1 or ISO/ANSI/FIPS Version 3 tape labels. tape data set.

– LTM for leading tapemark. it automatically has the PRIVATE attribute. – BLP for bypass label processing. the RACF TAPEDSN option must be active.SUL).LABEL=(.TAPEDS.CATLG).MYDATA.NEWDS. it automatically has the PRIVATE attribute. optional Purpose Use the QNAME parameter to indicate that this DD statement defines a data set of telecommunications access method (TCAM) messages. VOLUME=SER=223344.LABEL=(2. VOLUME=SER=T49850. The QNAME parameter 12-164 z/OS V1R3. RACF can establish protection only when the data set is being created.DISP=(. Note that RACF cannot fully protect unlabeled tapes because RACF cannot verify the volume serial number directly.CATLG).KEEP). Requirements for Protecting a Direct Access Data Set A DD statement that contains a PROTECT parameter to establish RACF protection for a direct access data set must: v Name a permanent data set in the DSNAME parameter. The volume has no labels. The volume has IBM standard and user labels. the NSL installation exit routine must issue a RACDEF or RACROUTE TYPE=DEFINE macro instruction.DD: PROTECT – NSL for nonstandard labels. the operator must verify the volume serial number when mounting the tape volume. In this case.NEWDS.DISP=(NEW.0 MVS JCL Reference . v Specify a status of DISP=NEW or MOD treated as NEW. Because a specific tape volume is requested. Example 3 //TAPEDS // DD DSNAME=INST7.PROTECT=YES This DD statement requests RACF protection for tape volume T49850. Example 2 //TAPEVOL // DD DSNAME=MHB1.DISP=(NEW.PROTECT=YES This DD statement requests RACF protection for INST7.SPACE=(TRK.2).PROTECT=YES This DD statement requests RACF protection for the new direct access data set USER37.UNIT=3400-5. QNAME Parameter Parameter Type Keyword.UNIT=3330.NL). which is the second data set on tape volume 223344. // VOLUME=SER=333000. – NL for no labels. Because a specific tape volume is requested.MYDATA. Examples of the PROTECT Parameter Example 1 //DASD DD DSNAME=USER37.UNIT=3400-5.

The DCB parameter supplies information not supplied in the program’s DCB macro instruction for the data control block. procname must be identical to the procname in the name field of the TPROCESS macro instruction. Example 2 //DXD DD QNAME=SECOND.DD: QNAME refers to a TPROCESS macro instruction that defines a destination queue for the messages. The TCAM job can be a task started by an operator START command. Examples of the QNAME Parameter Example 1 //DYD DD QNAME=FIRST. Optionally. see ACF/TCAM Installation Reference. Syntax QNAME=procname[. LRECL. tcamname Names a TCAM job: tcamname must be identical to the jobname. RECFM Parameter Parameter Type Keyword. TCAM program TCAM01 will process the messages. DD Statement 12-165 . SECOND is the name of the TPROCESS macro instruction that specifies the destination queue to which the messages are routed.LRECL=80.tcamname] Subparameter Definition procname Identifies a TPROCESS macro instruction.DCB=(RECFM=FB. BUFL. RECFM. and RECFM. LRECL. LIKE. The only DCB subparameters that you can code with the QNAME parameter are: BLKSIZE. FIRST is the name of the TPROCESS macro instruction that specifies the destination queue to which the messages are routed.BLKSIZE=320) This DD statement defines a data set of TCAM messages. OPTCD. References For information about TCAM and the TPROCESS macro instruction.TCAM01 This DD statement defines a data set of TCAM messages. the QNAME parameter can also name a TCAM job to process the messages. optional Purpose Chapter 12. and REFDD. Relationship to Other Parameters The only DD parameters that you can code with the QNAME parameter are DCB.

in the DD DCB parameter. override the record format defined in the data class of the data set. in the DCB macro. All the format and characteristics must be completely described in one source. U V VS VBS F T Default: undefined-length. or in the DD RECFM parameter. blocked. However. Coding RECFM for BPAM Access Method Syntax: BPAM Access Method RECFM= {U } [A] {UT } [M] {V } {VB } {VS } {VT } {VBS } {VBT } {VBST} {F } {FB } {FT } {FBT } A or M can be coded with any record format. and QSAM Access Methods v Coding RECFM for QISAM Access Method v Coding RECFM for TCAM Access Method Coding RECFM for BDAM Access Method Syntax: BDAM Access Method RECFM= {U } {V } {VS } {VBS} {F } {FT } indicates that the indicates that the indicates that the indicates that the problem program indicates that the indicates that the records are undefined length. records are variable length. records may be written using the track-overflow feature. Code the RECFM parameter when you want to (1) specify the record format for the data set or (2) with SMS.0 MVS JCL Reference . in the data set label of an existing data set. that is. and that the must block and segment the records. the processing program can modify the RECFM field in the DCB. unblocked records. such as: RECFM=FBA 12-166 z/OS V1R3. records are variable length. EXCP.DD: RECFM Use the RECFM parameter to specify the format and characteristics of the records in a new data set. and spanned. The syntax of the RECFM parameter is described in the following topics: v Coding RECFM for BDAM Access Method v Coding RECFM for BPAM Access Method v Coding RECFM for BSAM. records are fixed length. records are variable length and spanned.

and QSAM Access Methods Syntax: BSAM. are fixed length. and QSAM using ISO/ANSI/FIPS data sets on tape: RECFM= {D } [A] {DB } {DS } {DBS} {U } {F } {FB } A can be coded with any record format. DD Statement 12-167 . are undefined length. EXCP. such as: RECFM=FBA For BSAM. and QSAM Access Methods RECFM= {U } [A] {UT } [M] {F } {FB } {FS } {FT } {FBS } {FBT } {V } {VB } {VS } {VT } {VBS } {VBT } {VBST} A or M can be coded with any record format. EXCP. may be written using the track-overflow feature. Default: U Coding RECFM for BSAM. EXCP. are blocked. are variable length. contain machine code control characters. such as: RECFM=FBA Chapter 12.DD: RECFM A B F M T U V indicates indicates indicates indicates indicates indicates indicates that that that that that that that the the the the the the the records records records records records records records contain ISO/ANSI control characters.

indicates that a record can span more than one block. (2) a card reader data set. indicates that the records are fixed length. B F V When creating indexed sequential data sets. A B D F M S indicates that the record contains ISO/ANSI device control characters. or (3) a 7-track tape unless the data conversion feature (TRTCH=C) is used. that is.DD: RECFM A or M cannot be specified if the PRTSP subparameter is specified. V cannot be specified for (1) a variable-length ISO/ANSI tape data set (specify D for this data set). (2) For variable-length records. indicates that the records are written as standard blocks. T U V Default: U Coding RECFM for QISAM Access Method Syntax: QISAM Access Method RECFM= {V } {VB} {F } {FB} indicates that the records are blocked. indicates that the records can be written using the track-overflow feature. indicates that the records are variable-length ISO/ANSI tape records. B F U V Default: U 12-168 z/OS V1R3. if required. indicates that the records are variable length. indicates that the records are fixed length. fixed length. with the exception of the last block or track. (1) For fixed-length records. you must omit RECFM. indicates that the records are undefined length. indicates that the records are variable length. when processing existing indexed sequential data sets. variable length. U is invalid for an ISO/ANSI/FIPS Version 3 tape data set. indicates that the records contain machine code control characters. variable records cannot be in ASCII. undefined length. indicates that the records are blocked. Default: V Coding RECFM for TCAM Access Method Syntax: TCAM Access Method RECFM= {U } {V } {VB} {F } indicates indicates indicates indicates that that that that the the the the records records records records are are are are blocked. you can code the RECFM subparameter. no truncated blocks or unfilled tracks within the data set.0 MVS JCL Reference .

DD: RECFM

Overrides
RECFM overrides the record format specified in the data set label, and with SMS, RECFM overrides the record format defined in the DATACLAS parameter for the data set. See “Overrides” on page 12-52.

Relationship to Other Parameters
Do not code the following DD parameters with the RECFM parameter.
* AMP DATA DCB=DSORG DCB=RECFM DDNAME DYNAM RECORG

Examples of the RECFM Parameter
Example 1
//DD1B // DD DSNAME=EVER,DISP=(NEW,KEEP),UNIT=3380, RECFM=FB,LRECL=326,SPACE=(23472,(200,40))

In the example, the record format of fixed block (FB) is used for the new data set EVER.

Example 2
//SMSDS6 // DD DSNAME=MYDS6.PGM,DATACLAS=DCLAS06,DISP=(NEW,KEEP), RECFM=FB

In the example, the record format of fixed block (FB) overrides the record format defined in the data class for the data set.

RECORG Parameter
Parameter Type
Keyword, optional — use this parameter only with SMS Without SMS, see the AMP parameter described on page 12-23.

Purpose
Use the RECORG parameter to specify the organization of the records in a new VSAM data set. Code the RECORG parameter when you want to (1) specify the record organization for the data set or (2) override the record organization defined in the data class of the data set. If SMS is not installed or is not active, the system syntax checks and then ignores the RECORG parameter.

References
See z/OS DFSMS: Using Data Sets for information on VSAM data sets.

Chapter 12. DD Statement

12-169

DD: RECORG

Syntax
RECORG= {KS} {ES} {RR} {LS}

Subparameter Definition
KS Specifies a VSAM key-sequenced data set. ES Specifies a VSAM entry-sequenced data set. RR Specifies a VSAM relative record data set. LS Specifies a VSAM linear space data set.

Defaults
If you do not specify RECORG, SMS assumes a physical sequential (PS) or partitioned (PO) data set.

Overrides
The RECORG parameter overrides the record organization defined in the DATACLAS parameter for the data set. See “Overrides” on page 12-52.

Relationship to Other Parameters
Do not code the following DD parameters with the RECORG parameter.
* DATA DCB=DSORG DCB=RECFM DDNAME DSNTYPE DYNAM RECFM

Example of the RECORG parameter
//SMSDS3 // DD DSNAME=MYDS3.PGM,DATACLAS=VSAM1,DISP=(NEW,KEEP), RECORG=KS

In the example, the record organization of key-sequenced (KS) overrides the record organization defined in the data class.

REFDD Parameter
Parameter Type
Keyword, optional — use this parameter only with SMS Without SMS, use the DCB=*.ddname form of the DCB parameter described on page 12-55.

12-170

z/OS V1R3.0 MVS JCL Reference

DD: REFDD
Purpose
Use the REFDD parameter to specify attributes for a new data set by copying attributes of a data set defined on an earlier DD statement in the same job. The following attributes are copied to the new data set from (1) the attributes specified on the referenced DD statement, and (2) for attributes not specified on the referenced DD statement, from the data class of the data set specified by the referenced DD statement: v Data set organization – Record organization (RECORG) or – Record format (RECFM) v Record length (LRECL) v Key length (KEYLEN) v Key offset (KEYOFF) v Type, PDS or PDSE (DSNTYPE) v Space allocation (AVGREC and SPACE) Only RECFM and LRECL apply to tape data sets. REFDD does not copy DCB attributes from the data set label. See the DD LIKE parameter. If SMS is not installed or is not active, the system checks the syntax and then ignores the REFDD parameter. The retention period (RETPD) or expiration date (EXPDT) is not copied to the new data set. Note: Do not use the REFDD parameter to copy attributes from a temporary data set (&&dsname), partitioned data set if a member name is included, and relative generation number for a GDG.

Syntax
REFDD= {*.ddname } {*.stepname.ddname } {*.stepname.procstepname.ddname}

Subparameter Definition
*.ddname *.stepname.ddname *.stepname.procstepname.ddname Specify a backward reference to an earlier DD statement. The referenced DD statement cannot name a cataloged data set or refer to another DD statement. *.ddname Specifies the ddname of an earlier DD statement in the same step. *.stepname.ddname Specifies the ddname of a DD statement in an earlier step, stepname, in the same job. *.stepname.procstepname.ddname Specifies the ddname of a DD statement in a cataloged or in-stream
Chapter 12. DD Statement

12-171

DD: REFDD
procedure called by an earlier job step. Stepname is the name of the job step that calls the procedure and procstepname is the name of the procedure step that contains the DD statement. Do not reference a DD * or a DD DATA statement.

Overrides
Any attributes specified on the referenced DD statement override the corresponding data class attributes of the referenced data set. Any attributes you specify on the referencing DD statement with the following parameters override the corresponding attributes obtained from the referenced DD statement and the data class attributes of the referenced data set. RECORG (record organization) or RECFM (record format) LRECL (record length) KEYLEN (key length) KEYOFF (key offset) DSNTYPE (type, PDS or PDSE) AVGREC (record request and space quantity) SPACE (average record length, primary, secondary, and directory quantity)

Relationship to Other Parameters
Do not code the following DD parameters with the REFDD parameter.
DYNAM LIKE

Examples of the REFDD Parameter
Example 1
//SMSDS6 // //SMSDS7 DD DSNAME=MYDS6.PGM,DATACLAS=DCLAS01,DISP=(NEW,KEEP), LRECL=512,RECFM=FB DD DSNAME=MYDS7.PGM,REFDD=*.SMSDS6,DISP=(NEW,KEEP)

In the example, the data set attributes used for MYDS7.PGM are obtained from the referenced data set MYDS6.PGM.

Example 2
//SMSDS6 // //SMSDS8 // DD DSNAME=MYDS6.PGM,DATACLAS=DCLAS01,DISP=(NEW,KEEP), LRECL=512,RECFM=FB DD DSNAME=MYDS8.PGM,REFDD=*.SMSDS6,DISP=(NEW,KEEP), LRECL=1024

In the example, the data set attributes used for MYDS8.PGM are obtained from the referenced data set MYDS6.PGM. Also, the logical record length of 1024 overrides the logical record length obtained from the referenced data set.

RETPD Parameter
Parameter Type
Keyword, optional

Purpose

12-172

z/OS V1R3.0 MVS JCL Reference

DD: RETPD
Use the RETPD parameter to specify the retention period for a new data set to help reduce the chance of later accidental deletion. After the retention period, the data set can be deleted or written over by another data set. If the DD statement contains DISP=(NEW,DELETE) or the DISP parameter is omitted to default to NEW and DELETE, the system deletes the data set when the step terminates normally or abnormally, even though a retention period is also specified. Do not specify RETPD for a temporary data set. The RETPD parameter achieves the same result as the EXPDT parameter. Code the RETPD parameter when you want to (1) specify a retention period for the data set or (2) with SMS, override the retention period defined in the data class for the data set.

Syntax
RETPD=nnnn v The RETPD parameter can have a null value only when coded on a DD which either: – Overrides a DD in a procedure – Is added to a procedure.

Subparameter Definition
nnnn Specifies the retention period, in days, for the data set. The nnnn is one through four decimal digits (0 - 9999). | | | The system adds nnnn to the current date to produce an expiration date. For SMS data sets, the system adds nnnn to the data set creation date to produce an expiration date. The calculated expiration date uses 365-day years and 366-day leap years. Note: If you code RETPD and the calculated expiration date is December 31, 1999, the expiration date is set to January 1, 2000.

Overrides
With SMS, RETPD overrides the retention period defined in the DATACLAS parameter for the data set. See “Overrides” on page 12-52. With SMS, both the retention period specified on RETPD and defined in the data class for an SMS-managed data set can be limited by a maximum retention period defined in the management class for the data set.

Relationship to Other Parameters
Do not code the following DD parameters with the RETPD parameter.
* DATA DDNAME DYNAM EXPDT SYSOUT

Chapter 12. DD Statement

12-173

DD: RETPD

Deleting a Data Set Before its Retention Period Passes
To delete a data set before the retention period has passed, use one of the following: v For data sets cataloged in an integrated catalog facility catalog, use the DELETE command, as described in z/OS DFSMS Access Method Services for Catalogs. v For data sets not cataloged in an integrated catalog facility catalog, use the IEHPROGM utility, as described in z/OS DFSMSdfp Utilities. v For a non-VSAM data set, use the SCRATCH macro with the OVRD parameter, as described in z/OS DFSMSdfp Advanced Services. v The system operator can reply ″u″ to the IEC507D message prompt to delete unexpired data sets. v You can override the retention period for SMS-managed DASD data sets by specifying OVRD_EXPDT(YES) in the IGDSMSxx SYS1.PARMLIB member and specifying DELETE on the DD DISP statement. The data set will be deleted whether or not the retention period has passed. See z/OS MVS Initialization and Tuning Reference for information about the IGDSMSxx parmlib member.

Examples of the RETPD Parameter
Example 1
//DD1 // DD DSNAME=HERBI,DISP=(NEW,KEEP),UNIT=TAPE, VOLUME=SER=T2,LABEL=(3,NSL),RETPD=188

In the example, the data set is not eligible for being deleted or written over for 188 days.

Example 2
//SMSDS2 // DD DSNAME=MYDS2.PGM,DATACLAS=DCLAS02,DISP=(NEW,KEEP), RETPD=732

In the example, the retention period of 732 days overrides the retention period defined in the data class for the data set.

RLS Parameter
Parameter Type
Keyword, optional

Purpose
You can, on a system that includes MVS/DFSMS Version 1 Release 3 or higher, use the RLS parameter to specify the level of record sharing, or sharing protocol, for a VSAM data set containing records that must be shared. See z/OS DFSMS: Using Data Sets for a description of the sharing protocols and to determine whether your application can run in a shared data environment without modification. Note: RLS is most useful for an existing application. For a new or heavily-modified application, you can request record-level sharing in application code and do not need to specify RLS on the DD statement.

12-174

z/OS V1R3.0 MVS JCL Reference

DD: RLS

Syntax
RLS= {NRI} {CR }

Subparameter Definition
NRI Specifies ″no read integrity″ (NRI). The application can read all records. Use this subparameter if the application can read uncommitted changes made to a data set by another application. NRI provides better performance than the CR subparameter because it avoids the overhead of obtaining a lock when reading a record from the data set. CR Specifies ″consistent read″ (CR). This subparameter requests VSAM to obtain a SHARE lock on each record the application reads. This ensures the application will not read uncommitted changes made to a data set by another application. VSAM obtains the lock while processing a GET NUP request, and releases the lock before completing the GET request. An application that processes a data set allocated with RLS=CR may require modification if it tries to read changes to the data set.

Overrides
Specifying RLS does not override any other JCL parameter. See z/OS DFSMS: Using Data Sets for a description of how to override the RLS value specified in the JCL.

Relationship to Other Parameters
Do not code the following DD parameters with the RLS parameter:
* AMP BURST CHARS COPIES DATA DCB (see Note) DDNAME DLM DSNTYPE DYNAM FLASH MODIFY OUTPUT PATH PATHOPTS PATHMODE PATHDISP QNAME SEGMENT SPIN SYSOUT TERM UCS

Note: You can code RLS with DCB as long as the only DCB subparameters you specify are KEYLEN and LRECL.

Examples of the RLS Parameter
Example 1
// //DD1 EXEC PGM=BATCHPRG DD DSN=A,RLS=NRI,DISP=SHR

When the program BATCHPRG opens DD1, the data set is to be processed as a shared resource. NRI specifies that an application can read uncommitted changes made by other applications.
Chapter 12. DD Statement

12-175

DD: RLS
Example 2
// //DD2 EXEC PGM=BATCHPRG DD DSN=B,RLS=CR,DISP=SHR

When the program BATCHPRG opens DD2, the data set is to be processed as a shared resource. CR specifies that an application can read only committed changes made by other applications.

SECMODEL Parameter
Parameter Type
Keyword, optional — use this parameter only with SMS Without SMS, use the DD PROTECT parameter described on page 12-162.

Purpose
Use the SECMODEL parameter to specify the name of an existing RACF data set profile that is copied to the discrete data set profile that RACF builds for the new data set. The following information from the RACF data set profile, which RACF uses to control access to the data set, is copied to the discrete data set profile of the new data set: v OWNER - indicates the user or group assigned as the owner of the data set profile. v ID - indicates the access list of users or groups authorized to access the data set. v UACC - indicates the universal access authority associated with the data set. v AUDIT/GLOBALAUDIT - indicates which access attempts are logged. v ERASE - indicates that the data set is to be erased when it is deleted (scratched). v LEVEL - indicates the installation-defined level indicator. v DATA - indicates installation-defined information. v WARNING - indicates that an unauthorized access causes RACF to issue a warning message but allow access to the data set. v SECLEVEL - indicates the name of an installation-defined security level. Use the SECMODEL parameter (1) when you want a different RACF data set profile than the default profile selected by RACF or (2) when there is no default profile. If SMS is not installed or is not active, the system syntax checks and then ignores the SECMODEL parameter.

References
For information about RACF, see z/OS Security Server RACF Command Language Reference.

12-176

z/OS V1R3.0 MVS JCL Reference

DD: SECMODEL

Syntax
SECMODEL=(profile-name[,GENERIC])

Subparameter Definition
profile-name Specifies the name of a RACF model profile, discrete data set profile, or generic data set profile. The named profile is copied to the discrete data set profile of the new data set. If a generic data set profile is named, GENERIC must also be coded. GENERIC Identifies that the profile-name refers to a generic data set profile.

Overrides
The SECMODEL parameter overrides the PROTECT=YES parameter.

Relationship to Other Parameters
Do not code the following DD parameters with the SECMODEL parameter.
* DATA DDNAME DYNAM

Examples of the SECMODEL Parameter
Example 1
//SMSDS4 // DD DSNAME=MYDS4.PGM,SECMODEL=(GROUP4.DEPT1.DATA), DISP=(NEW,KEEP)

In the example, RACF uses the previously defined model data set profile named GROUP4.DEPT1.DATA to control access to the new data set.

Example 2
//SMSDS5 // DD DSNAME=MYDS5.PGM,SECMODEL=(GROUP5.*,GENERIC), DISP=(NEW,KEEP)

In the example, RACF uses the previously defined generic data set profile named GROUP5.* to control access to the new data set.

SEGMENT Parameter
Parameter Type
Keyword, optional

Purpose
In a JES2 system, use the SEGMENT parameter to allow part of a job’s output to be printed while the job is still executing, or to allow multiple segments of a job’s output to be printed simultaneously on multiple printers. With SEGMENT, portions of a data set are spun, one segment at a time. You determine the size of the portion with the SEGMENT parameter. SEGMENT allows you to specify the number of
Chapter 12. DD Statement

12-177

DD: SEGMENT
pages produced for a sysout data set before the system processes the segment of the data set. To count pages, JES2 uses the carriage control characters in the data that skip to channel 1. SEGMENT is supported by JES2 only. The SEGMENT parameter applies only to line mode data sets with RECFM=A or RECFM=M.

Syntax
SEGMENT=page-count

Subparameter Definition
page-count Indicates the number of pages produced for the sysout data set for the current segment. When the number is reached, the system spins-off the data segment for output processing.

Overrides
The system spins the sysout regardless of SPIN, FREE, and OUTDISP specifications.

Relationship to Other Parameters
Do not code the following parameters with the SEGMENT parameter.
* AMP CHKPT DATA DDNAME DISP DSNAME DYNAM EXPDT LABEL LIKE PROTECT QNAME RETPD SUBSYS VOLUME

Page mode data is not counted for segmentation. The system might suspend segmentation if it reaches the threshold for segmentation allowed by JES.

Example of the Segment Parameter
//DD1 DD SYSOUT=A,SEGMENT=100

In this example, if the sysout data set produced 400 pages, then four separate segments, 100 pages in each, are produced for output processing.

SPACE Parameter
Parameter Type
Keyword, optional Note: With SMS, code the SPACE parameter when you want to v Request space for a new data set, or v Override the space allocation defined in the DATACLAS parameter for the data set.

12-178

z/OS V1R3.0 MVS JCL Reference

DD: SPACE
See the DATACLAS parameter (described on page 12-50) and the AVGREC parameter (described on page 12-31).

Purpose
Use the SPACE parameter to request space for a new data set on a direct access volume. You can request space in two ways: v Tell the system how much space you want and let the system assign specific tracks. v Tell the system the specific tracks to be allocated to the data set. Letting the system assign the specific tracks is most frequently used. You specify only how space is to be measured — in tracks, cylinders, blocks, or records — and how many of those tracks, cylinders, blocks, or records are required. The SPACE parameter has no meaning for tape volumes; however, if you assign a data set to a device class that contains both direct access devices and tape devices, for example, UNIT=SYSSQ, you should code the SPACE parameter. If you code the SPACE parameter on a DD statement that defines an existing data set, the SPACE value you specify temporarily overrides the SPACE value used to create the data set. For example, a data set created with SPACE=(CYL,(5,1)) causes 5 cylinders to be allocated to the data set, and, if it needs more space, it can obtain 1 additional cylinder. Suppose, though, that there is one particular job that specifies DISP=MOD and will write many records to this data set. JCL for this job can define, for example, SPACE=(CYL,(5,10)) to obtain an additional 10 cylinders instead of just 1 cylinder. The override, however, is in effect only for this job. Any other job that requires a secondary extent and does not have a SPACE parameter override gets just the 1 additional cylinder specified in the JCL that created the job.

Notes v When creating VSAM data sets, be aware that there is no direct one-to-one correspondence between ‘define cluster’ parameters and JCL keyword parameters. v The average value in the SPACE keyword is meant to be an average block length value for space calculations and is not meant to represent an LRECL value. v The AVGREC keyword is only to be used as a multiplier in determining how much space is to be allocated. v When defining VIO data sets, be aware that a SPACE parameter in the JCL or the SPACE value defined for a data class will override the system default space value. v The size of a data set is limited to 65,536 tracks per volume except for the following types of data sets: – Hierarchical File System (HFS) – Extended format sequential – Partitioned data set extended (PDSE) – VSAM

Chapter 12. DD Statement

12-179

DD: SPACE

Syntax
For system assignment of space: SPACE= ({TRK,}(primary-qty[,second-qty][,directory])[,RLSE][,CONTIG][,ROUND]) ({CYL,} [, ][,index ] [, ][,MXIG ] ({blklgth,} [,ALX ] ({reclgth,} [, ] To request specific tracks: SPACE= (ABSTR,(primary-qty,address [,directory]) [,index ] To request only directory space: SPACE=(,(,,directory)) v You can omit the parentheses around the primary quantity if you do not code secondary, directory, or index quantities. For example, SPACE=(TRK,20,RLSE,CONTIG) or SPACE=(TRK,20).

Note that if you omit these inner parentheses, you also omit the commas within them. v All the subparameters are positional. Code a comma to indicate an omitted subparameter if any others follow. Thus: – If you code primary and directory or index quantities and omit a secondary quantity, code a comma inside the inner parentheses to indicate the omission. For example, SPACE=(TRK,(20,,2)). – If you omit RLSE but code a following subparameter, code a comma to indicate the omission. For example, SPACE=(TRK,(20,10),,CONTIG) or SPACE=(TRK,20,,CONTIG). – If you omit CONTIG, MXIG, or ALX and ROUND follows, code a comma to indicate the omission. For example, SPACE=(400,30,RLSE,,ROUND). If you also omit RLSE, this example becomes SPACE=(400,30,,,ROUND).

Subparameter Definition
System Assignment of Space
TRK Requests that space be allocated in tracks. CYL Requests that space be allocated in cylinders. blklgth — (only if AVGREC is not coded) Specifies the average block length of the data, in bytes. The blklgth is a decimal number from 0 through 65535. This parameter indicates that the values specified for primary-qty and second-qty are block quantities, and directs the system to compute the number of tracks to allocate using a block length. The value specified for block size uses block length in this computation, with the exception of the value zero. See primary-qty and second-qty descriptions for how a zero block size is handled. reclgth — (only if AVGREC is coded and SMS is active) With SMS, specifies the average record length of the data, in bytes. The reclgth is a decimal number from 0 through 65535. This parameter indicates that the values specified for primary-qty and second-qty are record quantities, whose average record length is reclgth. If you specify zero, no space will be allocated.

12-180

z/OS V1R3.0 MVS JCL Reference

DD: SPACE
The system allocates DASD space in whole tracks. The number of tracks required depends on how the records are blocked. The system uses one of the following as the block length to compute the number of tracks to allocate, in the order indicated: 1. The block size from the DCB parameter, if specified 2. The system determined block size, if available 3. A default value of 4096. primary-qty Specifies one of the following: v For TRK, the number of tracks to be allocated. v For CYL, the number of cylinders to be allocated. v For a block length, the number of data blocks in the data set. v For a record length, the number of records in the new data set. Use the AVGREC parameter to specify that the primary quantity represents units, thousands, or millions of records. Note: When you specify TRK or CYL for a partitioned data set (PDS or PDSE), the primary quantity includes the space for the directory. When you specify a block length or record length for a partitioned data set (PDS or PDSE), the primary quantity does not include the directory space; the system assigns the directory to space outside the primary space assignment. If the data set does not have the space constraint relief option, one volume must have enough available space for the primary quantity. If you request a particular volume and it does not have enough space available for your request, the system terminates the job step. In order for a data set to have the space constraint relief option, it must be SMS-managed and the data class must specify the option. If you specify a blklgth of zero for the first subparameter, the system uses one of the following as the block length to compute the number of tracks to allocate, in the order indicated: 1. The block size from the DCB parameter, if specified 2. The block size determined from RECFM and LRECL on the DD statement or data class, if available 3. A default value of 4096. To request an entire volume, either code the ALX parameter or specify in the primary quantity the number of tracks or cylinders on the volume minus the number used by the volume table of contents (VTOC), volume label track, VTOC index, and VVDS (if any). The volume must not contain other data sets. second-qty Specifies the number of additional tracks, cylinders, blocks, or records to be allocated, if more space is needed. The system does not allocate additional space until it is needed. With SMS, use the AVGREC parameter to specify that the secondary quantity represents units, thousands, or millions of records. The system computes the number of tracks to allocate using a block length as indicated in the following order: 1. The block size from the DCB parameter, if specified 2. The system determined block size, if available 3. A default value of 4096.
Chapter 12. DD Statement

12-181

DD: SPACE
If the first subparameter specifies the average block length, the system computes the number of tracks for the secondary quantity from the second-qty number and one of the following, in order: 1. The blklgth subparameter of the SPACE parameter. 2. The saved average block length value specified when the data set was created, if no SPACE parameter was specified for an existing data set. 3. The block length in the BLKSIZE field of the data control block. When you specify a secondary quantity and the data set requires additional space, the system allocates the specified quantity: v In contiguous tracks or cylinders, if available. v If not available: – If the data set does not have the space constraint relief option, in up to five extents. – With the space constraint relief option, the system might have to allocate more than five new extents. A data set has this option only if it is SMS-managed and the data class specifies the option. The system can allocate up to 123 extents for a data set on a volume if it is a PDSE, an HFS data set, an extended format data set, or a VSAM data set in an ICF catalog. For other types of data sets the system can allocate up to 16 extents for each data set on each volume. An extent is space that may or may not be contiguous to other space allocated to the data set. The extents for a data set include the primary quantity space and user-label space. Note: BDAM data sets cannot be extended. When your program has filled a sequential data set’s allocated space on a volume, the system determines where the following data is written as follows: v If the disposition of the data set is NEW or MOD and the limit on the number of extents on a volume has not been reached, the system attempts to allocate the secondary quantity on the same volume. v If the disposition of the data set is OLD or SHR, the system examines the next volume specified for the data set. – If space has been allocated on the next volume for the data set, the next volume is used for the data set. – If space has not been allocated on the next volume for the data set, secondary space is allocated on the next volume for the data set. If there is not another volume specified for the data set, the system attempts to allocate the secondary quantity on the current volume. Note that your program should not write with a disposition of DISP=SHR unless you take precautions to prevent other programs from writing at the same time. If the requested volumes have no more available space and if at least one volume is demountable, the system asks the operator to mount scratch (nonspecific) volumes until the secondary allocation is complete. If none of the volumes are demountable, the system abnormally terminates the job step. directory Specifies the number of 256-byte records needed in the directory of a partitioned data set (PDS).

12-182

z/OS V1R3.0 MVS JCL Reference

or FEOV request for the data set. When creating a partitioned data set extended (PDSE).(. EOV. DD Statement 12-183 .KEEP) specifies 20 directory records for the data set. partitioned.DD: SPACE Note: When creating a partitioned data set (PDS). is to be released when the data set is closed.. The number of tracks must equal one or more cylinders. v Another task in the same multitasking job is processing an OPEN. Chapter 12. For example: //DD12 // DD DSNAME=PDS.EXMP. Circumstances that would preclude obtaining exclusive control include: v Another job is sharing the data set. you can specify the number of directory records on the SPACE parameter without specifying any other subparameters. but not used. the system does not release unused space even though the data set is open. This partial release parameter causes the close function to release unused space only if the data set is open to allow writing and the last operation was not a read or a POINT macro. specifies one of the following: v For TRK. the size of the directory grows dynamically as needed. (SMS uses all other space allocation attributes defined in the data class of the data set. In this example. the number of cylinders needed. only unused space on the current volume is released when the data set is closed. v Another data control block is open for the data set. RLSE is supported only for sequential. then the allocation fails.SPACE=(. the number of tracks needed. allocated space on any subsequent volume is not affected. and VSAM extended format data sets. v For CYL. SMS uses the size requested for a PDSE directory only if you later convert the PDSE to a PDS.20)).DATACLAS=DCLAS12. The system ignores a request to release unused space when closing a data set if it cannot immediately obtain exclusive control of the data set. For a multi-volume sequential data set.) index For the index of an indexed sequential data set. With SMS. DISP=(NEW. RLSE (Partial Release) Requests that space allocated to an output data set. The secondary request for space is still in effect. you must request space for a directory. If you specify RLSE and an abnormal termination occurs. the number of specified directory records (20) overrides the number of directory records defined in the data class of the data set. Coding RLSE for primary allocation does not prohibit use of secondary allocation. or if the system has allocated the primary quantity over multiple extents and the first extent is too small for the directory. The RLSE subparameter is ignored when TYPE=T is coded in the CLOSE macro instruction. The PDS directory must fit in the first extent of the data set. CLOSE. If the primary quantity is too small for the directory.

12-184 z/OS V1R3. ALX Requests that space allocated to the data set is to be up to 5 of the largest areas of available contiguous space on the volume.(100. For example.RLSE) You can release space in the following additional ways other than by deleting the data set: v Partial release option in the management class v DFSMShsm space management cycle v PARTREL macro issued by an authorized program. If your job requests 14 tracks as its primary allocation. CONTIG Requests that space allocated to the data set must be contiguous. 435. Large amounts of storage could be allocated. IBM recommends that you also code the RLSE parameter to release any unused space. Note: Do not code an ALX subparameter for an indexed sequential data set. it would receive 4 extents: 910. If you code this parameter. Large amounts of storage could be allocated. and 8. the job receives the following 5 extents: 910. depending on how much free space is available at the time the request is made. 102. and 14. code the unit of measurement and primary quantity as they appeared in the original request. assume the following space extents (in tracks) are available: 910. MXIG Requests that space allocated to the data set must be (1) the largest area of available contiguous space on the volume and (2) equal to or greater than the primary quantity. if the original request was: SPACE=(TRK. IBM recommends that you also code the RLSE parameter to release any unused space. If CONTIG is specified and contiguous space is not available. For example. This subparameter affects only primary space allocation.0 MVS JCL Reference . 201. 12. If you code this parameter. 201. 102. Caution: IBM recommends that you use extreme care when coding this parameter. and ALX is in effect. depending on how much free space is available at the time the request is made. 14. Caution: IBM recommends that you use extreme care when coding this parameter. However. 435. and each area must be equal to or greater than the primary quantity. Note: Do not code a MXIG subparameter for an indexed sequential data set. and 102.DD: SPACE When coding RLSE for an existing data set. The job does not receive the 14-track extent because it is less than the primary space allocation.(100). if the job requests 15 tracks as its primary allocation. 435. ALX affects only primary space allocation. 201. The system allocates fewer than 5 areas only when 5 areas of sufficient size are not available. the system terminates the job step.50)) you can release unused tracks when you retrieve the data set by coding: SPACE=(TRK. This subparameter affects only primary space allocation.

The number of tracks must equal one or more cylinders. Count the first track of the first cylinder on the volume as 0. The absolute track address must be a decimal number equal to or less than 65535. address Specifies the track number of the first track to be allocated. the SPACE parameter overrides the space allocation attributes defined in the data class for the data set. Note: When creating a partitioned data set. Relationship to Other Parameters Do not code the following parameters with the SPACE parameter. Count through the tracks on each cylinder until you reach the track on which you want the data set to start.DD: SPACE ROUND When the first subparameter specifies the average block length. index Specifies the number of tracks needed for the index of an indexed sequential data set. ABSTR Requests that the data set be allocated at the specified location on the volume. requests that space allocated to the data set must be equal to an integral number of cylinders. Count the first track of the first cylinder on the volume as 0. Count through the tracks on each cylinder until you reach the track on which you want the data set to start. Overrides With SMS. Request for Specific Tracks For an SMS-managed data set (one with an assigned storage class). If the first subparameter specifies TRK. do not code ABSTR. The volume must have enough available space for the primary quantity. primary-qty Specifies the number of tracks to be allocated to the data set. Note: Do not request track 0. Explicit specification of SPACE on the DD statement overrides both the SPACE and the AVGREC values specified in the data class. the system ignores ROUND. you must request space for a directory. DD Statement 12-185 . * DATA DDNAME DYNAM QNAME SUBSYS Chapter 12. address Specifies the track number of the first track to be allocated. the system terminates the job step. or CYL. If it does not. directory Specifies the number of 256-byte records needed in the directory of a partitioned data set.

0 MVS JCL Reference . It requests that the system allocate 10 cylinders. The UNIT parameter requests any available tape or direct access volume. The system computes how many tracks are needed. code the DD parameter KEYLEN (or the DCB subparameter KEYLEN) on the DD statement and specify the key length. Example 2 //DD2 // DD DSNAME=PDS12. code the SPACE parameter with or without the AVGREC parameter when you want to (1) request space for the data set or (2) override the space allocation attributes defined in the data class for the data set.75).UNIT=MIXED.10). the SPACE parameter is used to allocate space to the data set.SPACE=(CYL.UNIT=3350. the SPACE parameter is ignored.DISP=NEW. Example 3 //REQUEST1 // //REQUESTA // DD DSNAME=EXM. SPACE=(1024.DCB=KEYLEN=8 DD DSNAME=EXQ. The system allocates 10 cylinders to the data set.UNIT=3350.DD: SPACE With KEYLEN for Block Requests If space is requested in blocks and the blocks have keys. Examples of the SPACE Parameter Example 1 //DD1 DD DSNAME=&&TEMP. Each block is preceded by a key eight bytes long.CONTIG) The DD statement defines a new partitioned data set.UNIT=3380.(5. Since the CONTIG subparameter is coded. if a direct access volume is assigned. // SPACE=(ABSTR. beginning on the second track of the volume. SPACE=(1024.DISP=NEW.VOLUME=SER=606674.KEEP). The average block length of the data is 1024 bytes. of which ten 256-byte records are for a directory.VOLUME=SER=606674. depending on the device requested in the UNIT parameter. If a tape volume is assigned.CATLG). Example 5 //DD3 // DD DSNAME=MULTIVOL. Example 4 //REQUEST2 DD DSNAME=PET. the SPACE parameter asks the system to allocate 5 tracks.SPACE=(CYL. 75 blocks of data are expected as output.75).DISP=NEW. The SPACE parameter specifies only the required subparameters: the type of allocation and a primary quantity.223345).10) The DD statement defines a temporary data set.UNIT=3330.554)) 12-186 z/OS V1R3.DCB=KEYLEN=8 These DD statements request space in block lengths.UNIT=3330.DISP=(.SPACE=(CYL..(554. VOLUME=SER=(223344. SPACE for New Data Sets with SMS With SMS.. the system allocates 10 contiguous cylinders on the volume. MIXED is the installation’s name for a group of tape and direct access devices.(10. VOLUME=SER=25143.DISP=(.1)) In this example.

120) records. SPIN Parameter Parameter type Keyword. If you unallocate the sysout data set at the end of the step. SPACE=(128. Example 6 //SMSDS3 // DD DSNAME=MYDS3. and the system will make it available for processing then. DD Statement 12-187 . and a secondary quantity of 2K (2.PGM. The unrequested cylinder contains the volume table of contents (VTOC). the sysout data set is unallocated at the end of the step. If you do not dynamically unallocate it.2)). If you dynamically unallocate the sysout data set.048) records. NO Indicates that the system makes the sysout data set available for processing as a part of the output at the end of the job.DATACLAS=DCLAS03. either explicitly or by specifying FREE=CLOSE. at the end of the job.AVGREC=K In this example. the following defaults apply: Chapter 12. the system makes the data set available for processing immediately.DD: SPACE This example shows how to create a multivolume data set on two complete volumes. regardless of when the data set is unallocated. a primary quantity of 5K (5.KEEP). A volume on 3350 Direct Access Storage contains 555 cylinders.(5. Defaults If you dynamically unallocate the sysout data set. the default is that the data set is available for processing. Syntax SPIN= {UNALLOC} {NO } Subparameter Definition UNALLOC Indicates that the system makes the data set available for processing immediately when the data set is unallocated. optional Purpose Use the SPIN parameter to specify that the output for the sysout data set is to be made available for processing v Immediately upon unallocation v At the end of the job. which indicate an average record length of 128 bytes. the default is that the data set is immediately available for processing. If you specify FREE=CLOSE. The two volumes do not contain other data sets. the space allocation defined in the DCLAS03 data class is overridden by the SPACE and AVGREC parameters.DISP=(NEW.

FREE=CLOSE. the system makes the sysout data set available for printing at the end of the job. Relationship to Other Parameters Do not code the following parameters with the SPIN parameter.0 MVS JCL Reference . v A data set that is closed as part of the end-of-step cleanup. Example 4 //DD4 DD SYSOUT=A. regardless of when it is unallocated or closed.FREE=CLOSE. and made available for printing then. the system makes it available for printing immediately. the system makes it available for printing immediately. the system makes the sysout data set available for printing at the end of the job. For more information. the sysout data set is unallocated at the end of the step. if you explicitly close or dynamically unallocate the sysout data set. If you do not explicitly close or dynamically unallocate the sysout data set. the default is that the data set is available for processing at the end of the job. see z/OS DFSMS Macro Instructions for Data Sets. Example 2 //DD2 DD SYSOUT=A. 12-188 z/OS V1R3.DD: SPIN v A data set that is closed by the application program is available for processing immediately.SPIN=NO In this example.SPIN=NO In this example.FREE=END. Note: Another way for a program to control when the sysout data set becomes available for processing is to issue a SETPRT macro. regardless of whether the data set is unallocated or closed.FREE=END. the system makes it available for printing at the end of the step. such as for a program abend. is available for processing at the end of the job. * AMP CHKPT DATA DDNAME DISP DYNAM EXPDT LABEL LIKE PROTECT QNAME RETPD SUBSYS VOLUME Examples of the SPIN Parameter Example 1 //DD1 DD SYSOUT=A. Example 3 //DD3 DD SYSOUT=A.SPIN=UNALLOC In this example. If you dynamically unallocate the sysout data set. Overrides The SEGMENT parameter overrides the SPIN parameter.SPIN=UNALLOC In this example. If you specify FREE=END.

Defaults If you do not specify STORCLAS for a new data set and the storage administrator has provided an installation-written automatic class selection (ACS) routine. The storage class contains the attributes that identify a storage service level to be used by SMS for storage of the data set. A storage class is assigned when either (1) you specify the STORCLAS parameter or (2) an installation-written automatic class selection (ACS) routine selects a storage class for a new data set. DD Statement 12-189 . Purpose Use the STORCLAS parameter to specify a storage class for a new SMS-managed data set. The use of a storage class can be protected by RACF. the system syntax checks and then ignores the STORCLAS parameter. is defined by the storage administrator at your installation. An SMS-managed data set is defined as a data set that has a storage class assigned. the Chapter 12. one to eight characters. Syntax STORCLAS=storage-class-name Subparameter Definition storage-class-name Specifies the name of a storage class to be used for storage of the data set. The storage administrator at your installation defines the names of the storage classes you can code on the STORCLAS parameter. References See z/OS DFSMS: Using the Interactive Storage Management Facility for information on how to use ISMF to view your installation-defined storage classes. If SMS is not installed or is not active. It replaces the storage attributes that are specified on the UNIT and VOLUME parameters for non-SMS-managed data sets. use the UNIT parameter (described on page 12-203) and the VOLUME parameter (described on page 12-210). optional — use this parameter only with SMS and for SMS-managed data sets Without SMS or for non-SMS-managed data sets.DD: STORCLAS STORCLAS Parameter Parameter Type Keyword. SMS ignores the STORCLAS parameter if you specify it for an existing data set. The name.

KEEP) In the example.DISP=(NEW. the job step fails. SMS uses the attributes in the storage class named SCLAS01 for the storage service level of the data set.224444) In the example.DISP=(NEW. 12-190 z/OS V1R3.) Note that installation-written ACS routines may select a management class and data class and can override the specified storage class. optionally.STORCLAS=SCLAS02. if space is not available on the volumes. Note that installation-written ACS routines may select a management class and data class and can override the specified storage class. Example 2 //SMSDS2 // DD DSNAME=MYDS2. Also.DD: STORCLAS ACS routine may select a storage class for the data set.STORCLAS=SCLAS01.0 MVS JCL Reference . VOLUME=SER can be coded and the data set will reside on the specified volumes. optional Purpose Use the SUBSYS parameter to request a subsystem to process this data set and. (However. in which case you do not need to specify STORCLAS.PGM.KEEP). SMS uses the attributes in the storage class named SCLAS02 for the storage service level of the data set. Check with your storage administrator to determine if an ACS routine will select a storage class for the new data set. Otherwise. * DATA DDNAME DYNAM QNAME UNIT=AFF VOLUME=REF Examples of the STORCLAS Parameter Example 1 //SMSDS1 DD DSNAME=MYDS1. then volume serial numbers you specify on the VOLUME=SER parameter override the volume serial numbers used by SMS. Relationship to Other Parameters If the storage administrator has specified GUARANTEED_SPACE=YES in the storage class.PGM. volume serial numbers are ignored. SUBSYS Parameter Parameter Type Keyword. Do not code the following DD parameters with the STORCLAS parameter. Overrides No attributes in the storage class can be overridden by JCL parameters. to specify parameters defined by the subsystem. if the storage administrator has specified GUARANTEED_SPACE=YES in the storage class. VOLUME=SER=(223344. An ACS routine can override the storage class that you specify on the STORCLAS parameter.

Symbolic substitution is inconsistent when you code SYSUID as a subparameter of SUBSYS parameter.1724. the requested subsystem must be defined on all processors that could interpret this DD statement.1724. Subparameter Definition subsystem-name Identifies the subsystem. Multiple Subparameters: When the parameter contains more than the subsystem-name. refer to the documentation for the requested subsystem.)} Single Subparameter: You can omit the parentheses if you code only the subsystem-name. References For more information on the SUBSYS parameter and subsystem-defined parameters. SUBSYS=(XYZ. code O’Day as SUBSYS=(XYX. Positional Subparameters: If you omit a subparameter that the subsystem considers positional. If you code a symbolic parameter on the SUBSYS parameter. code a comma in its place. DT25. you can code up to 254 subsystem-subparameters on a JES2 system. avoid coding the system symbolic SYSUID on the SUBSYS parameter. Considerations for an APPC Scheduling Environment In an APPC scheduling environment.’KEY=Y’. For example.SUBSYS=(XYZ. End each statement with a comma after a complete subparameter..subsystem-subparameter].1724.'KEY=Y'). For example. Code each apostrophe that is part of a subparameter as two consecutive apostrophes. Continuation onto Another Statement: Enclose the subparameter list in only one set of parentheses.’NAME=O’’DAY’) Note: The SUBSYS parameter can have a null value only when coded on a DD which either: v Overrides a DD in a procedure v Is added to a procedure. In a loosely-coupled multiprocessing environment.DT25). enclose the subparameter in apostrophes. or up to 1020 bytes of data on a JES3 system.DD: SUBSYS Do not use the SUBSYS parameter for an SMS-managed data set (one with an assigned storage class).1724. you can code the symbolic parameter in apostrophes.'NAME=O''DAY'). SUBSYS=(XYZ. For example. DD Statement 12-191 . For example: //DS1 // DD DSNAME=DATA1. Number of Subparameters : If needed. The subsystem name is 1 through 4 alphanumeric or Chapter 12.. separate the subparameters by commas and enclose the subparameter list in parentheses. Special Characters: When a subparameter contains special characters. Syntax SUBSYS= {subsystem-name } {(subsystem-name[.

If they are acceptable. on the overridden DD statement.the system checks them for syntax and then ignores them: FCB UNIT If you specify the SPACE parameter. Relationship to Other Parameters Do not code the following DD parameters with the SUBSYS parameter: * AMP BURST CHARS COPIES DATA DDNAME DYNAM FLASH MODIFY QNAME SYSOUT The specified subsystem can define other parameters that you must not code with the SUBSYS parameter: Ignored but Permitted DD Parameters If you specify any of the following DD parameters. DUMMY Parameter If DUMMY is specified with SUBSYS. If the DISP normal or abnormal termination subparameter is CATLG or UNCATLG. the following occurs: v The system ignores a UNIT parameter. if specified. the system checks its syntax and then ignores it. on the overridden DD statement. the system allocates the appropriate catalog to the subsystem. but the subsystem designated on the SUBSYS parameter may use this information when it allocates the DD. A subparameter consists of alphanumeric. subsystem-subparameter Specifies information needed by the subsystem. the first character must be alphabetic or national ($. or special characters. #. #.0 MVS JCL Reference . v The system nullifies a DUMMY parameter. @) characters. The subsystem must be available in the installation. @). When This Statement Overrides a Procedure Statement If SUBSYS appears on a DD statement that overrides a DD statement in a cataloged or in-stream procedure.DD: SUBSYS national ($. but always indicates a status of MOD to the subsystem. if specified. @). 12-192 z/OS V1R3. the subsystem checks the syntax of the subsystem subparameters. DISP Parameter The system checks the DISP status subparameter for syntax. the system treats the data set as a dummy data set. #. national ($.

which are special characters. DD Statement 12-193 . 4. optional Purpose Use the SYSOUT parameter to identify this data set as a system output data set. The system passes three subparameters to the subsystem: IKJ2. An external writer is an IBM. // ’KEYWORD=DATA VALUE1’) The DD statement asks subsystem XYZ2 to process data set ANYDS. The installation default options for the requested output class.’DATE=4/11/86’) The DD statement asks subsystem XYZ2 to process the data set ANYDS.DISP=OLD.SUBSYS=(XYZ2. Example 3 //DD1 DD DSNAME=ANYDS. 3. The sysout data set is processed according to the following processing options. Chapter 12. The SYSOUT parameter also: v Assigns this sysout data set to an output class. Do not use the SYSOUT parameter for an SMS-managed data set (one with an assigned storage class). Example 2 //DD1 DD DSNAME=ANYDS. The system passes the subparameter KEYWORD=DATA VALUE1 to the subsystem. The parameter is enclosed in apostrophes because it contains an equal sign and a blank. in override order: 1. v Optionally requests an external writer to process the sysout data set rather than JES. usually called a sysout data set. v Optionally refers to a JES2 /*OUTPUT statement for processing parameters.SUBSYS=(XYZ2. SYSOUT Parameter Parameter Type Keyword.DD: SUBSYS Examples of the SUBSYS Parameter Example 1 //DD1 DD DSNAME=ANYDS. 2. The options specified on this sysout DD statement. v Optionally identifies the forms on which the data set is to be printed or punched. The options specified on a referenced JES2 /*OUTPUT statement or on a JES3 //*FORMAT statement. The options specified on a referenced OUTPUT JCL statement.DISP=OLD.IKJ2.SUBSYS=ABC The DD statement asks subsystem ABC to process data set ANYDS.DISP=OLD. // ’NAME=’’MODULE1’’’. The attributes of each output class are defined during JES initialization.or installation-written program. NAME='MODULE1' and DATE=4/11/86. Note that the character string MODULE1 is passed to the subsystem enclosed in apostrophes.

– If you omit a writer-name but code a form-name or code-name. For example. When other subparameters do not follow.FM26).FM26). – Omission of the third subparameter does not require a comma.0 MVS JCL Reference . 3.) v You can omit the parentheses if you code only a class. Syntax SYSOUT= { class } { * } { ([class] [. If the writer is not started before the job produces the sysout data set. The system operator starts the output writers for the commonly used output classes. code SYSOUT=(. If the automatic restart manager (ARM) restarts a job. v All of the subparameters are positional. 2. JES discards all non-spin sysout data sets created during the previous execution. code a null class as SYSOUT=(. SYSOUT=A or SYSOUT=(A.INTRDR).). specify the class with the desired attributes.code-name] SYSOUT=(. when other subparameters follow.INTRDR. * Requests the output class in the MSGCLASS parameter on the JOB statement. but others should be reserved for special processing. For example. Some classes should be used for most printing and punching.form-name]) } [. code a comma to indicate the omission. ask the operator to start the output writer for that class. 12-194 z/OS V1R3. In a JES2 system you can also use the dollar-sign ($) to request the output class in the MSGCLASS parameter on the JOB statement. code a comma to indicate the omission.) References For information on output writers and external writers.writer-name] [. The attributes of each output class are defined during JES initialization. (You can avoid losing that output by adding SPIN=UNALLOC to the DD statement for the SYSOUT data set. Subparameter Definition class Identifies the output class for the data set. see z/OS MVS Using the Subsystem Interface. the data set is retained until the writer is started. Each class is processed by an output writer. The class is one character: A through Z or 0 through 9.. If a sysout data set has the same class as the JOB statement MSGCLASS parameter. An installation should maintain a list of available output classes and their attributes. which you may optionally include in quotation marks. For example.DD: SYSOUT Notes: 1. SYSOUT=(A. the job log appears on the same output listing as this sysout data set. If you plan to specify a special output class.INTRDR ] [. Code a comma to indicate an omitted subparameter as follows: – If you omit the class.

The code-name must be the same as the code parameter on the JES2 /*OUTPUT statement. JES uses an installation default specified at initialization. if you do not specify a class on this DD statement or a referenced OUTPUT JCL statement. writer-name Identifies the member name (1 to 8 alphanumeric characters) of an installation-written program. @) characters. Note: v code-name is supported only on JES2 systems. Do not code STDWTR as a writer-name. Because the external writer is a started task. If you do not code a form-name subparameter on this DD statement or a referenced OUTPUT JCL statement. Chapter 12. See the override order shown under ″Purpose″ for how this default is established. v Do not specify the code-name subparameter when the job or job step contains a default OUTPUT JCL statement.XTWTR) In order for the writer to process that output. NJERDR is reserved for JES3. If you do not code a writer-name subparameter on this DD statement or a referenced OUTPUT JCL statement.) Specifies a null class. The access list permits the writer’s userid to the SYSOUT data set. the writer’s userid must be in a RACF access list. Process output with an external writer by naming the writer on the DD statement that defines the output: //MYOUTPUT DD SYSOUT=(A. A null class must be coded to use the CLASS parameter on a referenced OUTPUT JCL statement. If your installation’s policy requires security labels. An external writer is a started task used to process output. JES2 assigns the sysout data set to the output class defined by the MSGCLASS value of the JOB statement. code-name Identifies an earlier JES2 /*OUTPUT statement from which JES2 is to obtain processing characteristics. see your security administrator.DD: SYSOUT (. #. INTRDR Tells JES that this sysout data set is to be sent to the internal reader as an input job stream. form-name is 1 through 4 alphanumeric or national ($. In a JES3 system. the security label associated with the external writer must be equal to or greater than the security label associated with the SYSOUT. Defaults In a JES2 system. it has a userid associated with it. STDWTR is reserved for JES and used as a parameter in the MVS operator’s MODIFY command. The writer’s userid is the userid specified in the started procedure table for the writer task. For more information. do not code NJERDR as a writer-name. the installation’s job entry subsystem processes the sysout data set. form-name Identifies the print or punch forms. DD Statement 12-195 .

you must code a null class in order to use the OUTPUT JCL CLASS parameter.DD: SYSOUT Overrides The class subparameter of the DD statement SYSOUT parameter overrides an OUTPUT JCL CLASS parameter.OUTPUT=*. You can code: //VALID1 //VALID2 DD DD SYSOUT=D.DEST=(node. The form-name subparameter of the DD statement SYSOUT parameter overrides an OUTPUT JCL FORMS parameter. the UNIT and SPACE parameters are ignored. the system ignores a UNIT parameter on the overridden DD statement in the cataloged or in-stream procedure. Note that the SYSOUT form-name subparameter can be only four characters maximum while both the OUTPUT JCL FORMS form-name and the JES initialization default form names can be eight characters maximum. Parameters on Procedure DD Statements that are Overridden When an overriding DD statement contains a SYSOUT parameter. Relationship to Other Parameters Do not code the following DD parameters with the SYSOUT parameter. if coded on a sysout DD statement.0 MVS JCL Reference .). * AMP CHKPT DATA DATACLAS DDNAME DISP DYNAM EXPDT LABEL LIKE PROTECT QNAME RETPD SUBSYS VOLUME Ignored Parameters Because JES allocates sysout data sets.OUT1 The writer-name subparameter of the DD statement SYSOUT parameter overrides an OUTPUT JCL WRITER parameter. 12-196 z/OS V1R3. These subparameters are mutually exclusive.writer-name).userid) SYSOUT=(D. SYSOUT and DEST Subparameters Do not code the SYSOUT writer-name subparameter when coding a DEST userid subparameter.DEST=(node) With DCB Subparameters JES2 ignores DCB=PRTSP=2 on a DD statement that also contains a SYSOUT parameter. for example: //OUTDS DD SYSOUT=(. Naming a Sysout Data Set Code the DSNAME parameter with the SYSOUT parameter if you wish to assign the last qualifier of the system-generated name to a sysout data set. On the DD statement.

(2) the data set includes an OUTPUT JCL statement. code one of the following: v The same output class in the DD SYSOUT parameter as in the JOB MSGCLASS parameter. the writer must be started before it can print or punch the data set. SYSOUT cannot specify a code-name subparameter in a job or job step that contains an OUTPUT JCL statement. it is not necessary to select a specific BLKSIZE on the DCB parameter for performance reasons because the subsystem selects its own blocking. in this case. Significance of Output Classes To print this sysout data set and the messages from your job on the same output listing. Relationship to Other Control Statements A sysout DD statement can directly or indirectly reference an OUTPUT JCL statement. “OUTPUT JCL Statement”. See “OUTPUT Parameter” on page 12-146 and Chapter 22. all of the new output characteristics might not be included in the data set on the writer queue when (1) the data set is moved from the hold queue to the output service writer queue (Q=WTR).DD: SYSOUT For JES. v DD SYSOUT=(. The writer is started by a system command from the operator or in the input stream. DD Statement 12-197 . INTRDR with OUTPUT Parameter Do not code an OUTPUT parameter when the writer-name subparameter is INTRDR. JES2 treats the third subparameter as a form-name. and (3) the NQ= or NCL= keyword is used. The parameters on the referenced OUTPUT JCL statement combine with the parameters on the sysout DD statement to control the processing of the sysout data set. Held Classes in a JES2 System A sysout data set is held if the sysout DD statement contains HOLD=YES or the OUTPUT JCL statement specifies OUTDISP=HOLD. see z/OS JES3 Initialization and Tuning Guide. the data set is retained until the writer is started. Held Classes in a JES3 System If CLASS specifies a class-name that is defined to JES3 as a held class for the output service hold queue (Q=HOLD). v DD SYSOUT=* to default to the JOB MSGCLASS output class. For more information. Starting an External Writer when Requested When a statement supplying processing options for a sysout data set specifies an external writer. instead of a reference to a JES2 /*OUTPUT statement. If the writer is not started before the job produces the sysout data set.) to default to one of the following: Chapter 12. Backward References Do not refer to an earlier DD statement that contains a SYSOUT parameter.

2PRT) In this example. the DD statement specifies that JES is to write the sysout data set to the device handling class P output. In this case. The CLASS parameter in an explicitly or implicitly referenced OUTPUT JCL statement.DD: SYSOUT 1.. 12-198 z/OS V1R3. Example 2 //DD2 DD DSNAME=&&PAYOUT1. Because the SYSOUT parameter and the MSGCLASS parameter specify the same class. if no OUTPUT JCL statement is referenced or if the referenced OUTPUT JCL statement contains either CLASS= or CLASS=*.*.MSGCLASS=C PGM=SET SYSOUT=C In this example. Examples of the SYSOUT Parameter Example 1 //DD1 DD SYSOUT=P In this example.OT2. The DD statement specifies that JES is to write the data set to the device handling class P output. DD statement DD2 defines PAYOUT1 as the last qualifier of the system-generated name for the sysout data set. the DD statement combines with the three referenced OUTPUT JCL statements to create three separate sets of output: 1. BROWN’. Note that the output references can be in any order.jobname.OT3) In this example. Example 3 //JOB50 JOB //STEP1 EXEC //DDX DD . 2.PAYOUT1. The JOB MSGCLASS output class.jobid.OUTPUT=(*. Example 5 //DD5 DD SYSOUT=(F. the OUTPUT JCL CLASS parameter should specify the same output class as the JOB MSGCLASS parameter.*.’C.OT1. The data set is to be printed or punched on forms named 2PRT. the DD statement specifies that JES is to write the sysout data set to the device handling class F output. DSA combines with OT1 to send the sysout data set to NYC. the messages from this job and the sysout data set can be written to the same device. 2.SYSOUT=P In this example. Example 4 //STEP1 //OT1 //OT2 //OT3 //DSA EXEC OUTPUT OUTPUT OUTPUT DD PGM=ANS DEST=NYC DEST=LAX COPIES=5 SYSOUT=H.0 MVS JCL Reference . DSA combines with OT2 to send the sysout data set to LAX. DD statement DDX specifies that JES is to write the sysout data set to the device handling class C output.Ddsnumber. DSA combines with OT3 to print five copies of the data set locally on the printer used for output class H. 3. The system generates a name such as userid.

the system either: v Ignores the TERM=TS parameter. For example. (The system bypasses this error if SYSOUT=* is coded with TERM=TS.DD: TERM TERM Parameter Parameter Type Keyword. Chapter 12. v Fails the TERM=TS parameter with an allocation error. code all referenced OUTPUT JCL statements in the input stream before the DD statement that refers to them. Syntax TERM=TS Subparameter Definition TS In a foreground job submitted by a TSO/E user.) Relationship to Other Parameters Do not code the following DD parameters with the TERM parameter. indicates that the input or output data set is coming from or going to a TSO/E userid. Location in the JCL To ensure that the system uses the desired OUTPUT JCL statement. The system ignores any other DD parameters. if the referencing DD statement appears in an in-stream or cataloged procedure. Purpose Use the TERM parameter to indicate to the system that a data set is coming from or going to a terminal for a TSO/E user. DD Statement 12-199 . when the parameter appears by itself. If you code TERM. optional Do not use the TERM parameter for an SMS-managed data set (one with an assigned storage class). the referenced OUTPUT JCL statement should precede the DD statement in the procedure. Considerations for an APPC Scheduling Environment The TERM parameter has no function in an APPC scheduling environment. when it appears with other parameters. the system will check it for syntax and ignore it. In a background or batch job. * AMP DATA DDNAME DYNAM PROTECT QNAME Code only the DCB and SYSOUT parameters with the TERM parameter.

this DD statement defines a data set coming from or going to the TSO/E userid. 12-200 z/OS V1R3. In a batch job. DCB=(LRECL=80. References For more information on the UCS parameter. the system ignores only the TERM parameter. The UCS image is stored in SYS1. The UCS image specifies the special character set to be used. Examples of the TERM Parameter Example 1 //DD1 DD TERM=TS In a foreground job submitted from a TSO/E userid. When concatenating DD statements.) Example 3 //DD3 // DD UNIT=3400-5. Example 2 //DD1 DD TERM=TS.DISP=(MOD.PASS). v A print train (print chain or print band) JES is to use in printing this sysout data set on an impact printer. (An allocation error occurs if SYSOUT=* is not coded with TERM=TS.DD: TERM In a foreground TSO/E job. the DD statement that contains TERM=TS must be the last DD statement in a job step. the UCS parameter acts like a CHARS parameter. see z/OS DFSMSdfp Advanced Services.SYSOUT=* In a background or batch job. IBM provides the special character set codes in Table 12-2.IMAGELIB. a DD statement containing TERM=TS and a SYSOUT parameter begins an in-stream data set. v A character-arrangement table for this sysout data set printed on 3800 Printing Subsystem in a JES2 system.BLKSIZE=80) In a foreground job. optional Purpose Use the UCS (universal character set) parameter to identify: v The UCS image JES is to use in printing this sysout data set.LABEL=(.0 MVS JCL Reference . JES loads the image into the printer’s buffer.NL). UCS Parameter Parameter Type Keyword. In this use. the system ignores TERM=TS and recognizes a sysout data set. the system ignores all of the parameters in this example except TERM and DCB.TERM=TS.

standard EBCDIC character set. The character set image is displayed on the printer before the data set is printed. The character-set-code is 1 through 4 alphanumeric or national ($. Note: JES2 and JES3 do not support the FOLD subparameter.. UCS=(AN. Fold mode is described in 2821 Component Description. 3203 Model 5. See Table 12-2 for IBM standard special character set codes. Subparameter Definition character-set-code Identifies a universal character set. VERIFY Requests that. 48 characters Arrangement H.and lower-case data is to be printed only in uppercase. 48 characters ASCII character set Preferred alphanumeric character set. the FOLD option is specified in the UCS image for JES2-controlled printers. #. v All of the subparameters are positional. Special Character Sets for the 1403. DD Statement 12-201 .VERIFY]) } [.VERIFY). Table 12-2. the operator verify visually that the character set image is for the correct chain or train. v Null positions in the UCS parameter are invalid. arrangement A Preferred alphanumeric character set. @) characters. See z/OS DFSMSdfp Advanced Services. ] v You can omit the parentheses if you code only a character-set-code. and 3211 Printers 1403 AN HN 3203 Model 5 3211 AN HN A11 H11 G11 PCAN PCHN PN QN QNC RN SN TN XN PCAN PCHN PN QN QNC RN SN TN T11 P11 Characteristics Arrangement A.DD: UCS Syntax UCS= {character-set-code } {(character-set-code [. FOLD Requests that the chain or train for the universal character set be loaded in fold mode. code a comma to indicate the omission. 120 characters High-speed alphanumeric character set for 1403. For example. Fold mode is most often used when upper.FOLD] [. EBCDIC character set for FORTRAN and COBOL. If you omit FOLD but code VERIFY. Model 2 Chapter 12. before the data set is printed. For JES2. arrangement H PL/I alphanumeric character set PL/I preferred alphanumeric character set for scientific applications PL/1 preferred alphanumeric character set for commercial applications Preferred character set for commercial applications of FORTRAN and COBOL Preferred character set for text printing Character set for text printing.

as indicated by its first byte. OUTPUT JCL CHARS parameter.0 MVS JCL Reference . a CHARS parameter on the sysout DD statement or the OUTPUT JCL statement overrides all UCS parameters. On an impact printer. 6. 4. 7. Font list in the library member specified by an OUTPUT JCL PAGEDEF parameter. If it is not a default image. the PSF uses the following parameters. 2. Also. the system checks the UCS image in the printer’s buffer. in override order. JES uses it. an installation can design character sets to meet special needs and assign a unique code to them. See “PAGEDEF Parameter” on page 22-63 for more information. 3. the UCS parameter on a sysout DD statement overrides an OUTPUT JCL UCS parameter. 3211. Overrides For printing on a printer with the UCS feature. Defaults If you do not code the UCS parameter. and RKP. OUTPUT JCL UCS parameter. For printing on a 3800. Relationship to Other Parameters Do not code the following DD parameters with the UCS parameter. For a data set scheduled to the Print Services Facility (PSF). 3203 Model 5. RESERVE. Model N1 Note: Where three values exist (for the 1403. 5. Font list on the PAGEDEF parameter in the PSF cataloged procedure. * AMP DATA DDNAME DYNAM KEYOFF PROTECT QNAME Do not code the UCS parameter with the DCB subparameters CYLOFL. DD CHARS parameter.DD: UCS Table 12-2. if it is a default image. INTVL. if the chain or train does not contain a valid character set. Special Character Sets for the 1403. DD UCS parameter. Follow installation procedures for using character sets. JES asks the operator to specify a character set and to mount the corresponding chain or train. Not all of these character sets may be available at your installation. JES installation default for the device. JES selects the set corresponding to the device on which the data set is printed. JES loads the UCS image that is the installation default specified at JES initialization. to select the font list: 1. and 3203 Model 5 printers). code any one of them. 12-202 z/OS V1R3. and 3211 Printers (continued) 1403 YN 3203 Model 5 3211 Characteristics High-speed preferred alphanumeric character set for 1403.

for example. v A certain type or group of devices. and the installation may provide user-designed special character sets. the DD statement requests the device for output class G. you do not need to specify UNIT. Because VERIFY is coded. v The same device as another data set. IBM provides standard special character sets. the DD statement requests a 1403 Printer. Purpose Use the UNIT parameter to ask the system to place the data set on: v A specific device. the system loads the UCS image for code PN. SYS1. DD Statement 12-203 . Chapter 12.IMAGELIB must contain an image of the character set. UNIT Parameter Parameter Type Keyword. Also with SMS. the system ignores the UCS parameter. Example 2 //DD2 DD SYSOUT=G. The UCS parameter requests the chain or train for special character set code YN. If the device is a 3800. The UNIT parameter can also tell the system how many devices to assign and request that the system defer mounting the volume until the data set is opened.VERIFY) In this example.UCS=(YN. If the device is a printer with the UCS feature. Examples of the UCS Parameter Example 1 //DD1 DD UNIT=1403. Otherwise.. the system will display the character set image on the printer before the data set is printed. the system asks the operator to mount the chain or train for PN.UCS=PN In this example. If the device is an impact printer. if it is not already mounted. for a non-SMS-managed data set. thus bypassing JES sysout processing. Use the STORCLAS parameter (described on page 12-189) or let an installation-written automatic class selection (ACS) routine select a storage class for the data set. UNIT=00E. the system uses the UCS subparameter to select the character-arrangement table. Check with your storage administrator.DD: UCS The FOLD and VERIFY subparameters are meaningful only when you specify a printing device directly on a DD statement. you do not need to use the UNIT parameter to specify a device for an SMS-managed data set. if your storage administrator has set a system default unit under SMS. and the chain or train for the character set must be available. optional Note: With SMS. Using Special Character Sets To use a special character set.

do not enclose it in apostrophes. For a 3480 Magnetic Tape Subsystem in compatibility mode.. SMS ignores it. code UNIT=3400-9 or a group-name. Subparameter Definition device-number Identifies a specific device by a 3-digit or 4-digit hexadecimal number. The installation must have assigned the name to the device(s) during system initialization or IBM must have assigned the name. UNIT=3390. ] [device-type [group-name {UNIT=AFF=ddname [. for a permanently mounted direct access device. However. code a comma to indicate the omission. SMS ignores it.0 MVS JCL Reference . the JES3 //*MAIN statement must contain a SYSTEM parameter. SMS ignores a device number. UNIT=3400-5. If you omit unit-count or P but code DEFER.P ] [/dddd ] [. the job must be delayed or canceled. When you specify a device number. if any DD UNIT parameter in a job specifies a device-number for a device that is JES3-managed or jointly JES3/MVS managed. for example. UNIT=(3490. the system can assign only that specific device. if specified for SMS-managed DASD. In a JES3 system. If you specify the group-name subparameter. When a device-type name contains a hyphen. A 3-digit number can be specified with or without a slash. Obtain the list of device types you can specify from your installation. one device is assigned to the data set. specifying a device type (UNIT=3390) and a volume serial number in the VOLUME=SER parameter has the same result as specifying a device number in the UNIT parameter. such as a 3390 Direct Access Storage. Precede a 4-digit number with a slash (/). The group-name is 1 through 8 alphanumeric characters. 12-204 z/OS V1R3. If the device is already being used. device-type Requests a device by its generic name.unit-count] [/ddd ] [. For example.DEFER]) } } v You can omit the parentheses if you code only the first subparameter. If you specify the device-type subparameter. For example.DEFER). Attention: Specify a device number only when necessary.DD: UNIT Syntax {UNIT=([ddd ] [. which is an IBM-supplied name that identifies a device by its machine type and model. v All of the subparameters are positional. group-name Requests a group of devices by a symbolic name.

DD Statement 12-205 . and 3490 Magnetic Tape Subsystems. If a group consists of only one device. Allocation from Groups: The system assigns a device from the group. If you also specify P (for parallel mount) in the UNIT parameter. use SYS3480R when you want to read 3480-formatted data sets and use SYS348XR when you want to read 3480 XF-formatted data sets. ″Unit-count″ is a decimal number from 1 through 59.or 3480 XF-formatted data sets. the system allocates additional devices of the same type as the original devices. SYS3480R contains 3480. SYSALLDA: IBM assigned group-names include SYSALLDA. SYS348XR contains 3480X and 3490 Magnetic Tape Subsystems. 3480X. Unit Count for Received or VOLUME=REF Data Sets: The system assigns one device when the DD statement receives a passed data set or refers in a Chapter 12. SYS3480R and SYS348XR: SYS3480R and SYS348XR are IBM-assigned group names. Note: A group name is called an esoteric name in Hardware Configuration Definition (HCD) terminology. For example.. if GPDA contains 3380 Disk Storage and 3390 Direct Access Storage devices.DD: UNIT Group Names: A group-name can identify a single device or a group of devices. unit-count Specifies the number of devices for the data set. the system assigns that device. the system uses the unit-count subparameter to allocate the specified number of system-managed or non-system-managed units. the system assigns an additional device. a request for two units would be allocated to two 3380s or to two 3390s. However. Specifically. Note: LABEL=(n. and for SMS-managed DASD. A group can consist of devices of the same or different types. if two DD statements in a step request the same volume and either DD statement requests any other volume(s). Extending Data Set: If a data set that was created using the group-name subparameter is to be extended. For example. the additional devices may not necessarily be from the same group.. the system uses the highest of the following numbers to determine how many devices and volumes to allocate: v unit-count specified in the UNIT parameter v volume-count specified in the VOLUME parameter v number of volume serial numbers implicitly or explicitly specified You may receive more devices than the unit-count requests if you specify VOLUME=REF or a permanently resident or reserved volume. If the group consists of more than one device type. For tapes. Use these group names to override the device type eligibility retrieved by the system when referencing existing 3480. And. which contains all direct access devices defined to the system. the units requested are allocated from the same device type. Number of Devices Allocated: The system uses the unit-count to determine how many devices to allocate.IN) is the system-managed tape library equivalent of either UNIT=SYS3480R or UNIT=SYS348XR. a group can contain both direct access and tape devices.

Only when the device is a communication device can the unit count be higher than 1. If you specify the DEFER subparameter for system-managed tape libraries. Restrictions on DEFER: Do not code DEFER: v For a new data set on direct access. Under certain conditions the system ignores unit affinity.0 MVS JCL Reference . the system allocates both requests to tape devices. This request is called unit affinity. See z/OS MVS JCL User’s Guide and z/OS HCD Planning for information about device eligibility and unit affinity. If coded. request that an existing data set be assigned to the same device(s) as another existing data set. DEFER when Data Set is Never Opened: If you request deferred mounting of a volume and the data set on that volume is never opened by the processing program. the system attempts to honor it. If the referenced data set can be allocated to either tape or DASD. where ″ddname″ is the ddname of an earlier DD statement in the same step. v On a SYSCKEOV DD statement. The system ignores DEFER. AFF=ddname Requests that the system allocate different data sets residing on different. Code a unit-count subparameter if the data set needs more than one device. Unit Count when Device Number Specified: When the first subparameter requests a specific device. Thus. If you specify the UNIT=AFF subparameter for system-managed DASD. UNIT=AFF=ddname may not be honored. the system terminates the job.DD: UNIT VOLUME=REF subparameter to a cataloged data set or earlier DD statement for volume and unit information. the system ignores it. In a JES3 environment. the volume is never mounted during the job step. whichever is higher. This restriction applies only to non-SMS-managed DASD. See z/OS MVS JCL User’s Guide for more information. Restrictions on UNIT=AFF: Do not code UNIT=AFF=ddname: v With DISP=NEW if the data set referenced in the AFF subparameter resides on a direct access device. the system ignores it. the unit count must be 1 or omitted. DEFER must be specified or implied for all DD statements that reference the volume. If you specify the UNIT=AFF subparameter for system-managed tape libraries. To defer mounting. If you specify the DEFER subparameter for system-managed DASD. the system honors it. the system honors it. DEFER Asks the system to assign the data set to device(s) but requests that the volume(s) not be mounted until the data set is opened. the system ignores it. all volumes for the data set are mounted in parallel. removable volumes to the same device during execution of the step. 12-206 z/OS V1R3. If you specify the P subparameter for system-managed DASD. P Asks the system to allocate the same number of devices as requested in the VOLUME volume-count or SER subparameter. If you specify the P subparameter for system-managed tape libraries. Use unit affinity to reduce the number of devices used in a job step.

Relationship of the UNIT Parameter to Other Parameters Do not code the following DD parameters with the UNIT parameter. attempting to write 3480 data to a 3490 drive. * DATA DDNAME DYNAM QNAME Do not code the UNIT DEFER subparameter on a SYSCKEOV DD statement. You can mount 3480-formatted or 3480X-formatted (18-track formatted) tape volumes. Do not also specify DISP=OLD or DISP=MOD.DD: UNIT v On a DD * or DD DATA statement or on a DD statement containing a SUBSYS parameter. v A VOLUME=REF=ddname reference to an earlier DD statement. 18-track or 36-track read). v With the STORCLAS parameter. see the text about the relationship of the UNIT and VOLUME parameters for non-SMS-managed data sets in z/OS MVS JCL User’s Guide. v With an affinity specification to an earlier DD statement that requests SYS3480R or SYS348XR on the group-name subparameter.. v The volume(s) for a passed data set. DD Statement 12-207 . If you have 3490 Magnetic Tape Subsystem models A10 and A20 defined to your system and you use one of the IBM-generated group names SYS3480R or SYS348XR. The system ignores the UNIT=AFF and defaults the device to SYSALLDA. Note: LABEL=(n. v The catalog for a cataloged data set. that are not extended.. Volume affinity exists when two DD statements both reference a data set on the same volume. The system also obtains device information when the system obtains volume serial information from: v A VOLUME=REF=dsname reference to an earlier data set. the SYSOUT parameter overrides the UNIT parameter. However. then the system allocates from the devices contained in 3350A. otherwise the system ignores the overriding device information. For example. Overrides If you code SYSOUT and UNIT on the same statement. Chapter 12. and the specified unit subparameter is 3350A (a subset of 3350). will fail during OPEN processing with ABEND 813-04 accompanied by message IEC149I. v When the DD statement referenced in the AFF subparameter contains FREE=CLOSE. on a 3490 tape device (36-track write. the system overrides the device type retrieved from the catalog with a device from the esoteric device group.IN) is the system-managed tape library equivalent of either UNIT=SYS3480R or UNIT=SYS348XR. or 3490 data to a 3480 drive. For more about how the system uses device information it retrieves from the catalog. if the retrieved unit grouping is 3350. unless volume affinity also exists. you can override the retrieved device information if the device you specify is a subset of the retrieved device information.

DISP=SHR DD3 requests unit affinity to DD1. Example 3 //DD2 DD DSNAME=X.UNIT=AFF=DD1 DSNAME=B. such as a printer or telecommunications device.UNIT=(.KEEP). See also ″Restrictions on UNIT=AFF. the system treats DD3 as a dummy statement.DISP=MOD. DD statement DDZ requests the same two devices as DDX.DISP=OLD. Examples of the UNIT Parameter Example 1 //STEP2 EXEC PGM=POINT //DDX DD DSNAME=EST. Note that the operator will have to change volumes on the two 3480 devices during execution of the job step. the system treats the DD statement containing UNIT=AFF as a DD DUMMY statement.DISP=(. The following example illustrates a case where the system treats the DD statement containing the UNIT=AFF as a DD DUMMY statement: //STEP //DD1 //DD2 //DD3 //DD5 EXEC DD DD DD DD PGM=TKM DDNAME=DD5 DSNAME=A. VOLUME=SER=13230.UNIT=AFF=DDX DD statement DDX requests two 3480 tape devices.VOLUME=SER=(42569.0 MVS JCL Reference . that does not involve a data set.2) This DD statement defines a cataloged data set and requests that the system assign two devices to the data set.42570). The system obtains the device type from the catalog. // VOLUME=SER=(40653. Because DD1 is not completely defined.DISP=OLD. Example 4 //DD3 // DD DSNAME=COLLECT.Z.Y. Example 2 //DD1 // DD DSNAME=AAG3.DD: UNIT To allocate a device.UNIT=(3490. Although DD1 occurs earlier in the job step than DD3.DISP=OLD.2) //DDY DD DSNAME=ERAS. // UNIT=(3480.″ Location in the JCL When a DD statement contains a UNIT=AFF=ddname parameter. do not code the DISP parameter. otherwise. VOLUME=SER=1095..DISP=SHR. DD statement DDY requests one 3480 tape device.DISP=OLD. the DD statement referenced in the AFF subparameter must be defined earlier in the job step.DISP=OLD DSNAME=C. it refers to DD5 that is located after DD3.UNIT=3400-5 This DD statement defines a new data set and requests that the system assign any 3420 Magnetic Tape Unit that can operate in 6250 BPI NRZI nine-track format.UNIT=3480 //DDZ DD DSNAME=RECK.DEFER) 12-208 z/OS V1R3.13262).

DSN=L. DD22 is the referencing DD. SMS-managed DASD (redirected using SMS ACS routines). The system will..DD: UNIT This DD statement defines an existing data set that resides on a tape volume and requests that the system assign a 3490 tape device. .DISP=OLD. and the system is unable to obtain a unit from the primary DD in the unit affinity chain.UNIT=3480. therefore. – Data set M is not to be redirected and is. defining a 3490 as the default unit-affinity-ignored unit name. the system cannot honor the unit affinity for DD22 which is intended to go to tape.DISP=OLD. The UNIT parameter. the system is not able to use the JCL for DD21 as a source of unit information.UNIT=AFF=DD21 In STEP1. DD21. DSN=L... SD3. In STEP2.. DD Statement 12-209 . Because data set L is on SMS-managed DASD. however.. overrides the catalog device type. The system is not able to rely on the unit information in the catalog for data set L.... the system retrieves the volume and device type from the catalog. Example 6 This example shows the use of the ALLOCxx UNITAFF default... because the catalog reflects a DASD unit (as a result of being redirected). v The SMS ACS routines are defined so that: – Data set L is to be redirected from tape to an SMS-managed DASD volume. DD11.. SMS-managed DASD..... which requests unit affinity to DD21.. the referenced DD is an SMS-managed request and the referencing DD is a NEW non-SMS-managed request.UNIT=237 For this data set. DD21 is both the referenced DD (referenced by the UNIT=AFF on DD22) and the primary DD.. therefore.. This example assumes the following environment: v UNITAFF(3490) was specified in parmlib member ALLOC05.. device 237 must be the same type as the device stated in the catalog.DISP=(NEW). the volume will not be mounted until the data set is opened. Because DEFER is coded. In STEP2. Example 5 //STEPA DD DSNAME=FALL. still intended to go to a non-SMS managed tape volume.. the system must determine a unit to be used for DD22. use the unit-affinity-ignored unit name of 3490 for DD22.. data set L is created and cataloged on SD3. Chapter 12..CATLG)... Because data set L was created in a prior step and there is no unit specified on DD21. This default is used when unit affinity is ignored.. With the unit affinity ignored. by specifying device 237. . DSN=M. data set L is an existing data set and is cataloged on SD3.DISP=(NEW. //JOB2 //STEP1 //DD11 //STEP2 //DD21 //DD22 JOB EXEC DD EXEC DD DD ..

data sets on a system-managed tape volume are distinguished from system-managed DASD data sets.DD: VOLUME VOLUME Parameter Parameter Type Keyword. A nonspecific volume request is a DD statement for a new data set that can be assigned to any volume or volumes. Check with your storage administrator to determine whether a default unit name has been specified. To make a nonspecific volume request for a new data set. the number of volumes required. v Code a VOLUME parameter but omit a SER or REF subparameter. 12-210 z/OS V1R3. When necessary. If all of the volumes do not reside in the same tape library. the installation can enter the volumes through the DFSMS installation exit. CBRUXVNL. In this case. v If the storage administrator has specified a system default unit name and you do not code a UNIT name for non-system-managed data sets. With SMS. Purpose Use the VOLUME parameter to identify the volume or volumes on which a data set resides or will reside. v You do not need to use the VOLUME parameter to specify volumes for new data sets. see z/OS MVS JCL User’s Guide for recommendations and examples. Otherwise. See the DATACLAS parameter described on page 12-50 and the STORCLAS parameter described on page 12-189. v You cannot make a specific volume reference to a scratch volume. you do not need to code the VOLUME parameter.0 MVS JCL Reference . v You cannot override the volume count for an existing system-managed DASD data set (but you can specify a volume count when you create a new system-managed DASD data set). consider the following: v All volumes in a multi-volume data set should reside in the same system-managed tape library and must belong to the same tape storage group. then the system uses the volumes associated with the default unit name. To cause multiple data sets to be stacked on the same volume. You can request: v A private volume v Retention of the volume v A specific volume by serial number v The same volume that another data set uses You can also specify which volume of a multivolume data set is to be processed first and. the term system-managed data sets refers to both data sets on a system-managed tape volume and system-managed DASD data sets. optional Terminology Data sets on system-managed tape volumes exhibit both SMS and non-SMS characteristics. either: v Omit the VOLUME parameter. for an output data set.

] [.stepname.DD: VOLUME Syntax {VOLUME} = ([PRIVATE] [. ] [SER=serial-number ] [SER=(serial-number[.] [REF=dsname ] [REF=*. Null REF Subparameter: The REF subparameter of the VOLUME parameter can have a null value only when coded on a DD that either overrides a DD in a procedure or is added to a procedure. DD Statement 12-211 . Chapter 12. Null Positional Subparameters: Null positions in the VOLUME=SER parameter are invalid.volume-sequence-number] [.ddname ] [REF=*.stepname.. VOLUME=PRIVATE or VOLUME=SER=222001 or VOLUME=REF=DS1.RETAIN] [.ddname ] Single Subparameter: You can omit the parentheses if you code only PRIVATE or only a keyword subparameter.serial-number]..volume-count] {VOL } [.)] [.ddname ] [REF=*.procstepname. For example.

3. RETAIN For a private tape volume.222002.3. is a keyword subparameter and must follow all positional subparameters.. When the dsname in the REF subparameter contains special characters. at least one other subparameter precedes it.222-02. For example. RETAIN requests that this volume is not to be demounted or rewound after the data set is closed or at the end of the step. other than the periods used in a qualified name.2.stepname.3. VOLUME=SER=(222001.222003)). For a public tape volume. unless RETAIN is also coded or the DD DISP parameter specifies PASS.RETAIN. and VOLUME=(. VOLUME=REF='DS/284'.SER=(222001. v Code a comma when the volume count is omitted.RETAIN. RETAIN requests that this volume is to be retained at the device if it is demounted during the job.SER=(222001.222003))..ddname) Single SER Subparameter: You can omit the parentheses in the SER subparameter if you code only one serial number.0 MVS JCL Reference . v Code a comma when RETAIN is omitted and the volume sequence number and volume count subparameters follow.222003)).2. VOLUME=(.SER=(222001.3. VOLUME=SER=222001.2. v Code a comma when the volume sequence number is omitted and the volume count subparameter follows.222002.2. Special Characters: When a serial number in the SER subparameter contains special characters.222003)).222002. code a comma before RETAIN. VOLUME=(PRIVATE... For example. and a keyword subparameter follows. and if PRIVATE is also omitted. For example.DD: VOLUME Positional Subparameters: The first four subparameters are positional. 12-212 z/OS V1R3. such as in a VOLUME=SER subparameter. For example. VOLUME=(. For example.222003))..SER=(222001.SER=(222001. the volume is to be demounted after the data set is closed. VOLUME=(. enclose it in apostrophes.SER=(222001. v If tape.222002.222002. the volume is to be demounted after the data set is closed.222003)).SER=(222001. The last subparameter.3.222003)).222002.RETAIN. Code each apostrophe that is part of the serial number or data set name as two consecutive apostrophes. v If a demountable direct access volume. For example. other than hyphens.222002. SER or REF. and VOLUME=(. enclose it in apostrophes.SER=(222001. and VOLUME=(.222003)).. Subparameter Definition PRIVATE Requests a private volume.222002.'222/03').. VOLUME=SER='O''HARE' or VOLUME=REF='DS''371'.. VOLUME=(.. and VOLUME=(PRIVATE.. Private means that: v The system is not to allocate an output data set to the volume unless the volume is specifically requested. For example.3.RETAIN.2.REF=*. Code a comma to indicate an omitted positional subparameter as follows: v If you omit PRIVATE and code RETAIN. For example.

If you omit the volume count or if you specify 1 through 5. for unlabeled tapes. the first volume is identified as 1. Either can occur when the device on which the volume is mounted is not allocated to the job step that specified RETAIN or. Volume Count for Tape Data Sets: Code a volume count when a new data set will reside on 6 or more volumes. Volume Count and Serial Numbers: When the volume count is greater than: v The number of volume serials coded in the SER subparameter v The number of volume serials the system retrieved from the catalog v The number of volume serials the system retrieved from VOL=REF v The number of volume serials the system retrieved from a passed data set. it will request the operator to remount the volume on an available device of the appropriate type. if RETAIN is coded for a tape data set on a JES3-managed device and the tape volume is to be shared with a later step. JES3 ignores the parameter when issuing KEEP/RETAIN messages and when performing unallocation at the end of the job. the system allows 5 plus a multiple of 15 volumes. otherwise. the system allows up to five volumes.DD: VOLUME RETAIN Support: RETAIN is supported only for tape volumes managed by the basic control program and by JES2. However. See the unit-count subparameter description on page 12-205 for further information. If coded on a DD statement for a tape data set on a JES3-managed device. The total volume count for all DD statements in one job step cannot exceed 4095. However. Demounting Despite RETAIN: Coding RETAIN does not ensure that the operator will not unload the volume or that the system will not demount it for another job step allocation. RETAIN has no effect on the handling of direct access volumes. volume-sequence-number Identifies the volume of an existing multivolume data set to be used to begin processing the data set. If the system does demount a volume for which RETAIN was requested. When the system reaches the next step requiring that volume. the job fails. if you also specify P (for parallel mount) in the UNIT parameter. The volume sequence number is a decimal number from 1 through 255. DD Statement 12-213 . the system allows 20 volumes. the system ignores the volume sequence number. it will do so by issuing message IEF234E R (retain) for that volume. If the volume sequence number is not specified the system will process the first volume. if you specify 6 through 20. JES3 designates the volume as retained. the system might use the value specified for the volume count to determine how many devices and volumes to allocate. The volume sequence number must be less than or equal to the number of volumes on which the data set exists. The volume count is a decimal number from 1 through 255 for a tape data set and from 1 through 59 for a DASD data set. volume-count Specifies the maximum number of volumes that an output data set requires. when the volume requires verification. For new data sets. Chapter 12. Note: The system uses the unit count to determine how many devices to allocate. if you specify a count greater than 20.

) Identifies by serial number the volume(s) on which the data set resides or will reside. Do not code a volume serial number as MIGRAT. a volume serial number may be unrecognizable if you code certain special characters.serial-number]. the system will pass the volume count to subsequent receiving steps within the job. Volume Count for System-Managed DASD Data Sets: You cannot specify a volume count for an existing system-managed DASD data set. If you do not code a volume count and volume serial number. national ($.. Do not code a volume serial number as SCRTCH. For more information about the number of devices allocated. the system ignores the volume count. which is used by the Hierarchical Storage Manager DFSMShsm for migrated data sets. Coding UNIT=AFF in the receiving step’s DD will result in the optimum number of devices being allocated to the receiving DD. public volume on a direct access device. the system ignores the volume count and allocates the number of volumes in the UNIT unit count subparameter. other than hyphens. If the number is shorter than 6 characters. refer to the z/OS MVS JCL User’s Guide. You can code a maximum of 255 volume serial numbers on a DD statement. If a data set may need more volumes than the number of volume serials coded. Each volume must have a unique volume serial number. these are used in messages to ask the operator to mount a volume. Do not specify duplicate volume serial numbers in a SER subparameter. enclose a serial number that contains special characters. This may cause the system to allocate more devices than expected to the receiving DD. the system can extend an existing cataloged data set that resides on a removable volume up to 20 volumes. When using some typewriter heads or printer chains. you can override the volume count defined in the data class by using the volume-count subparameter. If the volume count is smaller than the number of volume serials. or Lnnnnn (L with five numbers). specify a volume count equal to the total number of volumes that might be used. @). A volume serial number is 1 through 6 alphanumeric. If the request is for a nonspecific.. #. private volume. in apostrophes. it is padded with trailing blanks.) When you create a new system-managed DASD data set. Volume Count for System-Managed Tape Data Sets: If you specify a volume count and DISP=PASS on a DD statement. Requesting more volumes in the volume count will make sure that the data set can be written on more volumes if it exceeds the requested volumes. the system will ignore it. the system treats it like a specific request if the volume count is more than one and allocates the number of volumes in the volume count.0 MVS JCL Reference .DD: VOLUME the system assigns other volumes to the remaining devices. however. SER=serial-number SER=(serial-number[. 12-214 z/OS V1R3. or special characters. PRIVAT. (If you do. Volume Count for Nonspecific Requests: If the request is for a nonspecific. regardless of whether it is a tape or disk volume.

In particular it does not obtain the volume sequence number. or a member name of a non-GDG data set. If GUARANTEED_SPACE=YES is not in effect. When dsname names a passed data set. the request will fail. such as a 3390 Direct Access Storage.stepname. the passed data set information is no longer available. If there is no SMS-managed data set with the specified name. even if that is different from the volume specified. In this case. If there is no data set with the specified name on the volume specified. If it is unable to do so. code the SER subparameter only if the storage administrator has specified GUARANTEED_SPACE=YES in the storage class of the data set. SMS uses the volumes you explicitly specify. the request will fail. v If you specify a non-SMS managed volume serial number: the system will allocate the data set on the volume specified. v If you do not specify the volume information. REF=dsname REF=*. dsname Names a cataloged or passed data set. share the same data set name: v If you specify the non-SMS-managed volume. one that is SMS-managed and one that is not.DD: VOLUME For a permanently mounted direct access device. SMS ignores any volume serial numbers you specify for new SMS-managed data sets. When two data sets. The dsname cannot be a generation data group (GDG) base name. specifying a volume serial number and UNIT=3390 has the same result as specifying a device number in the UNIT parameter. (After a passed data set is received. or data set sequence number. DD Statement 12-215 . volume count. Chapter 12. The volume serial numbers must be assigned to the same storage group.stepname. Note: VOL=REF obtains ONLY the volume serial numbers from the referenced data set or earlier DD statement. label type. the allocation fails. The system assigns this data set to the same volumes containing the cataloged or passed data set. v If you specify an SMS-managed volume serial number: the system will find and allocate the data set to the volume on which it resides.ddname REF=*. For new SMS-managed data sets: For an SMS-managed data set. a GDG relative generation member.) The dsname can be an alias name or a catalog name. regardless of whether there is a cataloged or SMS-managed data set of the same name elsewhere. For existing data sets: v If you do not specify a volume serial number and you specify an SMS-managed or cataloged data set: the system will allocate the data set to the volume on which it resides. the system will allocate the non-SMS-managed data set.ddname Tells the system to obtain volume serial numbers from another data set or an earlier DD statement. or you specify an SMSmanaged volume.procstepname.ddname REF=*. the reference must appear on a DD statement before the receiving DD statement. the system will allocate the SMS-managed data set.

If the current job step extends the referenced data set to more volumes. ddname.procstepname. a data set that existed prior to the current job step. always code the DCB DEN subparameter or the DCB TRTCH subparameter on a DD statement that you plan to reference. | | | | | | | | | | | | | | | | | | | | | | | | | | References to Multivolume Tape Data Sets: When REF refers to a data set residing on more than one tape volume. If the referenced data set already exists and has volume serial numbers explicitly specified. then the last listed volume serial is used even if the earlier data set actually exists on or is written to fewer volumes. For a NEW tape data set the system allocates only the last volume of a referenced multivolume tape data set.stepname. the new volume information is available to the referencing DD statement. or adds or extends an earlier data set so that the referenced data set resides on a later volume. in an earlier step. *. procstepname is the name of the procedure step that contains the DD statement. the system might allocate a device for which the referring data set is not eligible. in the same job. v The data set that is referenced (directly or through a chain of references) is a new data set requested with specific volume serial numbers. stepname. Stepname is the name of the job step that calls the procedure.0 MVS JCL Reference . or adds or extends an earlier data set so that the referenced data set resides on a later volume. Thus. enclose it in apostrophes.stepname.ddname Asks the system to obtain the volume serial numbers from DD statement. the new volume information is available to the referencing DD statement ONLY when the referenced data set is a new data set with no volume serial numbers explicitly or implicitly specified. the system allocates a device that has the widest range of eligibility to meet both DD statement requests. other than the periods used in a qualified name. *. the system allocates all volumes to the referencing DD when it represents an OLD data set. *. If an earlier job step extends the referenced data set to more volumes. that is.ddname Asks the system to obtain the volume serial numbers from a DD statement in a cataloged or in-stream procedure. In other words. or adds or extends an earlier data set so that the referenced data set resides on a later volume. To prevent this problem for tape data sets. and ddname is the name of the DD statement.DD: VOLUME When the dsname contains special characters. which means only if the entire collection of data sets on the volumes was created in the current step. if the current job step extends the referenced data set to more volumes. Referenced Data Set Not Opened: When REF refers to a DD statement in a previous step and the data set was not opened. 12-216 z/OS V1R3.ddname Asks the system to obtain the volume serial numbers from earlier DD statement ddname in the same job step. the new volume information is not available to the referencing DD statement when either of the following conditions is true: v The data set that is referenced (directly or through a chain of references) existed before the start of the step containing the reference.

References to VSAM Data Sets: When REF refers to a multivolume VSAM data set. References to Non-SMS-Managed Data Sets: When REF refers to a non-SMS-managed data set. DD Statement 12-217 . SMS manages the new data set using the storage class of the referenced data set. the additional volume information is not available to the second or succeeding DD statements within the step. References to Multivolume Direct Access Data Sets: When REF refers to a data set that resides on more than one direct access volume. then the last listed volume serial is used even if the data set is written with fewer volumes. Two or more DD statements in the same step can request the same data set. v For references to data sets on SMS-managed media other than tape. If the ACS routine attempts to make the referencing data set SMS-managed. the same volume is allocated to it. if it is available. the allocation fails with message IGD304I. if the data set is extended to additional volumes in that step. However. and applies these rules: v If the reference is to a data set on one or more SMS-managed tape volumes. if the referenced data set is on DASD. the allocation of the referencing data set is likely to fail. This ensures the consistency for locate requests. then the two data sets must be assigned to the same storage group. If the automatic class selection (ACS) routine does not assign the same storage group to the referenced and referencing data sets. this new volume information is not available to the second DD statement. the ACS routine receives control and can do one of two things: v Allow the allocation to proceed as a non-SMS-managed data set. SMS fails the allocation with message IGD305I. If a second DD statement within the same step requests the same data set. If the ACS routine does not assign compatible types of storage groups to both data sets. the two data sets must be assigned to compatible types of storage groups. For example. If a DD statement that is requesting a new data set has a unit count and volume count greater than one but specifies no volume serial numbers. the system allocates all of the volumes. If this job step extends the data set to more volumes. allocating the referencing data set to be allocated on tape could result in potential locate request errors. References to DD Statements with UNIT Group Names: When REF refers to a DD statement containing a UNIT group-name subparameter.DD: VOLUME | | | If the referenced data set is new and has specific volume serials. one volume is allocated. the system allocates a device of the same type actually used for the referenced data set. the system allocates a device of the same type as the first device type used for the referenced VSAM data set. v Fail the allocation by exiting with a non-zero return code. the allocation fails with message IGD318I. but not necessarily a device in the referenced group-name. References to SMS-Managed Data Sets: When REF refers to an SMS-managed data set. Chapter 12. In either of these cases.

the data set for this DD statement is also assigned a dummy status. See the 3540 Programmer’s Reference. MVS manages the allocation. References to DUMMY Data Sets: If ddname refers to a DD DUMMY statement. the system also copies the LABEL label type subparameter from the referenced DD statement. Label Type Picked up from Referenced Statement: When REF is coded. the system also copies the LABEL label type subparameter from the referenced DD statement. processing of the data set begins with the volume indicated by the volume sequence number. For 3540 Diskette Input/Output Units The VOLUME=SER. BURST CHARS COPIES DDNAME DYNAM FLASH MODIFY QNAME SYSOUT Do not code VOLUME=REF with the STORCLAS parameter.DD: VOLUME Do Not Refer to In-Stream Data Sets: Do not refer to a DD *. The system ignores the reference and defaults the device name to SYSALLDA. Thus. VOLUME Parameter for Optical Readers For optical readers. instead of starting at the end of the data set on the last volume. code PRIVATE if you want JES3 to manage the allocation. and DSID parameters on a DD * or DD DATA statement are ignored except when they are detected by a diskette reader as a request for an associated data set. VOLUME Parameter in a JES3 System When you do not code a volume serial number. Otherwise. which is the group name for all direct access devices defined to the system. according to the MOD subparameter. The parameter can contain the following subparameters: 12-218 z/OS V1R3. DD DATA. if no volume serial number is specified. the data set is assigned to any volume or volumes. DCB=BUFNO. The nonspecific request is made through a VOLUME parameter that does not contain a SER or REF subparameter. Other DD Parameter Picked up from Referenced Statement When REF is coded. VOLUME Parameter for Nonspecific Volume Requests A nonspecific volume request can appear on a DD statement for a new data set. Overrides The volume sequence number overrides a DISP=MOD parameter. the system assumes VOLUME=SER=OCRINP. or DD SYSOUT statement. RETAIN is ignored in a JES3 system.0 MVS JCL Reference . Relationship to Other Parameters Do not code the following parameters with the VOLUME parameter.

serial numbers 96341 and 96342. The VOLUME volume count subparameter requests four volumes. then all volumes must be outside of any system-managed tape library. You can obtain the same space on the same volume in another way: instead of specifying the volume serial number and UNIT=3350.UNIT=(3400-5.UNIT=3350. if required. CBRUXVNL.RETAIN.4. Operator intervention is required to allow the system to allocate such a request to a private volume. DD Statement 12-219 .96342)) The DD statement requests an existing data set.. which is a permanently mounted volume on a particular 3350 Direct Access Storage.(10.SER=(96341. you can specify the device number of the particular 3350 device in the UNIT parameter. By omission of the VOLUME parameter.2). Since PRIVATE is coded. the installation can enter the volumes through the DFSMS installation exit. which resides on the direct access volume.DD: VOLUME VOLUME=(PRIVATE.. the system will not assign to the volume another data set for which a nonspecific volume request is made and will demount the volume at the end of the job. which resides on two volumes.DISP=(MOD. if more space is required. serial number 548863. VOLUME=SER=335006. (If all of the volumes do not reside in the same tape library.UNIT=SYSDA.DELETE). VOLUME=(. v Non-system-managed.) These volumes must also be part of the same SMS storage group. if the data set resides on multiple tape volumes that are: v System-managed. the system can assign a third and fourth volume.DISP=OLD. Thus. Example 4 //DD4 // DD DSNAME=NEWDASD. Example 5 Chapter 12. VOLUME=(PRIVATE. the statement makes a nonspecific volume request. Examples of the VOLUME Parameter Example 1 //DD1 // DD DSNAME=DATA3. Example 3 //DD3 DD DSNAME=QOUT.CATLG. multi-volume tape data set. VOLUME parameter for Specific Multi-Volume Tape Requests When allocating a specific.volume-count) Note: The use of PRIVATE on nonspecific requests eligible to permanently resident DASD devices is not recommended.SPACE=(CYL.UNIT=3400-5 The DD statement defines a data set that is created and deleted in the job step. Example 2 //DD2 // DD DSNAME=QUET.. then all volumes should reside in the same system-managed tape library and the same tape storage group.5)) This new data set is assigned to volume serial number 335006.KEEP).DISP=(. thereby asking the system to assign a suitable volume to the data set.SER=548863) The DD statement requests an existing data set.

333002. If the data set resides on fewer volumes than the number of volumes on which it is cataloged.DELETE).PGM.10)). DD statement NEXT then deletes the data set.DISP=(NEW..VOL=REF=*.TWO VOL SER NOS=333002 1. the following messages appear in the job log when the system deletes the data set: IEF285I IEF285I TEST. it will reside on fewer volumes.P) DD DSNAME=TEST.VOL=REF=*.STORCLAS=SCLAS02.DISP=(NEW.CATLG. Allocation also fails if the requested volumes aren’t in any of the possible storage groups for the data set.KEEP). DELETED Example 6 //SMSDS2 // DD DSNAME=MYDS2.CATLG.TWO.UNIT=(3330.DISP=SHR DD DSN=FIRST.DATASET. if the storage administrator has specified GUARANTEED_SPACE=YES in the storage class for DASD VOLUME=SER can be coded and the data set will reside on the specified volumes.SMS.SER=(333001. SPACE=(TRK.333002.TWO.224444) For new system-managed DASD data sets or data sets on a system-managed tape volume.DISP=(OLD. DD DSN=SECOND.) Installation-written automatic class selection (ACS) routines select the data class and management class..DD1 DD1 in STEP1 identifies the original SMS-managed data set OLD..DD: VOLUME //OUTDD // // //NEXT DD DSNAME=TEST.TWO VOL SER NOS=333001.333003. the system always gets the tape request specified with a specific volume serial. DELETED NOT DELETED UNCATALOGED If the data set resides on all specified volumes.DATASET in DD1.333003.SMS.(9. the following messages appear in the job log when the system deletes the data set: IEF285I IEF285I IEF283I IEF283I IEF283I IEF283I TEST.STEP1. DD2 in STEP1 and DD3 in STEP2 each create an SMS-managed data set using the attributes in the storage class associated with the original data set OLD.DATASET. the system uses the attributes in the storage class named SCLAS02 for the storage service level of the data set.TWO VOL SER NOS=333001. VOLUME=SER=(223344.333002. if space is not available on the volumes. the job step fails.DISP=(NEW. Example 7 //STEP1 //DD1 //DD2 //STEP2 //DD3 EXEC PGM=.DD1 EXEC PGM=. DD DSN=OLD.CATLG).3.DELETE). 12-220 z/OS V1R3. (However. For tape requests.TWO VOL SER NOS=333001. TEST.DISP=(NEW..333003. VOLUME=(..333003)). If the data set does not require three volumes.0 MVS JCL Reference .SMS.. TEST.DELETE) DD statement OUTDD creates a multivolume data set and catalogs it.. Also.

private libraries. code these ddnames only when you want the special data sets. The system searches the private catalog for data sets before it searches the master catalog or a private catalog associated with the first qualifier of a data set’s name. JOBCAT DD Statement Purpose Use the JOBCAT DD statement to define a private VSAM or integrated catalog facility user catalog for the duration of a job. You cannot specify CVOLs as JOBCAT. Access to a CVOL is possible only with a special CVOL pointer in the master catalog. References For more information about VSAM data sets. This chapter provides descriptions of these special statements. 2002 13-1 . Description Syntax //ddname DD keyword-parameter[. Special DD Statements Use special DD statements to specify private catalogs. © Copyright IBM Corp. [comments] Special ddnames The special data sets are identified by the following ddnames: JOBCAT JOBLIB STEPCAT STEPLIB SYSABEND SYSCHK SYSCKEOV SYSIN SYSMDUMP SYSUDUMP Except for SYSIN.Chapter 13. SMS only accesses SMS-managed data sets that are cataloged in a system catalog.. Do not use the JOBCAT DD statement in a job that references an SMS-managed data set. and data sets for storage dumps and checkpoints.. The system does not support the JOBCAT DD statement (or STEPCAT DD statement) for catalogs that have a unit control block (UCB) above the 16MB line. 1988.keyword-parameter]. see z/OS DFSMS: Using Data Sets.

Location in the JCL v Place the JOBCAT DD statement after the JOB statement and before the first EXEC statement. Relationship to Other Control Statements Concatenating Job Catalogs To specify more than one private catalog for a job: v Code a JOBCAT DD statement. Example of the JOBCAT DD Statement //EXAMPLE JOB //JOBLIB DD //JOBCAT DD // EXEC WILLIAMS. v Place a JOBLIB DD statement. if coded. JOBLIB DD Statement Purpose Use the JOBLIB DD statement to: v Create a private library. The JOBCAT DD statement follows the JOBLIB DD statement.DISP=SHR DSNAME=LYLE. | | | See also “Relationship between JOBLIB and Passed Data Sets” on page 13-5 for information about the relationship of the JOBCAT statement to the JOBLIB statement. Only if the system does not find the program in the private library. v Identify a private library that the system is to search for the program named in each EXEC statement PGM parameter in the job. Omit a ddname from these subsequent DD statements. [comments] {SHR} Parameters on JOBCAT DD Statements Do not specify any unit or volume information. 13-2 z/OS V1R3. Relationship to STEPCAT DD Statement A JOBCAT DD statement applies to any job step for which you do not specify a STEPCAT DD statement.DSNAME=private-catalog-name[.JOBCAT DD Syntax //JOBCAT DD DISP={OLD}. Do not specify FREE=CLOSE.DISP=SHR PGM=SCAN In this example. v Immediately follow this statement with DD statements that define other private catalogs. The system obtains the location of the private catalog from the master catalog.. does it search the system libraries. before a JOBCAT DD statement. the JOBCAT DD statement specifies a private catalog.MSGLEVEL=1 DSNAME=USER.. CLOSE is ignored.LIB.0 MVS JCL Reference .parameter].

v Code the DISP parameter. SHR indicates that the data set is old.JOBLIB DD A private library is a partitioned data set or partitioned data set extended on a direct access device. Note that you must code a disposition. The disposition subparameters should indicate what you want done with the private library after its use in the job. For example. code PASS or CATLG. Otherwise. the JOBLIB DD DISP specified CATLG. v Code the UNIT parameter. otherwise. v If the JOBLIB library is being created in the job.. but deleted at job termination. If you cataloged the library when you created it.parameter]. Chapter 13. This parameter is needed because the library is not actually cataloged until the first step completes execution. [comments] Parameters on JOBLIB DD Statements When Retrieving a Cataloged Library v Code the DSNAME parameter. The library must be allocated to a direct access device. Syntax //JOBLIB DD parameter[. Code CATLG as the disposition. supply unit and volume information in the first step by coding: VOLUME=REF=*. v Code the DISP parameter. if you intend to keep the library you are creating. the system assumes DELETE and deletes the library at the end of the first step. Specify space for the PDS directory. Special DD Statements 13-3 . Note: Do not use VSAM for a JOBLIB library. v Code the VOLUME parameter. allowing enough space for the entire library on one direct access volume. The DISP parameter must be DISP=(OLD.PASS). follow the library name with the name of the program being added to the library. v Code the SPACE parameter. Code PASS as the disposition. v Code a DISP parameter. When Retrieving a Library that is not Cataloged v Code the DSNAME parameter. Otherwise. v Code the status in the DISP parameter as MOD. The status subparameter must be OLD or SHR. v Code a VOLUME parameter.. unit and volume information should not be supplied for a cataloged library. When Adding Members to the Library v In the DSNAME parameter. user-written program. and the first step adds a member to it.JOBLIB. v Code the UNIT parameter. if you wish the library to be available throughout the job.PASS) or DISP=(SHR. unless a nonspecific request is to be made for any volume. do not code a disposition. v Do not code VOLUME or UNIT. Each member is an executable. but allows other jobs to use the library. The status is NEW. When Creating a Library v Code the DSNAME parameter to assign the library a name. DSNAME=LIBRARY(PROGRAM).

the system first searches the step library and then the system library for the requested program.JOBLIB DD v Do not code a SPACE parameter. the concatenated DD statements must immediately follow the JOBLIB DD statement. If you include a STEPLIB DD statement for a job step and a JOBLIB DD statement for the entire job.DISP=SHR For this particular job step. Overriding a JOBLIB If you want the system to ignore the JOBLIB for a particular job step and the step does not require another private library. CLOSE is ignored. define the system library on a STEPLIB DD statement. specify: //STEPLIB DD DSNAME=SYS1. Relationship to Other Control Statements Concatenating Job Libraries To specify more than one private library for a job: v Code a JOBLIB DD statement. EXEC Statement COND Parameter If COND=ONLY is specified on the EXEC statement of a job step and a JOBLIB DD statement is being used. as specified on the STEPLIB DD statement. and the system must search the catalog for the JOBLIB data set’s unit and volume information. Location in the JCL v The JOBLIB DD statement must immediately follow the JOB statement and any JES statements. Relationship of a JOBLIB to a STEPLIB Use a STEPLIB DD statement to define a private library for one job step in a job. the system will search SYS1. v If libraries are concatenated to the JOBLIB library. v Do not include a JOBLIB DD statement in an in-stream or cataloged procedure. The system ignores the job library for a step that has a STEPLIB DD statement.LINKLIB. 13-4 z/OS V1R3. Other Parameters Code the DCB parameter if complete data control block information is not contained in the data set label.LINKLIB. For example. The system searches the libraries for the program in the same order as the DD statements. Do not specify FREE=CLOSE. v Immediately follow this statement with DD statements that define other private libraries. There must be no intervening EXEC or other DD statements between the JOBLIB DD statement and the JOB statement. Omit a ddname from these subsequent DD statements.0 MVS JCL Reference . for the program requested in the EXEC statement. The JOBLIB DD statement requests space for the entire library. The system will not search the JOBLIB. the system does not pass the unit and volume information to any succeeding steps.

cataloged in UCAT. cataloged in UCAT.STEPCATY ------------user_library(Y) ---volserY userpgm1(Y) userpgm2(Y) userpgm3(Y) user_dataset(Y) --->volserY Finally.JOBCAT v one version on volserX.STEPCATX v one version on volserY.STEPCATX ------------user_library(X) --->volserX userpgm1(X) userpgm2(X) userpgm3(X) user_dataset(X) --->volserX UCAT. If the data set was not passed from a previous step. assume the following JCL is coded: //JOBLIB DD DSN=user_library. this would look like this: UCAT.JOBLIB DD | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Relationship between JOBLIB and Passed Data Sets When you request an existing data set by its data set name and you do not supply a volume serial number. If so it will use the information from the PDI to locate the data set without looking in any catalogs.DISP=SHR //* //STEP1 EXEC PGM=userpgm1 Chapter 13. cataloged in UCAT.DISP=SHR //JOBCAT DD DSN=UCAT. cataloged in UCAT. however. the system first checks in the Passed Data set Information table (PDI) to see if that data set was passed from a previous step.STEPCATY Assume also that each version of “user_library” contains a version of programs: v userpgm1 v userpgm2 v userpgm3 Pictorially.JOBCAT. when you code a STEPCAT DD statement along with a JOBLIB DD statement. For this example. cataloged in UCAT. assume that there are three different versions of data set “user_dataset”: v one version on volserJ. cataloged in UCAT. then the system will attempt to locate the data set name in a catalog.JOBCAT v one version on volserX. A non-obvious case exists.STEPCATX v one version on volserY. Special DD Statements 13-5 .JOBCAT ----------user_library(J) --->volserJ userpgm1(J) userpgm2(J) userpgm3(J) user_dataset(J) --->volserJ UCAT.STEPCATY and three different versions of data set “user_library”: v one version on volserJ.

Using the above JCL and cataloging and placement of data sets.STEPCATX.CLASS=C DSNAME=PRIVATE.DISP=SHR //DD1 DD DSN=user_dataset.PASS) //* //STEP3 EXEC PGM=userpgm3 //DD3 DD DSN=user_dataset. the user_dataset selected WOULD have been user_dataset(J) from volserJ. but userpgm2 would STILL have been userpgm2(X) from user_library(X) on volserX due to the implied PASS on JOBLIB.DISP=SHR //DD2 DD DSN=user_dataset. Examples of the JOBLIB DD Statement Example 1 //PAYROLL //JOBLIB //STEP1 //STEP2 //DD1 JOB DD EXEC EXEC DD JONES.LIB4.0 MVS JCL Reference .DISP=(OLD. here is what a user might expect to happen. but userpgm3 would STILL have been userpgm3(X) from user_library(X) on volserX due to the implied PASS on JOBLIB.DISP=(SHR. even if the JOBLIB data set name is in the STEPCAT catalog.JOBLIB.JOBLIB DD | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | //STEPCAT DD DSN=UCAT.PASS) //* //STEP2 EXEC PGM=userpgm2 //STEPCAT DD DSN=UCAT.DISP=(SHR. versus what actually does happen: STEP1 userpgm1 EXPECTED: userpgm1(X) from user_library(X) on volserX ACTUAL: userpgm1(X) from user_library(X) on volserX user_dataset EXPECTED: user_dataset(X) on volserX ACTUAL: user_dataset(X) on volserX STEP2 userpgm2 EXPECTED: userpgm2(Y) from ACTUAL: userpgm2(X) from user_dataset EXPECTED: user_datasetY on ACTUAL: user_datasetX on user_library(Y) on volserY user_library(X) on volserX volserY volserX v If PASS had not been coded on STEP1’s DD1.PASS) 13-6 z/OS V1R3. the system will never look there for it because it will first find the information in the PDI. Thus. the system allocates the JOBLIB data set for the first step of the job and then PASSes that information to all subsequent steps of the job. the user_dataset selected WOULD have been user_datasetY from volserY.DISP=(OLD.PASS) PGM=SCAN PGM=UPDATE DSNAME=*.DISP=SHR //* Because there is an implied PASS on all JOBLIB DD statements.STEPCATY. STEP3 userpgm3 EXPECTED: userpgm3(J) from user_library(J) on volserJ ACTUAL: userpgm3(X) from user_library(X) on volserX user_dataset EXPECTED: user_dataset(J) on volserJ ACTUAL: user_dataset(X) on volserX v If PASS had not been coded on STEP2’s DD2.

CLASS=L DD DSNAME=PRIV.DISP=MOD.(50. The system passes catalog information to subsequent job steps.LINKLIB.LIB12 GROUP31.DISP=(NEW. then in SYS1.JOBLIB DD The private library requested on the JOBLIB DD statement is cataloged.TIME=1440 DD DSNAME=KRG. The library is created in STEP1.VOLUME=REF=*. The system searches the private catalog for data sets before it searches the master catalog or a private catalog associated with the first qualifier of a data set’s name.DEPT58. therefore.LINKLIB for the program named DISC.CATLG).4)) EXEC PGM=DISC DD DSNAME=GROUP8. Example 3 //TYPE //JOBLIB // //STEP1 //DDA // //STEP2 JOB MSGLEVEL=(1.DISP=(OLD.PASS). when DD statement DDA defines the new member RATE for the library. Special DD Statements 13-7 . DISP=(OLD.SPACE=(CYL.PASS) DD DSNAME=GROUP31.LINKLIB. Example 4 //PAYROLL //JOBLIB // // // JOB BIRDSALL. The system searches the libraries for each program in this order: KRG. Chapter 13. unit and volume information is specified. DD statement DD1 refers to the private library requested in the JOBLIB DD statement.DISP=(OLD.JOBLIB. the system searches SYS1.DISP=(OLD.VOLUME=SER=34568 The three DD statements concatenate the three private libraries. DD statement DD1 refers to the private library requested in the JOBLIB DD statement.TEST PGMSLIB SYS1. The system searches for the programs SCAN and UPDATE first in PRIVATE.LIB12.DEPT58.UNIT=3350. UNIT=3350.LEVEL5(RATE). the JOBLIB DD statement contains all the parameters required to define the library.LINKLIB STEPCAT DD Statement Purpose Use the STEPCAT DD statement to define a private VSAM or integrated catalog facility user catalog for the duration of a job step. The system searches for the programs DAY and BENEFITS first in PRIV. VOLUME=REF=*.VOLUME=SER=148562.LEVEL5.1) DD DSNAME=GROUP8.3.PASS) The private library requested on the JOBLIB DD statement is not cataloged. Therefore. Example 2 //PAYROLL //JOBLIB // //STEP //STEP2 //DD1 JOB FOWLER. the system searches for the program RATE first in GROUP8.DISP=(OLD.PASS) DD DSNAME=PGMSLIB.LIB4.JOBLIB EXEC PGM=RATE The private library requested on the JOBLIB DD statement does not exist yet. In STEP2.JOBLIB. UNIT=3350.TEST.PASS). then in SYS1.LEVEL5.VOLUME=SER=D58PVL EXEC PGM=DAY EXEC PGM=BENEFITS DD DSNAME=*. therefore.

You cannot specify OS CVOLs as STEPCAT.parameter]. The system does not support the STEPCAT DD statement (or JOBCAT DD statement) for catalogs that have a unit control block (UCB) above the 16MB line. Relationship to Other Control Statements Concatenating Step Catalogs To specify more than one private catalog for a step: v Code a STEPCAT DD statement..STEPCAT DD Do not use the STEPCAT DD statement in a job step that references an SMS-managed data set.DSNAME=master-catalog-name | | | See also “Relationship between JOBLIB and Passed Data Sets” on page 13-5 for information about the relationship of the STEPCAT statement to the JOBLIB statement. Omit a ddname from these subsequent DD statements. Syntax //STEPCAT DD DISP={OLD}.0 MVS JCL Reference . v Immediately follow this statement with DD statements that define other private catalogs. Do not specify FREE=CLOSE. Access to an OS CVOL is possible only with a special CVOL pointer in the master catalog..DSNAME=private-catalog-name[. 13-8 z/OS V1R3. [comments] {SHR} Parameters on STEPCAT DD Statements Do not specify any unit or volume information. Location in the JCL Place a STEPCAT DD statement in any position among the DD statements for a step. The system obtains the location of the private catalog from the master catalog. code the following in the job step: //STEPCAT DD DISP=OLD. Example of the STEPCAT DD Statement // EXEC PROC=SNZ12 //STEPCAT DD DSNAME=BETTGER. Overriding a JOBCAT To override a JOBCAT private catalog with the master catalog for a particular job step.DISP=SHR The STEPCAT DD statement specifies a private catalog that the system uses for this job step only. CLOSE is ignored. SMS only accesses SMS-managed data sets that are cataloged in a system catalog. References For more information about VSAM data sets. see z/OS DFSMS: Using Data Sets.

STEPLIB.stepname. v Code the VOLUME parameter. Each member is an executable. code a DISP disposition subparameter of PASS when a step library is to be used by subsequent steps in the job. The disposition subparameters should indicate what you want done with the private library after its use in the job step.procstepname. v Code the DISP parameter. The disposition subparameters should indicate what you want done with the private library after its use in the job step.stepname. only then does the system search the system libraries.STEPLIB DD STEPLIB DD Statement Purpose Use the STEPLIB DD statement to: v Create a private library. If the system does not find the program in the private library.STEPLIB. Syntax //STEPLIB DD parameter[. v Code the UNIT parameter. The disposition subparameters should indicate what you want done with the private library after its use in the receiving step. If the step library is defined in a procedure. you can place a STEPLIB DD statement in an in-stream or cataloged procedure.. the backward reference must include the procedure step name: *. Also. In a receiving step: v Code in the DSNAME parameter either the name of the step library or a backward reference of the form *.. v Identify a private library that the system is to search for the program named in the EXEC statement PGM parameter. When Retrieving a Library Passed from a Previous Step In the passing job step. Special DD Statements 13-9 . Subsequent job steps in the same job may refer to or receive a private library defined on a STEPLIB DD statement. The status subparameter must be OLD or SHR. v Code the DISP parameter. The status subparameter must be OLD. [comments] Parameters on STEPLIB DD Statements When Retrieving a Cataloged Library v Code the DSNAME parameter. When Retrieving a Library that is Neither Cataloged Nor Passed v Code the DSNAME parameter. v Code the DISP parameter. The private library is a partitioned data set (PDS) or partitioned data set extended (PDSE) on a direct access device. v Do not code VOLUME or UNIT. The status subparameter must be OLD or SHR. Chapter 13. user-written program.parameter].

Otherwise. If the library is cataloged. code UNIT and VOLUME. The system will not search the JOBLIB. v Code the SPACE parameter. When Adding Members to the Library v In the DSNAME parameter. The status is NEW.LINKLIB.STEPLIB DD When Creating a Library v Code the DSNAME parameter to assign the library a name. The STEPLIB DD statement requests space for the entire library. DSNAME=LIBRARY(PROGRAM). do not code unit and volume information. the system assumes DELETE and deletes the library at the end of the step. otherwise. Code CATLG as the disposition. 13-10 z/OS V1R3. Otherwise. as specified on the STEPLIB DD statement. Omit a ddname from these subsequent DD statements. v Code the UNIT parameter. Note: Do not use VSAM for a STEPLIB library. allowing enough space for the entire library on one direct access volume. code PASS or CATLG. Relationship to Other Control Statements Concatenating Step Libraries To specify more than one private library for a step: v Code a STEPLIB DD statement. Note that you must code a disposition. The system searches the libraries for the program in the same order as the DD statements. CLOSE is ignored. for the program requested in the EXEC statement. Code PASS as the disposition.LINKLIB. For example. follow the library name with the name of the program being added to the library. specify: //STEPLIB DD DSNAME=SYS1. the system will first search SYS1. Overriding a JOBLIB If you want the system to ignore the JOBLIB for a particular job step and the step does not require another private library. v Do not code a SPACE parameter. if you intend to keep the library you are creating.0 MVS JCL Reference . v Code a DISP parameter. Other Parameters Code the DCB parameter if complete data control block information is not contained in the data set label. define the system library on a STEPLIB DD statement. unless a nonspecific request is to be made for any volume. Do not specify FREE=CLOSE. if you wish the library to be available to a following step. The library must be allocated to a direct access device. v Code a VOLUME parameter. v If the library is cataloged. v Immediately follow this statement with DD statements that define other private libraries. For example. do not code a disposition. v Code the status in the DISP parameter as MOD.DISP=SHR For this particular job step. Specify space for the PDS directory.

PASS).KEEP) PGM=TIL80 DSNAME=PRIV. LIBRARYP is passed to subsequent steps of this job. the system searches LIBRARYP for SNAP11.DISP=(OLD.PASS) EXEC PGM=SUM DD DSNAME=SYS1.KEEP) EXEC PGM=SHORE Chapter 13. then in SYS1. Since a JOBLIB DD statement is included. Special DD Statements 13-11 .STEPLIB DD Location in the JCL Place a STEPLIB DD statement in any position among the DD statements for a step.DEPT88. Relationship of a STEPLIB to a JOBLIB Use a JOBLIB DD statement to define a private library that the system is to use for an entire job.STEP2.LIB5 for the program SPKCH and PRIV.DISP=(OLD.GROUP4. If you include a JOBLIB DD statement for the job and a STEPLIB DD statement for an individual job step.PASS) EXEC PROC=SNZ12 EXEC PGM=SNAP10 DD DSNAME=LIBRARYP.DISP=(OLD.LIB5.DISP=(OLD.DISP=(OLD.LINKLIB. the concatenated DD statements must immediately follow the STEPLIB DD statement.MSGLEVEL=1 PROC=LAB14 PGM=SPKCH DSNAME=PRIV.KEEP).KEEP) The system searches LIBRARYP for program SNAP10. DISP=(OLD. the system searches for programs SNZ12 and A1530 first in LIB5.VOLUME=SER=55566 EXEC PGM=A1530 EXEC PGM=SNAP11 DD DSNAME=*.LIB12 for TIL80. If libraries are concatenated to the STEPLIB library. Examples of the STEPLIB DD Statement Example 1 //PAYROLL //STEP1 //STEP2 //STEPLIB //STEP3 //STEPLIB JOB EXEC EXEC DD EXEC DD BROWN.STEPLIB. Example 3 //PAYROLL //JOBLIB //STEP1 //STEPLIB //STEP2 //STEP3 //STEPLIB // // // //STEP4 JOB THORNTON. UNIT=3350.MSGLEVEL=1 DD DSNAME=LIB5.DISP=OLD EXEC PGM=VARY EXEC PGM=CALC DD DSNAME=PRIV.GROUP4.WORK.DISP=(OLD. The system ignores the JOBLIB library for that step.PASS) DD DSNAME=LIBRARYA. UNIT=3350.DISP=(OLD.DISP=(OLD. the system first searches the step library and then the system library for the program requested in the EXEC statement.GROUP4. The STEPLIB DD statement in STEP4 refers to the LIBRARYP library defined in STEP2.MSGLEVEL=1 DD DSNAME=LIB5.LIB12. The system catalogs both private libraries.LINKLIB. Example 2 //PAYROLL //JOBLIB //STEP1 //STEP2 //STEPLIB // //STEP3 //STEP4 //STEPLIB // JOB BAKER.KEEP) The system searches PRIV.VOLUME=SER=44455 DD DSNAME=LIB.

230. If a later job step refers to the STEPLIB DD statement in STEP3. use a dump DD statement only when you want to produce a dump. but system recovery procedures enable the step to terminate normally. the concatenated libraries are not searched.DEPT88. see z/OS MVS Initialization and Tuning Guide.LINKLIB. it must be printed by the interactive problem control system (IPCS). SYSABEND.LINKLIB first for program SUM. LIBRARYA.GROUP4 defined in the JOBLIB DD statement first for programs VARY and SHORE. The system produces the requested dump: v If the step terminates abnormally. The dump is formatted. so that it can be printed directly. SYS1. so that it can be printed directly. the system will search for the program in the private library named PRIV. and 249 v The input/output system (IOS) control blocks for the failing task. The dump contents are as described only when the installation uses the IBM-supplied defaults for the dumps. this dump contains all the areas dumped in a SYSUDUMP.STEPLIB DD For STEP2 and STEP4. The dump DD statements for requesting dumps are: SYSABEND DD statement Produces a dump of user and system areas. plus: v The local system queue area (LSQA). v If the step starts to terminate abnormally. SYSMDUMP. References For information on how to interpret dumps. SYSMDUMP. A concatenation of private libraries is defined in STEP3. The contents of these dumps can be set during system initialization and/or can be changed for an individual dump in the ABEND macro instruction.WORK and. the system searches the private library named LIB5. if it is not found there. For details.WORK. The dump is unformatted and machine-readable.0 MVS JCL Reference . or SYSUDUMP DD statement in a job step to direct the system to produce a dump. see z/OS MVS Diagnosis: Tools and Service Aids. SYSUDUMP DD statement Produces a dump of user areas. The system searches for the program named CALC in this order: PRIV. including subpools 229. 13-12 z/OS V1R3. to be used. the system searches SYS1.LINKLIB. and by a SLIP command. in a CHNGDUMP command. LIB. and SYSUDUMP DD Statements Purpose Use a SYSABEND. The dump is formatted. Dumps are optional. because the STEPLIB DD statement names the system library. in SYS1. For STEP1. SYSMDUMP DD statement Produces a dump of the system areas and the program’s address space.

This parameter is optional and not recommended. code the following parameters on the dump DD statement: v The DSNAME parameter. Special DD Statements 13-13 . Printing a Dump To print a dump for either a SYSABEND or SYSUDUMP DD statement.parameter].. v DISP=SHR v FREE=CLOSE for multiple job steps See z/OS MVS Diagnosis: Tools and Service Aids for a description of the SYS1.SYSMDPxx naming convention and an explanation of how the system manages the dump data sets. make the data set’s abnormal termination disposition KEEP or CATLG. v The VOLUME parameter. Note: Do not use VSAM for dump data sets.SYSMDPxx. v The SPACE parameter. SYSUDUMP DD Syntax //SYSABEND //SYSMDUMP //SYSUDUMP DD parameter[.parameter]. SYSMDUMP. [comments] [comments] [comments] Location in the JCL Do not place in the same job step two DD statements with the same dump ddname.parameter]. if the dump is written on direct access. the system processes dump data sets according to the disposition to which they are allocated. DD parameter[. With the exception of the following facility.. To print a dump for a SYSMDUMP DD statement. To keep only the first SYSMDUMP dump written to a dump data set. v The SYSOUT parameter that specifies a print output class. specify the following on the SYSMDUMP DD statement: v DSNAME=SYS1. use the following program: Chapter 13. v The UNIT parameter. SYSMDUMP Requirements The SYSMDUMP DD statement must specify a magnetic tape unit or a direct access device. code one of the following on the DD statement for the output data set: v A UNIT parameter that specifies a printer. The system will select a volume. Because you want to store the data set. SYSMDPxx is a preallocated data set that must have end-of-file (EOF) mark as its first record.. where xx is 00 through FF and indicates the specific dump data set to be used. Storing a Dump If you wish to store a dump instead of having it printed.. DD parameter[..SYSABEND.. The data set’s status is NEW. v The DISP parameter.

the ddname of the overriding DD statement in the calling step must be different from the dump ddname of the procedure DD statement. Example 3 //STEP1 //SYSABEND // //STEP2 //SYSABEND EXEC PGM=PROGRAM1 DD DSNAME=DUMP. Examples of the SYSABEND. VOLUME=SER=1234.VOLUME=SER=147958 The SYSMDUMP DD statement specifies that the dump is to be stored on a tape.DISP=(OLD.20)) EXEC PGM=PROGRAM2 DD DSNAME=*. processing is as follows: v In a JES2 system. the tape must have IBM standard labels. Duplicate Dump Requests You can code more than one dump request in a job step using DD statements that have different ddnames. the data set disposition affects the collection of events. – If only one or neither statement requests JES3. Overriding Dump DD Statements To change the type of dump requested in a dump DD statement in a cataloged or in-stream procedure. When you do this. the job fails with message IEA912I.DELETE. SYSUDUMP DD IPCS This program is described in z/OS MVS IPCS User’s Guide.0 MVS JCL Reference . Because the LABEL parameter is not coded. SYSMDUMP.STEP1.or jointly-managed devices.KEEP). the job is cancelled during JES3 interpretation.(40.SYSABEND.KEEP) Both SYSABEND DD statements specify that the dump is to be stored.DISP=(NEW.KEEP). // UNIT=3400-6. the job fails with message IEA912I. When the system finds dump DD statements with duplicate ddnames. code CHARS=DUMP for a dump with 204 characters per line and FCB=STD3 for 8 lines per inch.PASS. the system uses the last dump DD statement it encounters. If STEP1 does not abnormally terminate but STEP2 does. Example 2 //SYSMDUMP DD DSNAME=DUMP.or jointly-managed devices. and SYSUDUMP DD Statements Example 1 //STEP2 EXEC PGM=A //SYSUDUMP DD SYSOUT=A The SYSUDUMP DD statement specifies that you want the dump routed to system output class A.SYSABEND. v In a JES3 system: – If both DD statements request JES3.DISP=(. If you print the dump in a JES3 system on a 3800 Printing Subsystem. SYSMDUMP. The space request in STEP1 is ample and will not inhibit dumping due to insufficient space.SPACE=(TRK. When using IPCS. the system writes the 13-14 z/OS V1R3.UNIT=3350.

indicating that the data set is full. see z/OS DFSMS Checkpoint/Restart. Note: If restart is to begin at a step.VOLUME=SER=123456. Syntax //SYSCHK DD parameter[. the system writes the first SYSMDUMP dump on the data set.KEEP). You must offload this first SYSMDUMP dump and write an EOF mark at the beginning of the SYS1.SYSABEND. Example 4 //STEP EXEC PGM=EXSYSM //SYSMDUMP DD UNIT=3330. Special DD Statements 13-15 .SYSMDPxx data set before subsequent dumps can be written to that data set.DISP=SHR //JOB2 JOB //STEP EXEC PGM=EXSYSMDP //SYSMDUMP DD DSNAME=SYS1. All subsequent jobs receive message IEA849I.DELETE. an abnormal termination disposition of KEEP is specified so that the dump is stored if either of the steps abnormally terminates. SYSUDUMP DD dump for STEP2 in the space allocated in STEP1.. Example 5 //JOB1 JOB //STEP EXEC PGM=EXSYSMDP //SYSMDUMP DD DSNAME=SYS1. DELETE.SYSMDP00.(0. [comments] Chapter 13. Note: When you specify a DSNAME of SYS1. // DISP=(NEW.parameter]. in STEP2 instructs the system to delete the data set and free the space acquired for dumping.SYSMDP00. the second DISP subparameter. as indicated by the RD parameter on the EXEC statement.. do not use a SYSCHK DD statement. SYSMDUMP. In both steps.DSNAME=MDUMP The SYSMDUMP DD statement allocates dump data set MDUMP to a direct access device.SYSMDP00. SYSCHK DD Statement Purpose Use the SYSCHK DD statement to define a checkpoint data set that the system is to write during execution of a processing program. Use this statement again when the step is restarted from a checkpoint written in the data set.DISP=SHR Only the SYSMDUMP dump written by the first job will be in data set SYS1.SPACE=(CYL.SYSMDPxx with DISP=SHR.1)). If both of the steps successfully execute. References For detailed information about the checkpoint/restart facilities.

The system otherwise provides additional primary space using extents. the system would release all space before the first checkpoint could be written. The system opens and closes the checkpoint data set before it writes the first checkpoint. but do not request secondary space. v Code the DISP parameter to specify a status of OLD and a disposition of KEEP. Do not code the RLSE subparameter: – If the processing program opens the checkpoint data set before writing each checkpoint and closes the checkpoint data set after writing each checkpoint. the system cannot perform a restart from checkpoints in secondary space. v Code the RLSE subparameter of the SPACE parameter only if the processing program opens the checkpoint data set and the checkpoint data set remains open until the end of the program.0 MVS JCL Reference . – If you do not request secondary space and the primary space fills up. – If you do request secondary space and the primary space fills up. The serial number of the volume on which a checkpoint entry was written appears in the console message issued after the checkpoint entry is written. When Retrieving a Cataloged Checkpoint Data Set v Code the DSNAME parameter. if you coded the VOLUME parameter. v Code the CONTIG subparameter of the SPACE parameter to request contiguous space. v Code the UNIT parameter. 13-16 z/OS V1R3. because the system will not look in the catalog for unit information. the processing program or the system writes one invalid checkpoint followed by successful checkpoints. If the extents are not contiguous. v Code the VOLUME parameter. v Code the VOLUME parameter. leaving no space for additional checkpoints. the job abnormally terminates. when the processing program or system writes the next checkpoint the job abnormally terminates again. – The primary space request must be large enough to hold all checkpoints. When Retrieving a Checkpoint Data Set that is not Cataloged v Code the DSNAME parameter. An attempt to restart from one of the checkpoints following the invalid checkpoint results in abnormal termination. The system releases all unused space while closing the data set after the first checkpoint. do not code a member-name in the DSNAME parameter. If the checkpoint entry is on a tape volume other than the first volume of the checkpoint data set. If the checkpoint data set is a partitioned data set (PDS). any checkpoints in these extents cannot be used for a successful restart. the system releases unused space after the first CLOSE macro instruction.SYSCHK DD Parameters on SYSCHK DD Statements When Creating a Checkpoint Data Set v Code a SPACE parameter. If you specify RLSE. however. v Code the DISP parameter to specify a status of OLD and a disposition of KEEP. You can successfully restart the job at the last checkpoint. With RLSE specified. – If the system opens the checkpoint data set. code the volume serial number or volume sequence number to identify the correct volume. The serial number of the volume on which a checkpoint entry was written appears in the console message issued after the checkpoint entry is written. Although your program or the system can write checkpoints in secondary space.

Other Parameters v Code the LABEL parameter if the checkpoint data set does not have standard labels.VOLUME=SER=456789 //STEP1 EXEC PGM=A The checkpoint data set defined on the SYSCHK DD statement is not cataloged. Note that the SYSCHK DD statement follows the JOBLIB DD statement.SYSCHK DD v Code the UNIT parameter.NOTE2) DSNAME=PRIV. if coded. Location in the JCL v When writing checkpoints. v When restarting a job from a checkpoint. UNIT=3400-6. Example 2 //JOB2 //JOBLIB //SYSCHK // //STEP1 JOB DD DD RESTART=(STEP2. Special DD Statements 13-17 . // DISP=OLD. and do not use a partitioned data set extended (PDSE) for a checkpoint data set. References Chapter 13.CK3) //SYSCHK DD DSNAME=CHLIB. v Code DCB=TRTCH=C if the checkpoint data set is on 7-track magnetic tape with nonstandard labels or no labels. do not code the DEFER subparameter of the UNIT parameter on the SYSCHK DD statement.DISP=(OLD. place the SYSCHK DD statement immediately before the first EXEC statement of the resubmitted job. Examples of the SYSCHK DD Statement Example 1 //JOB1 JOB RESTART=(STEP3. SYSCKEOV DD Statement Purpose Use the SYSCKEOV DD statement to define a checkpoint data set for checkpoint records from the checkpoint at end-of-volume (EOV) facility. otherwise.LIB3. after the JOB statement. the system ignores the SYSCHK DD statement.VOLUME=SER=438291 EXEC PGM=B The checkpoint data set defined on the SYSCHK DD statement is not cataloged. v If the volume containing the checkpoint data set is to be mounted on a JES3-managed device. The checkpoint at EOV facility is invoked by a DD CHKPT parameter.UNIT=3350. Note: Do not use VSAM for a checkpoint data set.PASS) DSNAME=CHECKPTS. place the SYSCHK DD statement after any JOBLIB DD statements.DISP=(OLD.KEEP). Relationship to Other Control Statements Code the RESTART parameter on the JOB statement. without it.

v Code DISP=MOD to reduce loss of checkpoint data in case of a system failure during checkpointing. these DD statements can have any valid ddname..SL) for IBM standard labels. Example of the SYSCKEOV DD Statement //SYSCKEOV DD DSNAME=CKPTDS.UNIT=TAPE.parameter]. place a SYSCKEOV DD statement in the DD statements for the step. SYSIN DD Statement Purpose By convention. but do not request secondary space. you must specify LABEL=(. see “CHKPT Parameter” on page 12-41 . Syntax //SYSCKEOV DD parameter[. Location in the JCL If you code a CHKPT parameter on any DD statements in a job step. v The SYSCKEOV DD statement must define a BSAM data set. The system otherwise provides additional primary space using extents. including SYSIN. see z/OS DFSMS Checkpoint/Restart. In-stream data sets begin with a DD * or DD DATA statement. people often use a SYSIN DD statement to begin an in-stream data set. If you omit a DD statement before input data. – DEFER subparameter of the UNIT parameter. v If the SYSCKEOV data set resides on a direct access storage device. [comments] Parameters on SYSCKEOV DD Statements When Creating a Checkpoint Data Set v Code a SPACE parameter.SYSCKEOV DD For information on the DD CHKPT parameter.. if not. Other Parameters v Do not code on the SYSCKEOV DD statement the following: – CHKPT=EOV parameter.DISP=MOD This statement defines a checkpoint data set for checkpoint at EOV records. For information on checkpoint/restart facilities. v If you code the LABEL parameter. All DCB information is provided by the checkpoint at EOV facility. – DCB parameter. the system provides a DD * statement with the ddname of SYSIN. 13-18 z/OS V1R3. v Code the CONTIG subparameter of the SPACE parameter to request contiguous space.0 MVS JCL Reference . but cannot define a partitioned data set extended (PDSE). The primary space request must be large enough to hold all checkpoints. the job abnormally terminates. v Do not code the RLSE subparameter of the SPACE parameter. that device cannot be shared with another processor.

. to signal that an in-stream data set follows immediately. Location in the JCL A SYSIN DD statement appears at the beginning of an in-stream data set. Special DD Statements 13-19 . . data .. 17 PGM=READ * SYSOUT=A PGM=WRITE DATA. Examples of SYSIN DD Statements //STEP1 //SYSIN EXEC DD .. //OUT1 DD //STEP2 EXEC //SYSIN DD .parameter]. [comments] Parameters on SYSIN DD Statements The first parameter is an * or DATA.SYSIN DD Syntax //SYSIN DD parameter[.DLM=17 Chapter 13. .

SYSIN DD 13-20 z/OS V1R3.0 MVS JCL Reference .

Comments Field The comments field follows the delimiter characters. text in columns 3 through 80 is a comment. /*ROUTE. A delimiter statement is optional: v If the data is preceded by a DD * statement without a DLM parameter. If you code a delimiter statement.) For JES3. v A JES2 /*XMIT statement that precedes input stream records to be transmitted to another node. IBM recommends that you either start comments in column 4 or use a delimiter other than the default on the //XMIT statement. 2002 14-1 . For JES2. Relationship to the DLM Parameter The system recognizes a delimiter other than /* if a DLM parameter is coded on: v A DD * or DD DATA statement that defines an in-stream data set. code any comments in columns 4 through 80. (A blank must follow the delimiter characters. © Copyright IBM Corp. Delimiter Statement Purpose Use the delimiter statement to indicate the end of data or transmittal records in the input stream. /*JOBPARM). 1988.Chapter 14. except when the default delimiter (/*) is used with an //XMIT statement causing the text starting in column 3 to be recognized as a JECL statement (for example. Considerations for an APPC Scheduling Environment The delimiter statement has no function in an APPC scheduling environment. To avoid ambiguity in these cases. Do not continue a delimiter statement. This includes JES2 commands (/*$command) except that any command prefix other than $ is considered a comment instead of a command. the system will ignore it. v An XMIT JCL statement that precedes input stream records to be transmitted to another node. Description Syntax /* [comments] xx [comments] A delimiter statement consists of the characters /* or the two characters specified in a DLM parameter in columns 1 and 2 and one field: comments.

data . .MSGLEVEL=(2. data .Delimiter Statement v If transmitted records are preceded by an /*XMIT statement without a DLM parameter.’C BROWN’. END OF DATA FOR DATA SET DD2 END OF TRANSMITTED JOB /* //DD2 AA BB This example shows nested delimiter statements. v At the end of an in-stream data set that begins with a DD statement containing a DLM parameter. Examples of the Delimiter Statement Example 1 //JOB54 //STEPA //DD1 JOB .0) XMIT DEST=NODEA.0) EXEC PGM=SERS DD * .’C BROWN’.’C BROWN’. v At the end of records to be transmitted to another node when the records are preceded by an XMIT JCL statement.MSGLEVEL=(2. .DLM=AA . END OF DATA FOR DATA SET DD1 DD DATA. . . END OF DATA FOR DATA SET DD2 /* //DD2 AA Example 2 //JOB54 // //JOB55 //STEPA //DD1 JOB . data .DLM=AA . Location in the JCL A delimiter statement must appear: v At the end of an in-stream data set that begins with a DD DATA statement.MSGLEVEL=(2.DLM=BB JOB . END OF DATA FOR DATA SET DD1 DD DATA.0 MVS JCL Reference . v At the end of records to be transmitted to another node when the records are preceded by an /*XMIT statement containing a DLM parameter.0) EXEC PGM=SERS DD * . data . 14-2 z/OS V1R3.

Label Field Code a label on the ENDCNTL statement. Comments Field The comments field follows the ENDCNTL after at least one intervening blank. operation (ENDCNTL). Description Syntax //[label] ENDCNTL [comments] The ENDCNTL statement consists of the characters // in columns 1 and 2. v The label is 1 through 8 alphanumeric or national ($. the ENDCNTL statement can appear in a job step or in a cataloged or in-stream procedure. Thus. Location in the JCL The ENDCNTL statement immediately follows the one or more program control statements following a CNTL statement. @). Example of the ENDCNTL Statement //STEP1 //ABLE //STATE1 //BAKER //CALLER EXEC PGM=PRINT CNTL PRINTDEV BUFNO=20.) © Copyright IBM Corp. v The first character must be alphabetic or national ($. as follows: v Each label must be unique within the job.Chapter 15. 1988. v The label must be followed by at least one blank. Operation Field The operation field consists of the characters ENDCNTL and must be preceded and followed by at least one blank. 2002 15-1 . and three fields: label.ABLE (For information about the PRINTDEV JCL statement see the manual PSF for OS/390 & z/OS: Customization.DATACK=BLOCK ENDCNTL DD UNIT=3800-3. v The label must begin in column 3. @) characters. ENDCNTL Statement Purpose Use the ENDCNTL statement to mark the end of the program control statements following a CNTL statement.CNTL=*. and comments.PIMSG=YES. #. It can begin in any column. #.

15-2 z/OS V1R3.0 MVS JCL Reference .

it must be unique within the job. v The stepname must be followed by at least one blank. v Adding DD statements to a cataloged or in-stream procedure step. v Performing a step or checkpoint restart at or in the step. parameter. @).keyword-parm]. but is needed for the following. However.. Code a stepname as follows: v The stepname must begin in column 3. When a stepname is needed. a stepname is not required when adding to the first step in a procedure. An EXEC statement is required for each job step. v Identifying a step in a cataloged or in-stream procedure. © Copyright IBM Corp.. see z/OS JES2 Initialization and Tuning Reference and z/OS JES3 Initialization and Tuning Reference. v The stepname is 1 through 8 alphanumeric or national ($. The parameters you can specify for step processing are arranged alphabetically in the following pages.. and comments. v The first character must be alphabetic or national ($. A job can have a maximum of 255 job steps.. The EXEC statement marks the beginning of each step in a job or a procedure. including stepnames in any procedures called by the job. operation (EXEC). v Referring to the step in later job control statements. 1988. #. This maximum includes all steps in any procedures the EXEC statements call. #.symbolic-parm=value]. @) characters. [comments] The EXEC statement consists of the characters // in columns 1 and 2 and four fields: name. v Overriding parameters on an EXEC statement or DD statement in a cataloged or in-stream procedure step. Name Field A stepname is optional.Chapter 16. Description Syntax //[stepname] EXEC positional-parm[. EXEC Statement Purpose Use the EXEC (execute) statement to identify the program or cataloged or in-stream procedure that this job step is to execute and to tell the system how to process the job step. References For information about the JES initialization parameters that provide installation defaults.[. 2002 16-1 .

stepname. PROC. 16-2 z/OS V1R3. as on a COND parameter. Positional Parameters An EXEC statement must contain one of the positional parameters: PGM. or labels. POSITIONAL PARAMETERS PGM= {program-name } {*. the characters up to and including the period are ignored. If the stepname is coded in this way.8 alphanumeric or $. Embedded procedures that refer back to the invoking procedure. names. Do not use EXEC statement parameter keywords as symbolic parameters.0 MVS JCL Reference . This positional parameter must precede all keyword parameters. the system assigns a stepname of ssssssss (when the START command was S procname. It can begin in any column. requests containing program syntax check without stepname: DD in named step execution procstepname: step in named procedure JCLTEST and JSTTEST: scan for syntax without executing the job (JES3 only) {PROC=procedure-name} {procedure-name } See page 16-25 procedure-name: 1 .stepname.8 alphanumeric or Names the program the system is to execute or. You can code any of the keyword parameters in any order in the parameter field after the positional parameter.EXEC | | | v The stepname may be preceded by up to 8 alphanumeric or national characters and then separated by a period.ddname} {JCLTEST } {JSTTEST } See page 16-23 VALUES PURPOSE program-name: 1 .ddname } {*. Parameter Field An EXEC statement has two kinds of parameters: positional and keyword.procstepname. #. need to specify the stepname the system assigns. $. When JCL runs as a started task. #. @ characters member for JES3 only.ssssssss) or STARTING (when the START command was S procname). Keyword Parameters An EXEC statement can contain the following keyword parameters. Stepnames for Started Tasks Operation Field The operation field consists of the characters EXEC and must be preceded and followed by at least one blank. or procedure name. @ characters Names the cataloged or in-stream procedure the system is to call and execute.

PURPOSE Specifies accounting information for the step ADDRSPC[.4095 operator: 16-15 GT GE EQ LT LE NE Code from chart on page Specifies the return code tests used to determine if this step is to be executed or bypassed. COND[.procstepname]: name of procedure EXEC containing DYNAMNBR to be affected Holds a number of data set allocations for reuse.procstepname]: name of procedure EXEC containing COND to be affected DYNAMNBR[.procstepname]=(accounting-information) See page 16-6 VALUES accounting-information: up to 142 characters [..EVEN] ) ( [. EVEN: execute step even if preceding step abnormally terminated ONLY: execute step only if preceding step abnormally terminated stepname: step issuing return code procstepname: step is in named procedure [.operator[.ONLY] ) See page 16-10 code: 0 . EXEC Statement 16-3 .3273 minus number of DD statements in step [.procstepname]= {VIRT} {REAL} See page 16-8 CCSID=nnnnn Specifies the coded character set identifier indicating the character code conversion performed on reads from and writes to tapes accessed in ISO/ANSI Version 4 format.EXEC KEYWORD PARAMETERS ACCT[.procstepname]= ((code.procstepname]).operator[.]) ( [.stepname][.procstepname]=n See page 16-18 n: 0 .stepname][.(code.procstepname]: name of procedure EXEC containing ACCT to be affected VIRT: virtual (pageable) storage REAL: central (nonpageable) storage [.procstepname]: name of procedure EXEC containing ADDRSPC to be affected nnnnn: 1 .65535 Indicates the type of storage required for the step. Chapter 16..procstepname]) ) ([.

PERFORM on the EXEC statement is ignored except for the TSO logon procedure.procstepname]: name of procedure EXEC containing RD to be affected See page 16-26 REGION[. checkpoints allowed RNC: restart. Specifies the amount of space in kilobytes or megabytes required by the step.procstepname]=n See page 16-21 n: 1 . if the step fails. no checkpoints [.procstepname]=(subparameter. no checkpoints NR: no restart. checkpoints allowed NC: no restart.0 MVS JCL Reference .procstepname]=’subparameter. and controls whether checkpoints are written for CHKPT macros or DD statement CHKPT parameters. RD[.procstepname]=subparameter PARM[.4 digits from 1 . In a non-APPC scheduling environment. VALUES n: 0 .999 [.procstepname]: name of procedure EXEC containing PERFORM to be affected Passes variable information to the processing program.procstepname]= {R } {RNC} {NR } {NC } R: restart.subparameter’ See page 16-20 subparameter: up to 100 characters [.99999 PURPOSE Specifies the limit on the total number of usable virtual pages above the bar in a single address space.2047 [. indicates whether the operator should perform automatic step restart.2096128 valueM: 1 .subparameter) PARM[. In WLM goal mode.procstepname]: name of procedure EXEC containing PARM to be affected PERFORM[.subparameter) PARM[.procstepname]={valueK} {valueM} See page 16-29 valueK: 1 .7 digits from 1 . where it can be used to classify the TSO user to a service class or report class.procstepname]: name of procedure EXEC containing REGION to be affected 16-4 z/OS V1R3.EXEC KEYWORD PARAMETERS MEMLIMIT={nnnnnM} {nnnnnG} {nnnnnT} {nnnnnP} {NOLIMIT} See page 16-19 PARM[. specifies the step’s performance group. In WLM compatibility mode.procstepname]=(’subparameter’.

TIME=(2. Examples of EXEC Statements Example 1 //STEP4 EXEC PGM=DREC. Symbolic Parameters on an EXEC Statement that Calls Procedures An EXEC statement can assign values to. EXEC Statement 16-5 .NO’ The EXEC statement named STEP4 invokes a program named DREC and passes the value in the PARM parameter to DREC.procstepname=value The procstepname is the name field on the procedure EXEC statement containing the keyword parameter to be overridden.ACCT.PSTEPWED=5670 The accounting information 5670 applies only to step PSTEPWED in the procedure WKREPORT.30) Chapter 16.59 [. For example: //STEP1 EXEC PROC=WKREPORT.procstepname]= {([minutes][.procstepname immediately following the keyword: keyword. all of the EXEC statement’s keyword parameters override matching EXEC keyword parameters in the called procedure. symbolic parameters.seconds])} {1440 } {NOLIMIT } {MAXIMUM } See page 16-31 VALUES minutes: 1 . Keyword Parameters on an EXEC Statement that Calls a Procedure When an EXEC statement positional parameter calls a cataloged or in-stream procedure.PARM=’3018. If a keyword parameter is to override a parameter on only one EXEC statement in the procedure.procstepname]: name of procedure EXEC containing TIME to be affected NOLIMIT: specifies that the step can use the processor for an unlimited amount of time MAXIMUM: specifies that the step can use the processor for the maximum amount of time PURPOSE Specifies the maximum time the step is to use the processor and requests messages giving the time used. Comments Field The comments field follows the parameter field after at least one intervening blank. code . See “Using System Symbols and JCL Symbols” on page 5-12 for more information about symbolic parameters.357912 seconds: 1 . Location in the JCL An EXEC statement must be the first statement in each job step or cataloged or in-stream procedure step.EXEC KEYWORD PARAMETERS TIME[. or nullify. Example 2 // EXEC PGM=ENTRY.

invokes a program named ENTRY and specifies the maximum processor time for execution of the step. The system passes the accounting information to the installation’s accounting routines.0 MVS JCL Reference .PSTEP2=RNC.DEV=3350 The EXEC statement named FOR invokes a cataloged or in-stream procedure named PROC489. see z/OS MVS System Management Facilities (SMF). Syntax ACCT[.ACCT=DB1528.EXEC This EXEC statement. The DEV parameter assigns the value 3350 to the symbolic parameter Device Support Bucket in a procedure statement. The RD parameter applies to only the step named PSTEP2. optional Purpose Use the ACCT parameter to specify one or more subparameters of accounting information that apply to this step. Example 3 //FOR EXEC PROC=PROC489.procstepname]=(accounting-information) 16-6 z/OS V1R3.RD. which does not have a stepname. References For more information on how to add accounting routines. ACCT Parameter Parameter Type Keyword. The ACCT parameter applies to all steps in the procedure.

The EXEC statement can have as many ACCT.ACCT=(1417. Continuation onto Another Statement: Enclose the accounting-information in parentheses. an overpunch). separate the subparameters by commas and enclose the information in parentheses or apostrophes. the ACCT parameter overrides the ACCT parameter on or is added to: v The EXEC statement named in the procstepname qualifier. other than hyphens or plus zero (+0. code DEPT'D58 as ACCT='DEPT''D58' If you code a symbolic parameter on the ACCT parameter. ACCT=(5438. The information applies only to the named procedure step. Example 2 //STP3 EXEC PROC=LOOKUP. End each statement with a comma after a complete subparameter. Then the information applies to all steps in the called procedure. Multiple Subparameters: When the accounting-information consists of more than one subparameter. Special Characters: When a subparameter contains special characters.’CHGE+3’) This EXEC statement executes program JP5 and specifies accounting information for this job step. each ACCT parameter must specify a unique procstepname. Examples of the ACCT Parameter Example 1 //STEP1 EXEC PGM=JP5. as defined by the installation. ACCT=(387.72/159'. For example. which are not considered part of the information. For example. EXEC Statement 16-7 .J318. which are considered part of the information.ACCT=(LOCATION8.procstepname parameters as the procedure has steps.GROUP6'. enclose it in apostrophes and the information in parentheses or enclose all of the information in apostrophes. For example: //STEP1 EXEC PGM=WRITER. Code each apostrophe that is part of the accounting-information as two consecutive apostrophes.’D58/920’. Length: The entire accounting-information must not exceed 142 characters: v Including any commas. you can code the symbolic parameter in apostrophes.GROUP6) or ACCT='5438.95’) Subparameter Definition accounting-information Specifies one or more subparameters of accounting information. v Excluding any enclosing parentheses or apostrophes.EXEC: ACCT Single Subparameter: You can omit the parentheses if the accounting information consists of only one subparameter.ACCT=(’/83468’) Chapter 16. v All EXEC statements in the procedure if procstepname is not coded.'72/159') or ACCT='387. // ’33. For example. On an EXEC Statement that Calls a Procedure If an EXEC statement calls a cataloged or in-stream procedure.’CHG=2’.

Syntax ADDRSPC[. ADDRSPC Parameter Parameter Type Keyword.BILL=’121+366’ This EXEC statement calls cataloged or in-stream procedure BILLING. The system uses an EXEC statement ADDRSPC parameter only when no ADDRSPC parameter is on the JOB statement and only during the job step.LATE=56470.0 MVS JCL Reference . Defaults If no ADDRSPC parameter is specified. // ACCT. LATE. Overrides The JOB statement ADDRSPC parameter applies to all steps of the job and overrides any EXEC statement ADDRSPC parameters.PAID=56370. Relationship to the EXEC REGION Parameter When ADDRSPC=REAL 16-8 z/OS V1R3. The statement specifies different accounting information for each of the procedure steps: PAID. which is nonpageable). REAL Requests central storage (also called real storage). The system cannot page the job step and must place the job step in central storage. and to all the steps in procedure LOOKUP. The accounting information applies to this job step.procstepname]= {VIRT} {REAL} Subparameter Definition VIRT Requests virtual storage. Code EXEC statement ADDRSPC parameters when each job step requires different types of storage. the default is VIRT.EXEC: ACCT This EXEC statement calls cataloged or in-stream procedure LOOKUP.ACCT. optional Purpose Use the ADDRSPC parameter to indicate to the system that the job step requires virtual storage (which is pageable) or central storage (also called real storage. The system can page the job step. and BILL. Example 3 //STP4 EXEC PROC=BILLING.ACCT. STP3.

AUL) keyword. Examples of the ADDRSPC Parameter Example 1 //CAC1 EXEC PGM=A. The EXEC statement can have as many ADDRSPC.procstepname parameters as the procedure has steps. Chapter 16. See the latter manual for a list of supported CCSIDs. and OS/390 Version 2 Release 5 or higher. See DFSMS/MVS Version 1 Release 5 z/OS DFSMSdfp Storage Administration Reference and DFSMS/MVS Version 1 z/OS DFSMS: Using Data Sets for selecting ISO/ANSI Version 4 tapes. When ADDRSPC=VIRT or ADDRSPC is Omitted Code a REGION parameter to specify how much virtual storage the job needs. The REGION parameter specifies 80K of storage. the system uses the default. Example 2 //CAC2 EXEC PROC=B. Then the parameter applies to all steps in the called procedure. If you omit the REGION parameter. optional Purpose On systems with DFSMS/MVS Version 1 Release 5 or higher. If you omit the REGION parameter.AL) or LABEL=(. the ADDRSPC parameter overrides the ADDRSPC parameter on or is added to: v The EXEC statement named in the procstepname qualifier.EXEC: ADDRSPC Code a REGION parameter to specify how much central storage the job needs.ADDRSPC=VIRT This EXEC statement executes program A and requests virtual (pageable) storage. The parameter applies only to the named procedure step.REGION=80K This EXEC statement calls procedure B and requests central (nonpageable) storage. each ADDRSPC parameter must specify a unique procstepname. v All EXEC statements in the procedure if procstepname is not coded. Because the REGION parameter is not specified. you can request DFSMSdfp to convert data from/to the coded character set identifier (CCSID) specified on the JOB or EXEC statement to/from the CCSID specified on the DD statement. On an EXEC Statement that Calls a Procedure If this EXEC statement calls a cataloged or in-stream procedure. but not using EXCP. EXEC Statement 16-9 . CCSID Parameter Parameter Type Keyword. the storage available to this job step is the installation default or the region size specified on the JOB statement. The CCSID parameter does not apply to ISO/ANSI Version 1 or ISO/ANSI/FIPS Version 3 tapes or to tapes with labels other than AL or AUL. ISO/ANSI Version 4 tapes are identified by the LABEL=(. Data conversion is supported on access to ISO/ANSI Version 4 tapes using access methods BSAM or QSAM. the system uses the default.ADDRSPC=REAL.

or DD levels.″ COND Parameter Parameter Type Keyword. the default is 500. and you can test return codes from particular job steps or from every job step that has completed processing. the system evaluates the COND parameter as true and bypasses the job step. the system evaluates the COND parameter as false and executes the job step. Relationship to Other Parameters Do not code the following parameters with the CCSID parameter: * BURST CHARS COPIES DATA DDNAME DYNAM FCB FLASH MODIFY QNAME SYSOUT TERM UCS Examples of the CCSID Parameter For examples of the CCSID parameter see ″CCSID Parameter″ in the chapter ″DD Statement. data passed to BSAM and QSAM is converted to 7-bit ASCII when writing to ISO/ANSI Version 4 tapes. Default If no CCSID parameter is specified on the JOB statement.0 MVS JCL Reference . You can specify one or more tests on the COND parameter. This may result in data loss on conversion. 16-10 z/OS V1R3. optional Purpose Use the COND parameter to test return codes from previous job steps and determine whether to bypass this job step. EXEC. If none of the test conditions specified on the COND parameter are satisfied. The CCSID is recorded in the tape header label if conversion is not defaulted. Syntax CCSID= nnnnn Subparameter Definition nnnnn The CCSID as a decimal number from 1 through 65535. On READ operations the CCSID (if recorded) on the tape header label is used for conversion.EXEC: CCSID The CCSID value of 65535 has a special meaning: it suppresses conversion. When CCSID is not specified at the JOB. If any of the test conditions are satisfied.

v Specify up to eight return code tests.operator) v You can omit the outer parentheses if you code only one return code test or only EVEN or ONLY.procstepname])]. or ¬ABEND keywords. for instance. then the return code tests. Bypassing a step because of a return code test is not the same as abnormally terminating the step. Specify special conditions for executing a job step. [.procstepname] = ((code. Note that a test showing that a return code from a step is zero is not sufficient to verify that the step did not fail.operator) COND[. between. When a step is bypassed because of a JOB COND parameter.stepname][. Syntax COND[. or after the return code tests. the system executes the step.ONLY] COND=EVEN COND=ONLY v One return code test is: (code. all following steps in the job are bypassed. If a step abnormally terminates. If no return code tests were coded or if none of the coded tests is satisfied. Chapter 16. to write a dump. The system abnormally terminates a step following an error so serious that it prevents successful execution. Another way to make the system execute a following step. The EVEN or ONLY subparameters are interpreted first. the system may fail a step (or job) even if the return code is zero. code an EXEC statement COND parameter when you want to: v v v v Specify different tests for each job step.EVEN]) [.operator[. the system evaluates the COND parameter as false.procstepname] = (code.operator[. Instead of coding a JOB statement COND parameter. is to code EVEN or ONLY on that step’s EXEC statement.. If a test specifies a previous step that was bypassed. the system normally bypasses all following steps in the job unless the step(s) are part of an IF/THEN/ELSE/ENDIF construct that specifies the ABEND. v You can omit all return code tests and code only EVEN or ONLY.EXEC: COND The system performs the COND parameter tests against return codes from the current execution of the job. are performed.″ (The return code is generated by the application program and is never changed by the operating system. specify up to seven return code tests. v Null positional subparameters of the COND parameter are invalid. If they indicate that the step should be executed. described in Chapter 17. if specified.) You can determine that a step failed due to a ″post execution error″ if bit SMF30SYE in the two-byte SMF30STI field in the SMF30 subtype 4 record is on. However. EXEC Statement 16-11 .stepname][. v Place the EVEN or ONLY subparameters before. for example.. ABENDCC. Name a specific step whose return code the system is to test.procstepname]) [. as a result of specifying CATLG_ERR FAILJOB(YES) and incurring that type of ″post execution error. This could happen. In contrast. Bypass only one step.(code. if you code EVEN or ONLY. “IF/THEN/ELSE/ENDIF Statement Construct” on page 17-1. bypassing of a step is merely its omission.

See “Considerations when Using the COND Parameter” on page 16-13 for cautions related to the use of EVEN. this step must be in the same procedure.EXEC: COND Subparameter Definition code Specifies a number that the system compares to the return codes from all previous steps in the job or from specific steps. EVEN Specifies that this job step is to be executed even if a preceding job step abnormally terminated. the system: v Does not test the return code of any steps that terminated abnormally. this job step is executed. The step identified by procstepname must contain the PGM keyword. Otherwise. v Does test the return code of any steps that terminated normally. rather than invoke a procedure. If none of the return code tests for these steps is satisfied.0 MVS JCL Reference . the specified step must contain a PGM keyword.procstepname Identifies a step in a cataloged or in-stream procedure called by an earlier job step. If the return code issued by any of those previous steps causes the test condition to be satisfied. see “Stepnames for Started Tasks” on page 16-2 for information about the stepname the system assigns. If this step is invoked in JCL that runs as a started task. code is a decimal number from 0 through 4095. Use Table 16-1 on page 16-15 to select the correct operator. procstepname identifies the EXEC statement of the procedure step that issues the return code to be used in the test. the step is bypassed. Note: Specifying a decimal number greater than 4095 could result in invalid return code testing or invalid return codes in messages. the system evaluates the COND parameter as true and bypasses the job step. stepname. If you omit stepname. the specified step must not be in a procedure. When EVEN is coded. Stepname identifies the EXEC statement of the calling job step. If the specified step is in a procedure. 16-12 z/OS V1R3. operator Specifies the type of comparison to be made to the return code. rather than invoke a procedure. If the specified test is true. the code you specify is compared to the return codes from all previous steps. Operators and their meanings are: Operator GT GE EQ LT LE NE Meaning Greater than Greater than or equal to Equal to Less than Less than or equal to Not equal to stepname Identifies the EXEC statement of a previous job step that issues the return code to be used in the test.

v Does test the return code of any steps that terminated normally. while others are related to the use of the COND parameter. the system evaluates a COND parameter on the first EXEC statement in a job as false. In this case. The COND on the calling EXEC statement overrides the COND on the called EXEC statement. Considerations when Using the COND Parameter Be aware of the following considerations when specifying COND parameters. Chapter 16.EXEC: COND ONLY Specifies that this job step is to be executed only if a preceding step abnormally terminated. Then the parameter applies to this job step and to all steps in the called procedure. Overrides If you code the COND parameter on the JOB statement and on one or more of the job’s EXEC statements. each COND parameter must specify a unique procstepname. no matter what is specified on the COND parameter. The parameter applies only to the named procedure step. Location in the JCL You can specify the COND parameter on any EXEC statement in the job. On an EXEC Statement that Calls a Procedure The COND parameter on an EXEC statement that calls a cataloged or in-stream procedure (a calling EXEC statement) will either override or is added to the called EXEC statements. the system then performs the return code tests on the EXEC statement. When ONLY is coded. If none of the return code tests for these steps is satisfied. the system: v Does not test the return code of any steps that terminated abnormally. If a return code test is satisfied. the COND on the calling EXEC statement will be added to the called EXEC statement. If the tests on the JOB statement are not satisfied. this job step is executed. Some of these considerations relate to errors that prevent step execution. the step is bypassed. the system does not process any subsequent EXEC statement COND parameters. If an EXEC statement calls a cataloged or in-stream procedure.procstepname parameters as the procedure has steps. EXEC Statement 16-13 . v All EXEC statements in the procedure if procstepname is not coded. which is to the left of the equals sign. the job terminates. If the called EXEC statement does not have COND coded on it. the COND parameter overrides the COND parameter on or is added to: v The EXEC statement named in the procstepname qualifier. The EXEC statement can have as many COND. and if a return code test on the JOB statement is satisfied. However. See “Considerations when Using the COND Parameter” for cautions related to the use of ONLY.

an EXEC COND parameter determines if a step is executed or bypassed. If a step abnormally terminates during scheduling. The completion codes associated with these types of abnormal termination are: 122 Operator canceled job 222 Operator or TSO/E user canceled job You might encounter other system completion codes for which remaining job steps are not executed. in effect. due to failures such as JCL errors or the inability to allocate space. JES3 does not support conditional JCL. the JOBLIB unit and volume information are not passed to the next step. the system might not be able to execute the step. therefore. Thus. may not be cataloged. JES3 allocates devices for steps that are bypassed. However. the system evaluates a COND parameter on the restart step as false 16-14 z/OS V1R3. you can use an IF statement before the first EXEC statement in a job to bypass the step. If the job step does make such a reference. JES3 Considerations In both JES2 and JES3 systems. However. regardless of any requests specified through the COND parameter. JES3 processes all jobs as though each step will execute. “IF/THEN/ELSE/ENDIF Statement Construct” on page 17-1 for more information. regardless of whether EVEN or ONLY were specified. when the next step is executed. even if the step that deletes the data set is bypassed during execution.EXEC: COND Errors that Prevent Step Execution. See z/OS MVS System Codes for further information about specific system completion codes. the system searches the catalog for the JOBLIB data set. the step must abnormally terminate while the program has control. Backward References to Data Sets If a step is bypassed because of its COND parameter or if a step abnormally terminates. JOBLIB with COND=ONLY If the job contains a JOBLIB DD statement and ONLY is specified in a job step. COND Parameter on the First Statement in a Job The system evaluates a COND parameter on the first EXEC statement in a job as false. although it does permit conditional statements to be specified. a data set that was to have been created or cataloged in the step may not exist. When the Program Does Not Have Control For the system to act on the COND parameter. When the JOB Statement Contains a RESTART Parameter When restarting a job. the restart step becomes. These conditions are as follows: Abnormal Termination by the System After certain types of abnormal termination by the system. Therefore. the system bypasses the remaining steps. See Chapter 17. JES3 will fail jobs that delete a data set in one step and attempt to reference the deleted data set in a later step. no matter what the COND parameter requests. or may be incomplete. regardless of whether EVEN or ONLY was specified. the first step in the job. remaining job steps are not executed.0 MVS JCL Reference . Regardless of COND Specifications Certain error conditions prevent the system from executing a step. a job step should not refer to a data set being created or cataloged in a step that could be bypassed or abnormally terminated.

COND parameters on these subsequent steps are added or overridden as specified in the calling step. The system evaluates any COND parameters on the restarted step as false. the system evaluates the COND parameter on the designated restart step as false and executes the step.EQ) COND=(code. The system evaluates any COND parameters on the first step to be executed within the procedure at restart as false. and the restarted step contains one or more COND parameters with procstepname qualifiers.LT) COND=(code. Chapter 16. the system executes the step. and the restarted step contains a COND parameter without a procstepname qualifier. When the JOB statement contains a RESTART parameter with a checkpoint id. EXEC Statement 16-15 . COND parameters on these subsequent steps are added or overridden as specified in the calling step. and executes the step. If any test is satisfied. The restarted step calls a procedure and does The system evaluates any COND parameters on the first step to be not contain a COND parameter. and executes the step. The system evaluates any COND parameters on steps within the called procedure as false. If all other COND parameters on that step are also false. Subsequent steps might be executed. and the step that called the procedure contains a COND parameter without a procstepname qualifier. Summary of COND Parameters Table 16-1.EXEC: COND and executes the step. Execution or Bypassing of Current Step Based on COND Parameter Return Code (RC) from a Previous Step Test in COND Parameter COND=(code. Any subsequent steps within the procedure that contain COND parameters are processed normally. Subsequent steps containing COND parameters are processed normally. and executes the step. the system bypasses the current step.GE) COND=(code. When a COND parameter on a step following the restarted step refers to a step that precedes the restarted step.GT) COND=(code. The restarted step calls a procedure. and executes the step. Subsequent steps containing COND parameters are processed normally.LE) COND=(code. and the step that called the procedure does not contain a COND parameter. The restarted step calls a procedure. Subsequent steps that contain COND parameters are processed normally.NE) Execute Current Step RC >= code RC > code RC ¬= code RC <= code RC < code RC = code Bypass Current Step RC < code RC <= code RC = code RC > code RC >= code RC ¬= code Note: When the COND parameter does not name a previous step. the system evaluates the COND parameter as false. and the step that called the procedure contains one of more COND parameters with procstepname qualifiers. The system evaluates any COND parameters on the first step to be executed within the procedure at restart as false. The restarted step is within a procedure. and executes the step. The system evaluates any COND parameters on the restarted step as false. executed within the procedure at restart as false. regardless of whether they were overridden or added from the COND parameter on the step that called the procedure. and executes the step. Subsequent steps that contain COND parameters are processed normally. and executes the step. the system tests all previous steps. The restarted step is within a procedure. Restarted Step The restarted step does not call a procedure and is not a step within a procedure. COND Parameter Processing The system evaluates any COND parameters on the restarted step as false. The system evaluates any COND parameters on the first step to be executed within the procedure at restart as false. The restarted step is within a procedure.

STEP1) PGM=LAST. v The return code from STEP1 is 89 or less.EXEC: COND Table 16-2.EQ. the system executes this step only when all three of the following are true: v A preceding job step abnormally terminated.STEP1). v The return code from STEP1 is 90 or greater.COND=((16. Because neither EVEN nor ONLY is specified. No return code tests are satisfied. The system bypasses this step if any one of the following is true: v All preceding job steps terminated normally.LT.COND=(4.0 MVS JCL Reference . EXEC .COND=(4. Example 2 //TEST2 EXEC PGM=DUMPINT. if the return code from STEP3 is 0 through 3. PGM=CINDY PGM=NEXT.COND=((8.GT. . .LE. A preceding job step abnormally terminated. 2. v The return code from any preceding step is 0 through 16. the system does not execute this step if a preceding step abnormally terminates. Therefore.STEP3) In this example. Example 3 //STEP1 //STEP2 //STEP3 EXEC .ONLY) The system executes this step ONLY if two conditions are met: 1. the system bypasses STEP6.(8. the system executes STEP6. EXEC . If the return code is 4 or greater.(90. Effect of EVEN and ONLY Subparameters on Step Execution EVEN or ONLY Specified? EVEN EVEN EVEN EVEN ONLY ONLY ONLY ONLY Neither Neither Neither Neither Any Preceding Abend? No No Yes Yes No No Yes Yes No No Yes Yes Any Tests Satisfied? No Yes No Yes No Yes No Yes No Yes No Yes Current Step Execute? Yes No Yes No No No Yes No Yes No No No Examples of the COND Parameter Example 1 //STEP6 EXEC PGM=DISKUTIL. v The return codes from all preceding steps are 17 or greater.GT.STEP1).STEP2)) 16-16 z/OS V1R3.GE).

STEP3 is executed.COND=(4. // COND. Therefore. the COND parameter for steps PROCSTP3 and PROCSTP4 evaluates as true (because 8 is greater than the return code of 0 provided by all previous steps in the job). The system does not perform the second return code test because STEP2 was bypassed.COND.COND=(0. // COND.LT.LT). STEP3 is bypassed. However. Example 4 //STP4 EXEC PROC=BILLING.. The system evaluates the COND parameter for PROCSTP2. if STEP1 returns a code of 4. the system performs the first return code test. PROCSTP1 is the first step in the job because of the RESTART specification.RESTART=JOBSTEP EXEC PROC=TEST JOB1 restarts at JOBSTEP.RESTART=JOBSTEP. The system executes step PAID even if a preceding step abnormally terminates unless the accompanying return code is satisfied. PROCSTP2 is the first step in the job. Before STEP3 is executed. and the COND parameter test is not valid because no previous steps have run. and PROCSTP1 runs. The statement specifies different return code tests for each of the procedure steps: PAID.COND=(0.NE) //PROCSTP2 EXEC PGM=IEFBR14.GE).GT) JOB1 restarts at PROCSTP2 as called by JOBSTEP. and BILL. and the step runs. EXEC Statement 16-17 .COND=(8.. and the steps are bypassed.COND.. Example 5 The procedure TEST exists in SYS1.PROCSTP2 EXEC PROC=TEST.BILL=((20.PAID=((20. PROCSTP3 has no COND parameter.EVEN).PROCSTP4=(8. The job: //JOB1 //JOBSTEP JOB.. the restart step..LATE=(60.GT) JOB1 restarts at PROCSTP2 as called by JOBSTEP. Because 4 is less than 8. If 8 is less than the return code from STEP1. the system evaluates the COND parameter for PROCSTP1 as false. Because of the RESTART specification.PROCLIB: //TEST PROC //PROCSTP1 EXEC PGM=IEFBR14.LT) // PEND The job: //JOB1 //JOBSTEP JOB. STEP3 is executed. The COND parameters for PROCSTP2 and PROCSTP4 are used. The system evaluates the Chapter 16.RESTART=JOBSTEP. STEP2 is bypassed.FIND).EXEC: COND In this example.. LATE.(30. or.CHGE)) This statement calls cataloged or in-stream procedure BILLING. The job: //JOB1 //JOBSTEP JOB. restated. as false. if the STEP1 return code is less than or equal to 8.PROCSTP2 EXEC PROC=TEST. The COND parameter on JOBSTEP does not specify a procstepname qualifier and therefore applies to all steps in procedure TEST.NE) //PROCSTP3 EXEC PGM=IEFBR14 //PROCSTP4 EXEC PGM=IEFBR14.GT.

The limit for a 32K TIOT is 1635. the DYNAMNBR parameter overrides the DYNAMNBR parameter on or is added to: v The EXEC statement named in the procstepname qualifier. each DYNAMNBR parameter must specify a unique procstepname. if the current limit is 1635 DD statements. DYNAMNBR Parameter Parameter Type Keyword. Note that the limit of 3273 is based on the number of single unit DD statements for a 64K TIOT (task input output table). Syntax DYNAMNBR[.procstepname]=n Subparameter Definition n Specifies a value used to calculate the maximum number of data set allocations that the system can hold in anticipation of reuse. and up to 1634 DD statements. Code DYNAMNBR instead of several DD statements with DYNAM parameters. This limit can be different depending on the installation-defined TIOT size. the default is 0. If you code DYNAMNBR incorrectly.PASS) but.EXEC: COND COND parameter for PROCSTP2 as false. you can specify DISP=(NEW. optional Purpose Use the DYNAMNBR parameter to tell the system to hold a number of resources in anticipation of reuse. including any DD statements in a cataloged or in-stream procedure called by the step. the system uses the default of 0 and issues a JCL warning message. (In a JES3 system. PROCSTP4 is overridden as specified on JOBSTEP. and the step runs.PASS).) Note: If you specify DISP=(NEW. the installation might further reduce the limit.procstepname parameters as the procedure has steps. The EXEC statement can have as many DYNAMNBR. Defaults If no DYNAMNBR parameter is specified. one or more data sets were not received by any job step. 32K is the default TIOT size. then the maximum number of DD statements you can specify decreases by one. at the end of the job. 16-18 z/OS V1R3.0 MVS JCL Reference . PROCSTP3 has no COND parameter. For example. Specify n as a decimal number from 0 through 3273 minus the number of DD statements in the step. The parameter applies only to the named procedure step. On an EXEC Statement that Calls a Procedure If this EXEC statement calls a cataloged or in-stream procedure. The number of resources that the system actually holds in anticipation of reuse equals n plus the number of DD statements in the step.

The IEFUSI installation exit can override any JCL. this statement specifies that the system should hold the following data set allocations for reuse: 12 plus the number of DD statements following this EXEC statement and the number of DD statements in procedure ACCT. or petabytes (P).DYNAMNBR. Syntax MEMLIMIT={nnnnnM} {nnnnnG} {nnnnnT} {nnnnnP} {NOLIMIT} Subparameter Definition nnnnnM nnnnnG nnnnnT nnnnnP Specifies a value to be used as the limit on the total number of usable virtual pages above the bar in a single address space. the default is the value defined to SMF.EXEC: DYNAMNBR v All EXEC statements in the procedure if procstepname is not coded. MEMLIMIT Parameter Parameter Type Keyword.CALC=12 For the procedure step CALC.or SMF-supplied value. nnnnn may be a value from 0 to 99999. optional Purpose Use the MEMLIMIT parameter to specify the limit on the total number of usable virtual pages above the bar in a single address space. EXEC Statement 16-19 . Chapter 16. NOLIMIT Specifies that there is no limit on the virtual pages to be used above the bar. Overrides The JOB statement MEMLIMIT parameter applies to all steps of the job and overrides any EXEC statement MEMLIMIT parameter. Defaults If no MEMLIMIT parameter is specified. If MEMLIMIT is not specified. terabytes (T). The value may be expressed in megabytes (M). Example of the DYNAMNBR Parameter //STEP1 EXEC PROC=ACCT. gigabytes (G). SMF provides a default value. Then the parameter applies to all steps in the called procedure.

For example. see ″Continuing Parameter Fields Enclosed in Apostrophes″ if you need more information.subparameter) PARM[.subparameter) PARM[. For example. v Excluding any enclosing parentheses or apostrophes. PARM Parameter Parameter Type Keyword. or enclose all the subparameters in apostrophes. see z/OS MVS Programming: Assembler Services Guide.’LINECNT=80’.123. To use the information. However. if a subparameter contains a symbolic parameter.procstepname]=(subparameter. You can code the symbolic parameter in apostrophes.12+80'.procstepname]=’subparameter. Syntax PARM[. optional Purpose Use the PARM parameter to pass variable information to the processing program executed by this job step.NOMAP) Do not code an apostrophe in column 71. code 3462&5 as PARM='3462&&5'. enclose it in apostrophes and the other subparameters in parentheses.123. Continuation onto Another Statement: Enclose the subparameters in parentheses. the processing program must contain instructions to retrieve the information.procstepname]=(’subparameter’. depending on other job and installation factors. 16-20 z/OS V1R3.'12+80') or PARM='P50.0 MVS JCL Reference . References For details on the format of the passed information and its retrieval.MT5) or PARM='P1. PARM='P1. code a single ampersand. Commas: When you code more than one subparameter. End each statement with a comma after a subparameter.MT5' is received by the program as P1. PARM=(P50.123.MT5.subparameter’ Length: The length of the subparameters passed must not exceed 100 characters: v Including any commas. which are passed to the processing program. Special Characters and Blanks: When a subparameter contains special characters or blanks.procstepname]=subparameter PARM[. For example: //STEP1 EXEC PGM=WORK.MEMLIMIT=10000M This job step specifies a limit of 10000 megabytes of usable virtual pages above the bar.MT5'. // ’12+80’. Code each apostrophe and ampersand that is part of the subparameter as two consecutive apostrophes or ampersands. which are not passed. separate the subparameters by commas and enclose the subparameters in parentheses or apostrophes. For example.123. PARM=(P1. For example.PARM=(DECK.EXEC: MEMLIMIT Example of the MEMLIMIT Parameter //STEPA EXEC PGM=ADDER.LIST.

the system nullifies any PARM parameters on any following EXEC statements in the procedure. Example 2 // EXEC PROC=PROC81.PARM=(NOOBJECT. // DECK) The system passes NOOBJECT. each PARM parameter must specify a unique procstepname. The EXEC statement can have as many PARM.procstepname parameters as the procedure has steps.TRUNC(BIN). the system nullifies those PARM parameters. Because the PARM parameter contains a list of more than one subparameter. On an EXEC Statement that Calls a Procedure If an EXEC statement calls a cataloged or in-stream procedure. PERFORM Parameter Parameter Type Keyword. The information applies only to the named procedure step. If PROC81 contains more steps and their EXEC statements contain PARM parameters. those PARM parameters remain in effect.P2=5’ The system passes P1. v The first EXEC statement in the procedure if procstepname is not coded. optional Purpose Chapter 16.LET) The system passes MAP.LKED=(MAP. Example 4 //RUN4 EXEC PGM=IFOX00.LET to the procedure step named LKED in procedure ASMFCLG. the PARM parameter overrides the PARM parameter on or is added to: v The EXEC statement named in the procstepname qualifier.DECK to processing program IFOX00.PARM.123.EXEC: PARM Subparameter Definition subparameter Consists of the information to be passed to the processing program.LINECNT=50.’LINECNT=50’. Examples of the PARM Parameter Example 1 //RUN3 EXEC PGM=APG22. Example 3 //STP6 EXEC PROC=ASMFCLG.PARM=MT5 The system passes MT5 to the first step of the procedure named PROC81. If any other procedure steps in ASMFCLG contain a PARM parameter.P2=5 to the processing program named APG22. the information is enclosed in parentheses.PARM=’P1. EXEC Statement 16-21 . ’TRUNC(BIN)’.123. The information applies to only the first step in the called procedure.

For details on how to use workload management classification rules to map a PERFORM value to a service class or report class. see z/OS MVS Planning: Workload Management. The system uses an EXEC PERFORM parameter only when no PERFORM parameter is on the JOB statement and only during the job step. Overrides A JOB statement PERFORM parameter applies to all steps of the job and overrides any EXEC statement PERFORM parameters. On an EXEC Statement that Calls a Procedure If an EXEC statement calls a cataloged or in-stream procedure. storage.0 MVS JCL Reference . In WLM goal mode. any PERFORM parameter on an EXEC statement for a job or a started procedure is ignored. and channels. In WLM compatibility mode. or entered on the TSO logon panel.EXEC: PERFORM Use the PERFORM parameter in WLM compatibility mode to specify the performance group for the job step. Syntax PERFORM[. Code EXEC statement PERFORM parameters when each job step is to execute in a different performance group. However. if no PERFORM parameter is specified or if the specified PERFORM number fails validity checks. The specified performance group should be appropriate for your step type according to your installation’s rules. If the installation did not specify a default. a PERFORM parameter specified on the EXEC statement of the TSO logon procedure. The parameter applies only to the named procedure step. The EXEC statement can have as 16-22 z/OS V1R3. for a TSO session. Defaults In WLM compatibility mode.procstepname]=n Subparameter Definition n The n is a number from 1 through 999. the PERFORM parameter overrides the PERFORM parameter on or is added to: v The EXEC statement named in the procstepname qualifier. can be used for classification of the session to a service class or report class. The installation-defined performance groups determine the rate at which associated steps have access to the processor. the system uses a built-in default: Default 1 2 Use For non-TSO/E job steps For TSO/E sessions See z/OS MVS Initialization and Tuning Guide for details. n identifies a performance group that has been defined by your installation. the system uses an installation default specified at initialization.

procstepname parameters as the procedure has steps. or a temporary library. a private library. or in a private library specified in the job by a JOBLIB DD statement or in the step by a STEPLIB DD statement. Then the parameter applies to all steps in the called procedure. Syntax PGM= {program-name } {*. the first character must be alphabetic or national. *.EXEC: PERFORM many PERFORM. EXEC Statement 16-23 .stepname.stepname. each PERFORM parameter must specify a unique procstepname. Use this form of the parameter when the program resides in a system library.LINKLIB. Subparameter Definition program-name Specifies the member name or alias of the program to be executed. Chapter 16.ddname} {JCLTEST } {JSTTEST } The EXEC statement parameter field must begin with a PGM parameter or a PROC parameter. Stepname identifies the EXEC statement of the earlier job step that contains the DD statement with ddname in its name field. The installation must have defined the significance of this performance group.ddname Refers to a DD statement that defines. #. optional Purpose Use the PGM parameter to name the program that the system is to execute.procstepname. The specified program must be a member of a partitioned data set (PDS) or partitioned data set extended (PDSE) used as a system library. as a member of a partitioned data set (PDS) or a partitioned data set extended (PDSE). These two parameters must not appear on the same EXEC statement. Example of the PERFORM Parameter //STEPA EXEC PGM=ADDER.ddname } {*. such as SYS1. @) characters. Use this form of the parameter when a previous job step creates a temporary library to store a program until it is required.stepname. v All EXEC statements in the procedure if procstepname is not coded. the program to be executed. The program-name is 1 through 8 alphanumeric or national ($.PERFORM=60 This job step will be run in performance group 60 if it passes validity checks. PGM Parameter Parameter Type Positional.

Step GO executes program PROG.MSGCLASS=A EXEC PGM=IEWL DD DSNAME=&&PARTDS(PROG).DISP=(OLD. Stepname identifies the EXEC statement of the calling job step. Program PROG is a member of the partitioned data set &&PARTDS.STEP2.) *.1)) EXEC PGM=*.DDA 16-24 z/OS V1R3.LIB4 for the member named USCAN. the system does not honor requests for special program properties as defined in the program properties table (PPT). Use this form of the parameter when a previous job step calls a procedure that creates a temporary library to store a program until it is required. Example 2 //PROCESS //CREATE //SYSLMOD // //GO JOB .SYSLMOD The EXEC statement named GO contains a backward reference to DD statement SYSLMOD. Example 3 //JOBC //STEP2 //DDA //STEP3 JOB EXEC DD EXEC . The data set &&PARTDS is deleted at the end of the job.20.JOHN. which is a temporary data set. (See z/OS MVS Initialization and Tuning Reference.ddname Refers to a DD statement that defines. the program to be executed.) JCLTEST (JES3 only) JSTTEST (JES3 only) Requests that the system scan the step’s job control statements for syntax errors without executing the job or allocating devices.(50. SPACE=(1024. Examples of the PGM Parameter Example 1 //JOB8 JOB .PASS).PASS) //STEP1 EXEC PGM=USCAN These statements indicate that the system is to search the private library DEPT12. read the member into storage.MARY. Note: JCLTEST and JSTTEST are supported only in JES3 systems.0 MVS JCL Reference . JCLTEST or JSTTEST provides for a step the same function as provided by the JOB statement TYPRUN=SCAN parameter for a job. the system does not honor requests for special program properties as defined in the program properties table (PPT).CREATE. procstepname identifies the EXEC statement of the procedure step that contains the DD statement with ddname in its name field. and execute the member.UNIT=3350. See z/OS JES3 Commands for details.MSGLEVEL=(2.BOB.procstepname.DISP=OLD PGM=*. The DD statement is in a cataloged or in-stream procedure that is called by an earlier job step.LINKLIB(P40). which defines a library created in the step named CREATE.LIB4.0) //JOBLIB DD DSNAME=DEPT12. When referring to a DD statement.stepname.MSGCLASS=H PGM=UPDT DSNAME=SYS1.DISP=(MOD. (See z/OS MVS Initialization and Tuning Reference.EXEC: PGM When referring to a DD statement. as a member of a partitioned data set (PDS) or a partitioned data set extended (PDSE).

LINKLIB. Program P40 is a member of SYS1. Syntax {PROC=procedure-name} {procedure-name } v The EXEC statement parameter field must begin with a PGM parameter or a PROC parameter. v You can omit PROC= and code only the procedure-name. PROC and Procedure Name Parameters Parameter Type Positional. or override or nullify corresponding DD statements in the procedure. @) characters. See the descriptions of the other parameters for details of their effects. EXEC Statement 16-25 . the first character must be alphabetic or national. The in-stream procedure must appear earlier in this job.LINKLIB. Example 2 Chapter 16. Any DD statements following this EXEC statement are added to the procedure. which defines system library SYS1. These two parameters must not appear on the same EXEC statement. #. optional Purpose Use the PROC parameter to specify that the system is to call and execute a cataloged or in-stream procedure. the other parameters on the statement are added to or override corresponding parameters on the EXEC statements in the called procedure. Subparameter Definition procedure-name Identifies the procedure to be called and executed: v The member name or alias of a cataloged procedure. The procedure-name is 1 through 8 alphanumeric or national ($. STEP3 executes program P40. Examples of the PROC Parameter Example 1 //SP3 EXEC PROC=PAYWKRS This statement calls the cataloged or in-stream procedure named PAYWKRS. Effect of PROC Parameter on Other Parameters and Following Statements Because this EXEC statement calls a cataloged or in-stream procedure. v The name on the PROC statement that begins an in-stream procedure.EXEC: PGM The EXEC statement named STEP3 contains a backward reference to DD statement DDA.

specify a job journal in one of the following: v JOURNAL=YES on the CLASS statement in the JES3 initialization parameters. A job journal is a sequential data set that contains job-related control blocks needed for restart.) v Allow JES to perform automatic step restart after a system failure even if the journal option is not specified in the JES initialization parameters or JES control statements. partially or totally. v Suppress. optional Purpose Use the RD (restart definition) parameter to: v Specify that the system is to allow the operator the option of performing automatic step or checkpoint restart if a job step abends with a restartable abend code. specify a job journal by one of the following: v JOURNAL=YES on the CLASS statement in the JES2 initialization parameters. For JES3. the action of the assembler language CHKPT macro instruction or the DD statement CHKPT parameter. v RD=R or RD=RNC on either the JOB statement or any one EXEC statement in the job. If you use the automatic restart manager (ARM) to restart a job. The system can perform automatic step restart for a job running during a system failure as long as the job has a job journal. v The operator authorizes a restart. you do not need to save the journal because ARM does not use the job journal when restarting jobs. (See the SCHEDxx parmlib member description in z/OS MVS Initialization and Tuning Guide for information about restartable abends. v JOURNAL=YES on a JES3 //*MAIN statement in the job. The system can perform automatic restart only if all of the following are true: v The JOB or EXEC statement contains RD=R or RD=RNC. v The step to be restarted abended with a restartable wait state code. For JES2.EXEC: PROC and Procedure Name //BK EXEC OPERATE This statement calls the cataloged or in-stream procedure named OPERATE. see z/OS DFSMS Checkpoint/Restart. RD Parameter Parameter Type Keyword. Considerations for an APPC Scheduling Environment 16-26 z/OS V1R3. References For detailed information on deferred checkpoint restart. v RD=R or RD=RNC on either the JOB statement or any one EXEC statement in the job.0 MVS JCL Reference .

It permits: v A CHKPT macro instruction to establish a checkpoint. only checkpoint restart can occur. It suppresses: v Any CHKPT macro instruction in the processing program: That is. RD=R allows the system to restart execution at the beginning of the step. RD=R allows the system to restart execution at the beginning of the abnormally terminated step. RD=R does not suppress checkpoint restarts: v If the processing program executed in a job step does not include a CHKPT macro instruction. RNC (Restart. v If the program includes a CHKPT macro instruction. On the JOB statement when resubmitting the job. If you code RD=NR and the system fails. NC (No Automatic Restart. v If the step abnormally terminates after the CHKPT macro instruction is executed. If you cancel the affects of the CHKPT macro instruction before the system performs a checkpoint restart. No Checkpoints) Indicates that the operator can perform automatic step restart if the job step fails. if the step abnormally terminates before the CHKPT macro instruction is executed. v The checkpoint at end-of-volume (EOV) facility. Syntax RD[. and the system is not to perform a deferred checkpoint restart if the job is resubmitted. the request for automatic step restart is again in effect. If you code RD. RD=NR does not prevent the job from restarting. NR (No Automatic Restart. RD=RNC suppresses automatic and deferred checkpoint restarts.EXEC: RD The RD parameter has no function in an APPC scheduling environment. Checkpoints Allowed) Indicates that the operator cannot perform automatic step restart if the job fails. v The job to be resubmitted for restart at the checkpoint.procstepname]= {R } {RNC} {NR } {NC } Subparameter Definition R (Restart. Checkpoints Allowed) Indicates that the operator can perform automatic step restart if the job step fails. specify the checkpoint in the RESTART parameter. No Checkpoints) Indicates that the operator cannot perform automatic step restart if the job step fails. the system will check it for syntax and ignore it. v The DD statement CHKPT parameter. Chapter 16. RD=NR suppresses automatic checkpoint restart but permits deferred checkpoint restarts. EXEC Statement 16-27 . the operator cannot perform an automatic checkpoint restart.

Then the parameter applies to all steps in the called procedure. the RD parameter is added to or overrides the RD parameter on: v The EXEC statement named in the procstepname qualifier. the system uses an EXEC statement RD parameter.RD=RNC RD=RNC specifies that. Examples of the RD Parameter Example 1 //STEP1 EXEC PGM=GIIM. Defaults If you do not code the RD parameter. It suppresses: v Any CHKPT macro instruction in the processing program. However. RD=RNC suppresses automatic and deferred checkpoint restarts. Example 2 //NEST EXEC PGM=T18. When no RD parameter is on the JOB statement. On an EXEC Statement that Calls a Procedure If an EXEC statement calls a cataloged or in-stream procedure.RD=NR RD=NR specifies that the operator cannot perform automatic step restart or automatic checkpoint restart. but only during the job step.0 MVS JCL Reference .procstepname parameters as the procedure has steps. the system uses the installation default from the job’s job class specified at initialization. each RD parameter must specify a unique procstepname. v The DD statement CHKPT parameter. 16-28 z/OS V1R3. v A request by a CHKPT macro instruction for an automatic checkpoint restart overrides a request by a JOB or EXEC statement RD=R parameter for automatic step restart. the operator can perform automatic step restart. The EXEC statement can have as many RD.RD=R RD=R specifies that the operator can perform automatic step restart if the job step fails. if the step fails. a CHKPT macro instruction can establish checkpoints to be used later for a deferred restart. v The checkpoint at EOV facility. Overrides v A JOB statement RD parameter applies to all steps of the job and overrides any EXEC statement RD parameters. The information applies only to the named procedure step. Code EXEC statement RD parameters when you want to specify different restart types for each job step.EXEC: RD RD=NC suppresses automatic and deferred checkpoint restarts. Example 3 //CARD EXEC PGM=WTE. Relationship to Other Control Statements Code RD=NC or RD=RNC to suppress the action of the DD statement CHKPT parameter. v All EXEC statements in the procedure if procstepname is not coded.

code REGION=68K. EXEC Statement 16-29 . The value is 1 through 7 decimal numbers. IEFUSI and IEALIMIT. The statement specifies different restart requests for each of the procedure steps: PAID and BILL.384K. from 1 through 2096128. Note: Specifying a REGION size that gives the STEP all the available storage. such as 0K or any value greater than 16. optional Purpose Use the REGION parameter to specify the amount of central or virtual storage that the step requires. the system will round it up to the next multiple of 4. For more information on region size with checkpoint/restart jobs. see ″Resource Control of Address Space″ in z/OS MVS JCL User’s Guide. If the value you code is not a multiple of 4.RD. v All additional storage that the programs in the step request with GETMAIN. Two installation exits. can also affect the size of the user address space assigned to the job step. Task initialization and termination can issue GETMAIN macro instructions for storage in the user’s address space.EXEC: RD Example 4 //STP4 EXEC PROC=BILLING. and CPOOL macro instructions.or installation-supplied routine IEALIMIT or IEFUSI is not used to establish a limiting value.BILL=NR This statement calls a cataloged or in-stream procedure BILLING.RD.PAID=NC. Code a multiple of 4. can cause storage problems if the IBM. STORAGE. v Enough unallocated storage for task initialization and termination. The amount of storage that you request must include the following: v Storage for all programs in the step to execute. see z/OS DFSMS Checkpoint/Restart. REGION Parameter Parameter Type Keyword.procstepname]= {valueK} {valueM} Subparameter Definition valueK Specifies the required storage in kilobytes (1 kilobyte = 1024 bytes). Syntax REGION[. References For more information on address space size. Chapter 16. For example.

If the region size specified is not available below 16 megabytes. from 1 through 2047.384K or 16M and less than or equal to 32. v A value greater than 0K or 0M and less than or equal to 16. The extended region size is the default value of 32 megabytes. The resulting size of the region below 16 megabytes depends on system options and what system software is installed. Code EXEC statement REGION parameters when you want to specify a different region size for each job step. v A value greater than 32. such as 0M or any value greater than 16M. can cause storage problems if the IBM. The extended region size is the default value of 32 megabytes. The resulting size of the region below and above 16 megabytes depends on system options and what system software is installed. The resulting size of the region below 16 megabytes depends on system options and what system software is installed.or installation-supplied routine IEALIMIT or IEFUSI is not used to establish a limiting value. Note: Specifying a REGION size that gives the STEP all the available storage.768K or 32M and less than or equal to 2. For example. but only during the job step.768K or 32M — gives the job step all the storage available below 16 megabytes. Overrides A JOB statement REGION parameter applies to all steps of the job and overrides any EXEC statement REGION parameters.EXEC: REGION valueM Specifies the required storage in megabytes (1 megabyte = 1024 kilobytes). the system uses an installation default specified at JES initialization.096. If your installation does not change the IBM-supplied default limits in the IEALIMIT or IEFUSI exit routine modules. The value is 1 through 4 decimal numbers. Defaults If no REGION parameter is specified. Relationship to the EXEC ADDRSPC Parameter When ADDRSPC=REAL Code a REGION parameter to specify how much central storage (also called real storage) the step needs.128K or 2047M — gives the job step all the storage available below 16 megabytes.384K or 16M — establishes the size of the private area below 16 megabytes. When no REGION parameter is on the JOB statement. the system uses an EXEC statement REGION parameter. the job step abnormally terminates. then specifying various values for the region size have the following results: v A value equal to 0K or 0M — gives the job step all the storage available below and above 16 megabytes. REGION=3M.0 MVS JCL Reference . the job step abnormally terminates. When ADDRSPC=VIRT or ADDRSPC is Omitteda 16-30 z/OS V1R3. The extended region size is the specified value. v A value greater than 16. If the region size specified is not available above 16 megabytes.

The exit routine IEFUTL is established through System Management Facilities (SMF). You can use the TIME parameter on an EXEC statement to increase or decrease the amount of processor time available to a job step over the default value.ADDRSPC=REAL.procstepname parameters as the procedure has steps. Example 2 //STP6 EXEC PGM=CONT.EXEC: REGION Code a REGION parameter to specify how much virtual storage the step needs. Chapter 16. unless an installation exit routine extends the time for the job. When the ADDRSPC parameter is not specified. each REGION parameter must specify a unique procstepname. A step that exceeds its allotted time abnormally terminates and causes the job to terminate. v All EXEC statements in the procedure if procstepname is not coded. The information applies only to the named procedure step. EXEC Statement 16-31 . Then the parameter applies to all steps in the called procedure. optional Purpose Use the TIME parameter to specify the maximum amount of time that a job step may use the processor or to find out through messages how much processor time a step used. Examples of the REGION Parameter Example 1 //MKBOYLE EXEC PROC=A.REGION=120K The system assigns a region of 120K bytes. the system defaults to ADDRSPC=VIRT. On an EXEC Statement that Calls a Procedure If an EXEC statement calls a cataloged or in-stream procedure.REGION=40K The system assigns 40K bytes of central (real) storage to this job step. The EXEC statement can have as many REGION. TIME Parameter Parameter Type Keyword. the REGION parameter is added to or overrides the REGION parameter on: v The EXEC statement named in the procstepname qualifier. References See “TIME Parameter” on page 20-47 (the TIME parameter on the JOB statement) or z/OS MVS Installation Exits.

See “Defaults” for an explanation of default time limits. the time limit for any job step is: v The value you specify for the TIME parameter on its EXEC statement. the system can reduce the processor time available to a job step.procstepname]= {([minutes][. v The time limit that was specified or the default time limit. Defaults Each job step has a time limit. 1440 or NOLIMIT Indicates that the step can use the processor for an unlimited amount of time. if you do not specify a TIME parameter on its EXEC statement.EXEC: TIME Syntax TIME[. the system sets the time limit for the step to the smaller of the two following values: v The job time remaining after all previous job steps have completed. Seconds must be a number from 0 through 59. in addition to any minutes that are specified.″) Also code TIME=1440 or TIME=NOLIMIT to specify that the system is to allow this step to remain in a continuous wait state for more than the installation time limit. or the processor time in minutes. 0 Indicates that the step is to use the time remaining from the previous step. 0. Minutes must be a number from 0 through 357912 (248. Subparameter Definition minutes Specifies the maximum number of minutes the step can use the processor. On an EXEC Statement that Calls a Procedure If an EXEC statement calls a cataloged or in-stream procedure. the TIME parameter is added to or overrides the TIME parameter on: 16-32 z/OS V1R3.55 days). (″1440″ literally means ″24 hours. If the step exceeds the remaining time available. which is established through SMF. In those two cases. Overrides If you specify either MAXIMUM or a value in minutes or seconds other than 1440 for the JOB statement TIME parameter.seconds])} {1440 } {NOLIMIT } {MAXIMUM } {0 } You can omit the parentheses if you code only 1440. the step abnormally terminates. the JES default job step time limit). seconds Specifies the maximum number of seconds that the step can use the processor. or v The default time limit (that is. MAXIMUM Indicates that the step can use the processor for the maximum amount of time.0 MVS JCL Reference . If you do not specify a TIME parameter on the JOB statement. Coding TIME=MAXIMUM allows the step to run for 357912 minutes.

TIME=(. The information applies only to the named procedure step.EXEC: TIME v The EXEC statement named in the procstepname qualifier. Example 4 //LONG EXEC PGM=INVANL. Therefore. The statement specifies different time limits for each of the procedure steps: PAID and BILL. 10 seconds. Example 2 //FOUR EXEC PGM=JPLUS. Example 6 //STP6 EXEC PGM=TIMECARD.30) This statement specifies that the maximum amount of time the step can use the processor is 30 seconds. Example 3 //INT EXEC PGM=CALC. The first step in the procedure is allowed 5 minutes.10) This statement specifies that the maximum amount of time the step can use the processor is 12 minutes. the step can use the processor and can remain in a wait state for an unspecified period of time. the second step is allowed 5 minutes minus the time used by the first step.TIME=NOLIMIT This statement specifies that the step can have unlimited use of the processor. Examples of the TIME Parameter For examples of TIME coded on both the JOB and EXEC statements. Specifying TIME=1440 or TIME=NOLIMIT on the calling EXEC statement allows the procedure to have unlimited processor time.TIME=5 This statement specifies that the maximum amount of time the step can use the processor is 5 minutes.59) This statement calls cataloged or in-stream procedure BILLING. The EXEC statement can have as many TIME.30). suppose you specify TIME=5 on an EXEC statement that calls a procedure. the TIME parameter applies to the entire procedure and nullifies any TIME parameters on EXEC statements in the procedure. and so forth. For example.BILL=(112.TIME=MAXIMUM Chapter 16. EXEC Statement 16-33 . see “Examples of the TIME Parameter on JOB and EXEC Statements” on page 20-49. the third step is allowed 5 minutes minus the time used by the first and second steps. Example 1 //STEP1 EXEC PGM=GRYS.TIME. each TIME parameter must specify a unique procstepname. if not restricted by the JOB statement TIME parameter.procstepname parameters as the procedure has steps.TIME. If procstepname is not coded. regardless of any TIME parameter values on EXEC statements in the procedure.PAID=(45.TIME=(12. Example 5 //STP4 EXEC PROC=BILLING. TIME=1440 and TIME=NOLIMIT also nullify any TIME parameters on EXEC statements in the procedure.

If STEP1 actually uses the processor for only 15 seconds. Example 8 //TEST1 //STEP1 //STEP2 //STEP3 JOB MSGLEVEL=(1. the job time remaining is the smaller value.TIME=(. If STEP1 actually uses the processor for 4 minutes.TIME=8. If STEP1 actually uses the processor for only 40 seconds. the job time remaining is the smaller value. STEP3 can use the processor for 5 seconds.1) //STEP1 EXEC PGM=USES40. if not restricted by the JOB statement TIME parameter.CLASS=5 //STEP1 EXEC PGM=USES4 //STEP2 EXEC PGM=USESREST Assume that the default time limit for class 5 is 5 minutes. If STEP2.EXEC: TIME This statement specifies that the step can use the processor for 357912 minutes. In this case. so STEP2 can use the processor for 35 seconds. Example 9 //TEST2 JOB MSGLEVEL=(1. 16-34 z/OS V1R3.TIME=0 STEP1 can use the processor for 50 seconds. then.TIME=0 STEP1 can use the processor for 25 seconds. because that is the time remaining from the previous step. the time limit for STEP2 is the smaller of the following values: v The job time remaining (4 minutes) v The default time limit (5 minutes).1).TIME=(. Example 7 //TEST1 JOB MSGLEVEL=(1. so STEP2 can use the processor for 4 minutes.0 MVS JCL Reference .25) EXEC PGM=USES30.TIME=(. In this case. The time limit for STEP1 is 5 minutes (the default). actually uses the processor for only 30 seconds.50) EXEC PGM=USES15. STEP2 can use the processor for 10 seconds.TIME=(. the time limit for STEP2 is the smaller of the following values: v The job time remaining (35 seconds) v The time limit specified on the EXEC statement for STEP2 (40 seconds).1).50) //STEP2 EXEC PGM=USESREST.40) EXEC PGM=USESREST. because that is the time remaining from the previous step.

. . ELSE. The IF statement is always followed by a relational-expression and a THEN clause. //[name] . v The ENDIF statement indicates the end of the IF/THEN/ELSE/ENDIF statement construct. operation (ELSE). The steps that execute in a THEN clause and an ELSE clause can be another IF/THEN/ELSE/ENDIF statement construct. if present. //[name] IF [(]relational-expression[)] THEN [comments] action when relational-expression is true ELSE [comments] action when relational-expression is false ENDIF [comments] The IF statement consists of the characters // in columns 1 and 2 and the five fields: name. an ELSE clause can follow the THEN clause. the relational-expression.Chapter 17. . Purpose Use the IF/THEN/ELSE/ENDIF statement construct to conditionally execute job steps within a job. Optionally. the characters THEN. or the THEN clause. and must be coded for each construct. Description Syntax //[name] . and ENDIF statements. collectively called the IF/THEN/ELSE/ENDIF statement construct. 1988. and comments. The relational-expression can be enclosed in parentheses. code it as follows: v The name should be unique within the job. and ENDIF statements. You can nest IF/THEN/ELSE/ENDIF statement constructs up to a maximum of 15 levels. The ENDIF statement consists of the characters // in columns 1 and 2 and the three fields: name. operation (IF). v The ELSE clause specifies the job steps that the system processes when the evaluation of the relational-expression for the IF statement is a false condition. © Copyright IBM Corp. IF/THEN/ELSE/ENDIF Statement Construct This topic describes the IF/THEN. operation (ENDIF). An ENDIF statement always follows the ELSE clause. Name Field A name is optional on IF/THEN. The ELSE statement consists of the characters // in columns 1 and 2 and the three fields: name. If used. 2002 17-1 . v The name must begin in column 3. . and comments. v The THEN clause specifies the job steps that the system processes when the evaluation of the relational-expression for the IF statement is a true condition. ELSE. The system evaluates the relational-expression at execution time. and comments.

17-2 z/OS V1R3. as can be done when coding DD statements. The first character must be alphabetic or national ($. . You can code comments after you have completed the statement. and the values of the operands or expressions that are compared at execution time. the system first determines whether the step executed. The result of the evaluation of the relational-expression always depends on two factors: the operation specified. to test that a return code is greater than 4. If the step did not execute. #. column 3 must be blank. Do not put comments on the statement that you are continuing.0 MVS JCL Reference . Relational-Expression Field The relational-expression field follows the IF operation field after at least one intervening blank and is followed by at least one blank before the characters THEN. It can begin in any column. For example: // IF (RC > 4) THEN A relational-expression indicates the condition that the system evaluates. and then separated by a period. The name may be preceded by up to 8 alphanumeric or national characters. #. @) characters. or ENDIF and must be preceded and followed by at least one blank. Operation Field The operation field consists of the characters IF. code: // IF RC > 4 THEN You can enclose the relational-expression in parentheses. For example. Coding the name in this way should not be confused with specifying an override. A relational-expression consists of: v Comparison operators v Logical operators v NOT (¬) operators v Relational-expression keywords.IF/THEN/ELSE/ENDIF v v v v The name is 1 through 8 alphanumeric or national ($. Continuing a Relational Expression You can continue relational-expressions on the next JCL statement. and continue the expression beginning in column 4 through 16 of the next statement. Priorities of Operators The operators that you can use in a relational-expression and their processing priority are shown in Figure 17-1 on page 17-3. @). ELSE. For example: //TESTCON // IF (RC = 8 | RC = 10 | RC = 12 | RC = 14) THEN COMMENTS OK HERE . The result of evaluating a relational-expression is either true or false. Break the relational-expression where a blank is valid on the current statement. the evaluation of the relational-expression is false. | | | If a name is not coded. If you specify a stepname as part of a relational-expression. The name must be followed by at least one blank.

GT and > have the same meaning. (RC GT 10) and (RC > 10) are the same. Blanks are required to precede and follow alphabetic comparison operators (such as GT or EQ). it is good practice to use blanks so your code is easier to read. For example. to test for a return code of 8. Operator -------NOT operator: NOT or ¬ NOT first Operation --------Order of Evaluation ---------- Comparison operators: GT LT NG NL EQ NE GE LE or or or or or or or or > < ¬> ¬< = ¬= >= <= Greater than Less than Not greater than Not less than Equal to Not equal to Greater than or equal to Less than or equal to second second second second second second second second Logical operators: AND or & OR or | AND OR third third Figure 17-1. The comparison results in a true or false condition. Chapter 17. You can specify either the alphabetic characters or the special characters for an operator. Operators on IF/THEN/ELSE/ENDIF Statement Construct Comparison Operators Use comparison operators in a relational-expression to compare a keyword with a numeric value. the expression is true. IF/THEN/ELSE/ENDIF Statement Construct 17-3 . Blanks are not required to precede and follow special character comparison operators (such as > or ¬=). For example.IF/THEN/ELSE/ENDIF The system evaluates operators in the order indicated. the expression is false. otherwise. Logical Operators Use the & (AND) and | (OR) logical operators in a complex relational-expression to indicate that the Boolean result of two or more relational-expressions is to be evaluated. if a return code is 8. Code operators with the same priority in the order in which you want the system to evaluate them. You must precede and follow the & (AND) and | (OR) operators with at least one blank. However. Precede and follow the special character & with at least one blank so that it is not confused with symbolic parameters. code: //TESTA IF (RC = 8) THEN In the example.

2. to test that a return code is both greater than 8 and less than 24 (in the range 9 through 23). and (RC >= 10) tests for a return code greater than or equal to 10. For example.0 MVS JCL Reference . Evaluate a return code by coding RC. For example. are not intended or supported keywords. the relational expression is true when the return code is 0. 17-4 z/OS V1R3. code: //TESTOR IF (RC = 8 | RC = 10 | RC > 24) THEN NOT Operator Use the ¬ (NOT) operator to reverse the testing of relational-expressions. 6. 4. You do not need to code a blank between the ¬ operator and the expression it is reversing. //TESTNOTC IF ¬(RC = 8 | RC > 10) THEN //TESTNOTD IF (RC ¬= 8 & RC <= 10) THEN Note that the use of the ¬ operator reverses both the logical and comparison operators.4095. 9. The relational expression is true when the return code is between 0 and 8: //TESTNOTA //TESTNOTB IF IF ¬(RC > 8) (RC <= 8) THEN THEN The statements TESTNOTC and TESTNOTD make the same test. a comparison operator. equal to 10. to test that a return code is either equal to 8. even if accepted by the system. and a numeric value. 1. or greater than 24. the statements TESTNOTA and TESTNOTB make the same test.IF/THEN/ELSE/ENDIF The & (AND) operator indicates that all of the specified expressions must be true. 3. code: //TESTAND IF (RC > 8 & RC < 24) THEN The | (OR) operator specifies that only one of the expressions need be true. Relational-Expression Keywords The following keywords are the only keywords supported by IBM and recommended for use in relational-expressions. or 10. Keyword Use RC indicates ABEND indicates ¬ABEND indicates ABENDCC indicates RUN indicates ¬RUN indicates a return code an abend condition occurred no abend condition occurred a system or user completion code that the specified step started execution that the specified step did not start execution Descriptions of the keywords follow: RC Indicates that the relational-expression tests a return code. For example. For example. the expression (RC = 8) tests for a return code equal to 8. 5. Any other keywords. The return code must be within the range of 0 . 7.

ABEND=FALSE Indicates that the relational-expression tests that no abend occurred on a specific step (stepname) of the job. If stepname is omitted. RC is initially set to zero. ¬ABEND ABEND=FALSE Indicates that the relational-expression tests that an abend condition did not occur during the processing of the job prior to the time of evaluation.procstepname. See “Errors that Prevent Execution.RC Indicates that the relational-expression tests a return code for a specific step (stepname) of the job. Regardless of IF Statement Tests” on page 17-9 for further information. Certain types of abnormal termination by the system prevent the execution of the THEN or ELSE clauses of an IF/THEN/ELSE/ENDIF statement construct.procstepname. Note: At the start of execution. The statement IF ABEND THEN tests true when an abend occurred on any previous job step. or abnormally ends is not evaluated. If stepname is omitted.IF/THEN/ELSE/ENDIF If you omit stepname.procstepname.ABEND stepname. Any step that did not start execution. regardless of any tests for abnormal termination conditions. stepname.ABEND stepname.procstepname. IF/THEN/ELSE/ENDIF Statement Construct 17-5 . regardless of any tests for abnormal termination conditions.ABEND=TRUE Indicates that the relational-expression tests for an abend that occurred on a specific step (stepname) and procedure step (procstepname) of the job. stepname.ABEND stepname. ¬stepname. See “Errors that Prevent Execution. ABEND and ABEND=TRUE refer to all previous steps. This applies only to steps that execute.ABEND=TRUE Indicates that the relational-expression tests for an abend that occurred on a specific step (stepname) of the job. The statement IF ¬ABEND THEN tests true when no abend occurred on any previous job step. Regardless of IF Statement Tests” on page 17-9 for further information. stepname. ¬stepname. ABEND ABEND=TRUE Indicates that the relational-expression tests for an abend condition that occurred during processing of the job prior to the time of evaluation.ABEND Chapter 17.RC Indicates that the relational-expression tests a return code for a specific step (stepname) and procedure step (procstepname) of the job. stepname. ¬ABEND and ABEND=FALSE refer to all previous steps. Certain types of abnormal termination by the system prevent the execution of the THEN or ELSE clauses of an IF/THEN/ELSE/ENDIF statement construct. RC refers to the highest job step return code that occurred during job processing prior to the time of evaluation. is cancelled.

If stepname is omitted.RUN=TRUE Indicates that the relational expression tests that a specific job step (stepname) and procedure step (procstepname) started execution.RUN stepname. Specification of Step Names in Relational Expression Keywords If you specify stepname.keyword. regardless of any tests for abnormal termination completion codes. stepname identifies the EXEC statement that invokes the procedure in which procstepname appears. ¬stepname. and U with a decimal value (4 digits) for user abend codes. ¬stepname.RUN stepname.procstepname. and ABENDCC=U0100 tests for user abend code 0100.procstepname.procstepname. stepname. stepname.IF/THEN/ELSE/ENDIF stepname.RUN stepname.RUN=FALSE Indicates that the relational expression tests that a specific job step (stepname) did not start execution.ABENDCC=Uxxxx Indicates that the relational-expression tests the abend code for a specific step (stepname) of the job. Specify S with a hexadecimal value (3 characters) for system abend codes. ABEND=Sxxx and ABENDCC=Uxxxx refer to the most recent abend code that occurred during the execution of the job prior to the time of evaluation.RUN=TRUE Indicates that the relational expression tests that a specific job step (stepname) started execution. Certain types of abnormal termination by the system prevent the execution of the THEN or ELSE clauses of an IF/THEN/ELSE/ENDIF statement construct.RUN=FALSE Indicates that the relational expression tests that a specific job step (stepname) and procedure step (procstepname) did not start execution. 17-6 z/OS V1R3. ABENDCC=S0C4 tests for system abend code 0C4.RUN stepname.ABENDCC=Sxxx stepname. If you specify stepname.procstepname. procstepname must identify a step containing the PGM keyword. where keyword is any of the relational expression keywords.ABENDCC=Uxxxx Indicates that the relational-expression tests the abend code for a specific step (stepname) and procedure step (procstepname) of the job.procstepname.procstepname.ABEND=FALSE Indicates that the relational-expression tests that no abend occurred on a specific step (stepname) and procedure step (procstepname) of the job. stepname. See “Errors that Prevent Execution. In this case.keyword.0 MVS JCL Reference . Regardless of IF Statement Tests” on page 17-9 for further information.procstepname. stepname must identify a step containing the EXEC PGM keyword rather than one that invokes a procedure.procstepname. ABENDCC=Sxxx ABENDCC=Uxxxx Indicates that the relational-expression tests for a system abend completion code (Sxxx) or user-defined abend completion code (Uxxxx). stepname. For example.ABENDCC=Sxxx stepname.

IF/THEN/ELSE/ENDIF Statement Construct 17-7 . ELSE. if specified. Chapter 17. 3 or 16: //TESTPAR1 IF ((RC LT 4 & RC LT 12) | RC = 16) THEN Comments Field The comments field follows THEN. 1.IF/THEN/ELSE/ENDIF When you specify a step name as part of a relational expression keyword. For more information about step names in relational expression keywords. does not specify an abend condition (COND=EVEN or COND=ONLY). THEN and ELSE Clauses A THEN clause consists of the JCL statements between the IF/THEN statement and. For example. if any. 1. Location in the JCL An IF/THEN/ELSE/ENDIF statement construct can appear anywhere in the job after the first EXEC statement. If the step did not start executing. and ENDIF after at least one intervening blank. 2. If any of these keywords is specified (with or without stepname or procstepname). You must always specify a step name when using the RUN relational-expression keywords to determine if a step or procedure step executed. and v the IF/THEN/ELSE/ENDIF structure containing the job steps does not specify the ABEND. Therefore. code the following to test that a return code is 0. its matching ELSE statement. the system evaluates that part of the expression as false. v The step’s COND parameter. the system executes the job step represented by the EXEC statement only when both the IF/THEN/ELSE/ENDIF statement construct and the COND parameter evaluate to execute. 2. the system performs the test indicated by the relational expression. Defaults By default. Relationship to Other Parameters When you specify both an IF/THEN/ELSE/ENDIF statement construct and a COND parameter for an EXEC statement. you can control the way in which complex relational-expressions are evaluated. ABENDCC. or ¬ABEND keyword. it is a null THEN clause. Use of Parentheses with Relational Expressions The system evaluates relational-expressions that are enclosed within parentheses prior to expressions found outside of parentheses. the job steps do execute despite the abend. If you do not specify any statements. the system tests whether the specified step started executing. If the step started executing. or 3: //TESTPAR IF (RC LT 4 & (RC LT 12 | RC = 16)) THEN By keeping the same expressions but changing the position of the parentheses. see z/OS MVS JCL User’s Guide. job steps within the IF/THEN/ELSE/ENDIF statement construct do not execute when v An abend occurred. its matching ENDIF statement. otherwise. you can test that a return code is 0.

rather. once determined. In an IF/THEN/ELSE/ENDIF statement construct. it is a null ELSE clause. either normal or abnormal. If you do not specify any statements. They can be placed in a THEN or ELSE clause. v The result of processing an IF/THEN/ELSE/ENDIF statement construct. v All data sets defined on DD statements in the job must be available at the time the job is selected for execution. but they are not executed conditionally.IF/THEN/ELSE/ENDIF An ELSE clause consists of the JCL statements between the ELSE statement and its matching ENDIF statement. SYSMDUMP. in either the THEN clause or the ELSE clause of an IF/THEN/ELSE/ENDIF statement construct. The system executes the following statements conditionally. Execution of the statement depends on the evaluation of the relational-expression at execution time: Nested IF/THEN/ELSE/ENDIF statement constructs EXEC statements DD (including DD * and DD DATA) statements STEPCAT and STEPLIB DD statements SYSABEND.0 MVS JCL Reference . and SYSUDUMP DD statements SYSCHK (step level) and SYSCKEOV DD statements SYSIN DD statements OUTPUT JCL statements CNTL and ENDCNTL statements Do not place the following statements in a THEN or ELSE clause: JOB statement JCLLIB statement JOBCAT and JOBLIB statement SYSCHK (job level) statement XMIT JCL statement The system processes the following statements regardless of the logic of the IF/THEN/ELSE/ENDIF statement construct. PROC and PEND statements JES2 and JES3 statements and commands JCL command statements Comment (//*) statements INCLUDE statements Delimiter (/*) statements Null statements SET statements Considerations when Using the IF/THEN/ELSE/ENDIF Construct Be aware of the following considerations when using the IF/THEN/ELSE/ENDIF statement construct: v The IF/THEN/ELSE/ENDIF statement construct does not conditionally control the processing of JCL. it conditionally controls the execution of job steps. See Example 9. v The system allocates all DD statements defined to a step if the execution time evaluation of the relational-expression determines that a step is to be executed. remains unchanged regardless of the outcome from running any remaining steps in a job. The system does not reexamine the original condition at any later job step termination. the THEN clause or the ELSE clause must contain at least one EXEC statement to identify a job step. 17-8 z/OS V1R3.

the system may be unable to execute the step. remaining job steps are not executed. regardless of any tests on the IF statement.IF/THEN/ELSE/ENDIF v You can nest IF/THEN/ELSE/ENDIF statement constructs up to a maximum of 15 levels. the maximum limit for the number of steps in the job is 254 steps. RC. When Job Time Expires The system abnormally terminates processing if a step has exceeded the time limit for the job. Any other symbolic parameters. even if accepted by the system. the data set v Will not exist if the step creating it was bypassed. regardless of any tests for abnormal termination conditions. Regardless of IF Statement Tests Certain error conditions prevent the system from executing the THEN or ELSE clauses of an IF/THEN/ELSE/ENDIF statement construct.. are not intended or supported. or v May be incomplete if the step creating it abnormally terminated. See z/OS MVS System Codes for further information about specific system completion codes. IF/THEN/ELSE/ENDIF Statement Construct 17-9 . regardless of any tests for abnormal termination conditions. When such an error condition occurs. There are additional considerations related to errors that prevent execution of the THEN or ELSE clause. v An IF statement specified before the first EXEC statement in a job is not evaluated before the first step executes. If the IF statement applies to later steps in the job. no matter what is specified on the IF statement. v You can specify symbolic parameters on IF/THEN/ELSE/ENDIF statements provided that they resolve to one of the supported relational-expression keywords listed in the preceding topic (that is. When the Program Does Not Have Control Chapter 17. the statement will be evaluated when the system decides whether to process the later steps. As a result. the system does not execute the THEN or ELSE clause.).. When a Referenced Data Set Is Not Complete When a job step that contains the IF/THEN/ELSE/ENDIF statement construct references a data set that was to be created or cataloged in a preceding step. The specification of the IF/THEN/ELSE/ENDIF construct has no effect on this type of abnormal termination. Errors that Prevent Execution. v When you specify an IF statement before the first EXEC statement in a job and the job contains a JOBLIB DD statement. ABEND. The completion codes associated with these types of abnormal termination are: 122 Operator canceled job 222 Operator or TSO/E user canceled job You might encounter other system completion codes for which the THEN or ELSE clause is not executed. . These conditions are as follows: Abnormal Termination by the System After certain types of abnormal termination by the system. and there are special considerations related to restarted jobs.

will cause the system to skip steps. (due to failures such as JCL errors or the inability to allocate space).RUN condition is recommended. See “Example 7” on page 17-13 for an example of a statement construct with a deferred checkpoint restart. The default value for relational expressions on IF/THEN statements is false.RC > 8) THEN //TRUE EXEC PROC=ERROR //IFBADEND ENDIF //NEXTSTEP EXEC PROC=CONTINUE 17-10 z/OS V1R3. v Relational expressions on IF/THEN statements on steps following the restarted step can still refer to these following steps. If you plan to use either type of deferred restart. the step must abnormally terminate while the program has control.IF/THEN/ELSE/ENDIF For the system to act on the IF/THEN/ELSE/ENDIF statement construct. unlike COND. Examples of IF/THEN/ELSE/ENDIF Statement Constructs Example 1 The following example shows the use of the alphabetic characters rather than special characters for comparison operators. //IFBAD or //IFBAD . EXEC PGM=RTN . Planning ahead in this manner can help prevent the need to update the JCL when the job is submitted for restart.. The points to consider are the following: v Relational expressions on IF/THEN statements that refer to a step preceding the restarted step are evaluated as false. Considerations for Restarted Jobs There are four types of restarts: v Automatic step restart v Automatic checkpoint restart v Deferred step restart v Deferred checkpoint restart Only the automatic restarts retain the information (step completion codes) necessary to perform valid evaluations of any relational expressions based on prior steps. the system bypasses the remaining steps. //IFBAD IF (ABEND | STEP1.RC > 8) THEN (ABEND OR STEP1. which. you should keep certain points in mind when coding the JCL for the job.RC GT 8) THEN (RC > 4 & RC < 8) THEN (RC GT 4 AND RC LT 8) THEN Example 2 The following example shows a simple IF/THEN/ELSE/ENDIF statement construct without an ELSE statement.0 MVS JCL Reference . The steps specified by the IF/THEN/ELSE/ENDIF statement construct do not execute. but should also check to see whether the referenced steps actually ran during this invocation. //IFTEST2 or //IFTEST2 IF IF IF IF (ABEND | STEP1. //JOBA //STEP1 JOB . If a step abnormally terminates during scheduling. . .. Adding a ¬STEP.

Example 5 The following example shows nested IF/THEN/ELSE/ENDIF statement constructs with ELSE clauses. //IFBAD IF (ABEND | STEP1. .. or STEP1 has returned a return code that is greater than 8. or STEP1 has returned a return code that is greater than 8.. 3. . step TRUE is bypassed and the system processes step NEXTSTEP.. and the null ELSE clause passes to NEXTSTEP.IF/THEN/ELSE/ENDIF The IF statement named IFBAD invokes procedure ERROR if either an abend has occurred on a previous step of the job. //IFTEST2 IF (RC > 4 & RC < 8) THEN //* *** WARNING CONDITION REPORTING GROUP *** //STEP1 EXEC PGM=IEFBR14 //REPORT EXEC PROC=REPTRTN //* *** WARNING CONDITION REPORTING GROUP END *** // ELSE //ERRORSTP EXEC PROC=ERRORTN //ENDTEST2 ENDIF //NEXTSTEP EXEC PROC=CONTINUE Processing for this IF/THEN/ELSE/ENDIF statement construct is: 1.. Otherwise. IF/THEN/ELSE/ENDIF Statement Construct 17-11 . the system bypasses step TRUE. The system executes program IEFBR14 and procedure REPTRTN on EXEC statements STEP1 and REPORT. 2. //PROC1 PROC //PSTEPONE EXEC PGM=. Otherwise.. If the relational-expression for the IF/THEN statement construct named IFTEST2 is true (the highest step return code for the job is greater than 4 and less than 8 at the point when this statement is being processed).. //PSTEP11 EXEC PGM=.. the relational-expression for IFTEST2 is false and the system processes the ELSE clause (procedure ERRORTN on EXEC statement ERRORSTP).. EXEC PGM=RTN1 . the system processes the THEN clause.. //JOBD JOB . The nested statements are indented so that they are easier to read. //JOBB //STEP1 JOB . Example 4 The following example shows a simple IF/THEN/ELSE/ENDIF statement construct with an ELSE clause. Processing then continues with procedure CONTINUE on step NEXTSTEP. Chapter 17. Otherwise. //JOBC //STEP0 JOB . Example 3 The following example shows a simple IF/THEN/ELSE/ENDIF statement construct with a null ELSE clause. EXEC PGM=RTN ..RC > 8) THEN //TRUE EXEC PROC=ERROR // ELSE //IFBADEND ENDIF //NEXTSTEP EXEC PROC=CONTINUE The IF statement named IFBAD invokes procedure ERROR if either an abend has occurred on a previous step of the job.

PSTEPTWO. Processing for the IF/THEN/ELSE/ENDIF construct named IFTEST4 is: 17-12 z/OS V1R3. The nested statements are indented so that they are easier to read. 5. 3..PARM=(EXP1) ELSE EXEC PGM=ERRTN..RC > 4) THEN EXEC PGM=PROG1 ELSE IF (EXP2. passing EXP2 as a parameter. If the relational-expression for IFTEST3 is true (the highest step return code for the job is greater than 12 at the point where this statement is being processed). passing EXP1 as a parameter... Step NOPROB invokes procedure RUNOK. PEND EXEC PROC=PROC1 EXEC PROC=PROC2 IF (RC > 12) THEN IF (EXP1. the system processes the THEN clause of IFTEST3.RC > 12) THEN EXEC PGM=ERRTN. 2. PEND PROC EXEC PGM=.. if the relational-expression for IFTEST3 is false. Step STEP2ERR invokes program ERRTN.PSTEP11.ABENDCC=U0012) THEN EXEC PGM=PROG2 ELSE EXEC PGM=PROG3 ENDIF ENDIF EXEC . the system processes the THEN clause of STEP1BAD. one of which is nested in the ELSE clause of the other. PROC EXEC PGM=.PSTEP12.... If the STEP1BAD relational-expression is not true..RC > 12 OR EXP1. Example 6 The following example shows two IF/THEN/ELSE/ENDIF statement constructs. //JOBE //PROC1 //PSTEPONE // //PROC2 //PSTEPTWO // //EXP1 //EXP2 //IFTEST4 //STEP1ERR // //IFTEST5 //STEP2ERR // //NOERR //ENDTEST5 //ENDTEST4 //NEXTSTEP JOB . 4. the system processes the ELSE clause for STEP1BAD. the system processes the ELSE clause..PSTEPONE.. Processing then continues with step NEXTSTEP. It evaluates the relational-expression of the IF/THEN/ELSE/ENDIF construct named STEP1BAD. Processing for the IF/THEN/ELSE/ENDIF construct named IFTEST3 is: 1. If the STEP1BAD relational-expression is true (the return code is greater than 12 for either of the two steps in procedure PROC1. Step STEP1ERR invokes program ERRTN. which is invoked by step EXP1)... However. PEND EXEC PROC=PROC1 EXEC PROC=PROC2 IF (EXP1. PEND PROC EXEC PGM=.PARM=(EXP2) ENDIF ELSE EXEC PROC=RUNOK ENDIF EXEC .0 MVS JCL Reference .IF/THEN/ELSE/ENDIF //PSTEP12 // //PROC2 //PSTEPTWO // //EXP1 //EXP2 //IFTEST3 //STEP1BAD //STEP1ERR // //STEP2ERR //END1BAD // //NOPROB //ENDTEST3 //NEXTSTEP EXEC PGM=..

The conditions on statement IF1 will be checked before executing STEP2. which is invoked by step EXP1). IF/THEN/ELSE/ENDIF Statement Construct 17-13 . //DEFER2 //STEP1 //IF1 //STEP2 //STEP3 //STEP4 // JOB RESTART=(STEP3) EXEC PGM=IEFBR14 IF STEP1. EXEC statement STEP1ERR invokes program PROG1.RC=0 | ¬STEP1. Processing for the IF/THEN/ELSE/ENDIF construct named IFTEST5 is: a. which is invoked by step EXP2). the user-defined abend completion code is not 0012 from PSTEPTWO in procedure PROC2.RUN THEN EXEC PGM=DEBIT1 EXEC PGM=CREDIT1 EXEC PGM=SUMMARY1 ELSE Chapter 17. 3. and processing continues with step NEXTSTEP. which is invoked by step EXP1). STEP2. STEP3.RUN tests true.RC=0 | ¬STEP1.RUN THEN EXEC PGM=DEBIT1 EXEC PGM=CREDIT1 EXEC PGM=SUMMARY1 ELSE EXEC PGM=DEBIT2 EXEC PGM=CREDIT2 EXEC PGM=SUMMARY2 ENDIF Processing for the IF/THEN/ELSE/ENDIF construct named IF1 is as follows: 1. The system then passes control to ENDIF statement ENDTEST5. The system then passes control to ENDIF statement ENDTEST4. STEP6. and STEP4 would not execute and STEP5. EXEC statement STEP2ERR invokes program PROG2.CHECK004) EXEC PGM=IEFBR14 IF STEP1. and then ENDTEST4. the system processes the ELSE clause of IFTEST5. Note: Without the ¬STEP. and STEP4 will execute and STEP5. If the relational-expression for IFTEST4 is true (the return code is greater than 4 for PSTEPONE in procedure PROC1. //DEFER1 //STEP1 //IF1 //STEP2 //STEP3 //STEP4 // //STEP5 //STEP6 //STEP7 // JOB RESTART=(STEP2. STEP6. if the relational-expression for IFTEST5 is false (that is. the system processes the THEN clause of IFTEST5. It evaluates the IF/THEN/ELSE/ENDIF statement construct IFTEST5. EXEC statement NOERR invokes program PROG3. ¬STEP1. STEP2.RUN condition. However.RC=0 tests false because STEP1 did not execute and cannot be correctly evaluated. Processing then continues with step NEXTSTEP. if the relational-expression for IFTEST4 is false (the return code is 4 or less for PSTEPONE in procedure PROC1. 2. 2. and STEP7 will not execute.IF/THEN/ELSE/ENDIF 1. the system processes the THEN clause of IFTEST4. the system processes the ELSE clause of IFTEST4. and STEP7 would execute. However. STEP1. STEP3. which is invoked by step EXP2). therefore. Processing continues with EXEC statement NEXTSTEP. If the relational-expression for IFTEST5 is true (the user-defined abend completion code is 0012 from PSTEPTWO in procedure PROC2. Example 7 The following example shows an IF/THEN/ELSE/ENDIF statement construct with a deferred checkpoint restart. b. Example 8 The following example shows an IF/THEN/ELSE/ENDIF statement construct with a deferred step restart.

17-14 z/OS V1R3.RUN tests true. and STEP7 will not execute. //STEP3 EXEC PGM=. //IFTEST6 IF ¬ABEND THEN //STEP2 EXEC PGM=.. Thus.. The conditions on statement IF1 will be checked before executing STEP3.. as prescribed by the ELSE clause. Note: Without the ¬STEP1. Example 9 The following example specifies that if STEP1 does not abend. STEP3 and STEP4 would not run.IF/THEN/ELSE/ENDIF //STEP5 EXEC PGM=DEBIT2 //STEP6 EXEC PGM=CREDIT2 //STEP7 EXEC PGM=SUMMARY2 // ENDIF Processing for the IF/THEN/ELSE/ENDIF construct named IF1 is: 1. ¬STEP1... STEP6.. STEP1. the system is to run STEP2 and STEP3.. STEP1 does abend. if STEP1 does not abend. and STEP7 would run. 2. //STEP1 EXEC PGM=. STEP3 (and not STEP4) still runs. STEP4 is the next step to run. 3. // ELSE //STEP4 EXEC PGM=. STEP3 and STEP4 will execute and STEP5. // ENDIF The determination of which steps to run is made when the IF/THEN/ELSE/ENDIF statement construct is processed immediately after STEP1 executes.0 MVS JCL Reference ...RUN condition. This determination is not subject to change based on the results of running steps after STEP1. Otherwise it is to run STEP4. therefore. //JOBF JOB . and STEP5.RC=0 tests false because STEP1 did not execute and cannot be correctly evaluated. If. however. STEP6. even if STEP2 does..

and then separated by a period. The JCL statements. Parameter Field The INCLUDE statement contains one keyword parameter: MEMBER=name Specifies the name of a member of a PDS or partitioned data set extended (PDSE) that contains the set of JCL statements (called an INCLUDE group) to be imbedded in the JCL stream. #. 1988.Chapter 18. v The name must begin in column 3. If used. | | | Operation Field The operation field consists of the characters INCLUDE and must be preceded and followed by at least one blank. you cannot use an imbedded statement to continue the statement that precedes INCLUDE. must be complete statements. which are subject to all JCL processing rules. v The name may be preceded by up to 8 alphanumeric or national characters. code it as follows: v The name should be unique within the job. operation (INCLUDE). and the system processes the imbedded JCL statements as part of the JCL stream. as can be done when coding DD statements. @) characters. and comments. v Imbed the INCLUDE group in the JCL stream at the position of the INCLUDE statement. v The first character must be alphabetic or national ($. that is. @). column 3 must be blank. It can begin in any column. keyword parameter (MEMBER). #. If you do not code a name. Description Syntax //[name] INCLUDE MEMBER=name [comments] The INCLUDE statement consists of the characters // in columns 1 and 2 and four fields: name. © Copyright IBM Corp. INCLUDE Statement Purpose Use the INCLUDE statement to: v Identify the name of the member of a partitioned data set (PDS) or partitioned data set extended (PDSE) that contains a set of JCL statements (such as DD and OUTPUT JCL statements) called an INCLUDE group. v The name must be followed by at least one blank. Name Field A name is optional on an INCLUDE statement. The INCLUDE group replaces the INCLUDE statement. v The name is 1 through 8 alphanumeric or national ($. Coding the name in this way should not be confused with specifying an override. 2002 18-1 .

0 MVS JCL Reference . You can use INCLUDE statements to imbed INCLUDE groups that contain DD and OUTPUT JCL statements. When the INCLUDE statement and the INCLUDE group contain symbolic parameters. The order in which the system searches system and private libraries for INCLUDE groups is the same as the search order used for procedures (see “Using a Procedure” on page 5-2). or v An installation-defined procedure library. Considerations for Using INCLUDE Groups System and private libraries can contain both procedures and INCLUDE groups. v Can appear within an INCLUDE group. v Cannot appear in a CNTL/ENDCNTL group. INCLUDE groups cannot contain the following JCL statements: JOB statements PROC and PEND statements JCLLIB statements JES2 and JES3 statements and commands DD * and DD DATA statements Do not define procedures in an INCLUDE group. Comments Field The comments field follows the parameter field after at least one intervening blank. However.SYSOUT. INCLUDE groups can contain INCLUDE statements and can be nested up to a maximum of 15 levels of nesting.JCL. Location in the JCL An INCLUDE statement: v Can appear anywhere in the job after the JOB statement. the INCLUDE statement must follow the JCLLIB statement.INCLUDE The PDS or PDSE must be one of the following: v A system procedure library (such as SYS1. 18-2 z/OS V1R3. you can put EXEC statements that invoke procedures in an INCLUDE group. Examples of the INCLUDE Statement: Example 1 The following INCLUDE group is defined in member SYSOUT2 of private library CAMPBELL. which contains program control statements delimited by the CNTL and ENDCNTL statements. which allows you to use the same data set definitions for various jobs. with one exception: if there is a JCLLIB statement. Values assigned to symbolic parameters in an INCLUDE group (such as with the SET statement) are valid for use on subsequent JCL statements.PROCLIB). the system substitutes the values that are current at the time the symbolic parameter is encountered. v Must follow a complete JCL statement. or v A private library that you must specify on a JCLLIB statement appearing earlier in the job.

COPIES=&NC //OUT3 OUTPUT DEST=&BB.SYSOUT.JCL EXEC PGM=OUTRTN INCLUDE MEMBER=SYSOUT2 EXEC PGM=IEFBR14 The JCLLIB statement specifies that the system is to search private library CAMPBELL. INCLUDE Statement 18-3 ..COPIES=3 //OUT2 OUTPUT DEST=KINGSTON.COPIES=30 //OUT3 OUTPUT DEST=MCL. which is easy to change for different jobs. After the system processes the INCLUDE statement.JCL(SYSOUT2) //SYSOUT2 DD SYSOUT=A //OUT1 OUTPUT DEST=POK.SYSOUT..SYSOUT..JCL(SYSOUT2) //STEP2 EXEC PGM=IEFBR14 The system imbeds the INCLUDE group in the JCL stream (replacing the INCLUDE statement). //* LAMAN..... //LIBS JCLLIB ORDER=LAMAN.SYSOUT.. //* CAMPBELL.COPIES=30 //OUT3 OUTPUT DEST=MCL. assigns values to the symbolic parameters in INCLUDE group SYSOUT2. //* CAMPBELL.SYSOUT.BB=STL.COPIES=3 //OUT2 OUTPUT DEST=&AA. //* LAMAN.NC=10 //STEP1 EXEC PGM=OUTRTN //OUTPUT1 INCLUDE MEMBER=SYSOUT2 //STEP2 EXEC PGM=IEFBR14 The SET statement. and processes the included JCL statements with the JCL stream.JCL(SYSOUT2) The system executes the following program: //TESTJOB //LIBSRCH //STEP1 //OUTPUT1 //STEP2 JOB .SYSOUT.COPIES=3 //OUT2 OUTPUT DEST=KINGSTON. //JOBA JOB .. //LIBSRCH JCLLIB ORDER=CAMPBELL. the JCL stream appears as: //TESTJOB JOB .JCL(SYSOUT2) //SYSOUT2 DD SYSOUT=A //OUT1 OUTPUT DEST=POK. JCLLIB ORDER=CAMPBELL.JCL(SYSOUT2) //SYSOUT2 DD SYSOUT=A //OUT1 OUTPUT DEST=POK.COPIES=10 //* END OF INCLUDE GROUP.JCL for the INCLUDE group SYSOUT2 before it searches any system libraries.JCL //SET1 SET AA=KINGSTON. //* CAMPBELL.INCLUDE //* THIS INCLUDE GROUP IS CATALOGED AS.. Example 2 The following example shows the use of the SET statement to assign values to symbolic parameters in an INCLUDE group.SYSOUT.SYSOUT..JCL(SYSOUT2) The following program is executed. //* THIS INCLUDE GROUP IS CATALOGED AS..COPIES=10 //* END OF INCLUDE GROUP. //* CAMPBELL.SYSOUT.... Chapter 18.SYSOUT..COPIES=10 //* END OF INCLUDE GROUP...JCL //STEP1 EXEC PGM=OUTRTN //* THIS INCLUDE GROUP IS CATALOGED AS.

. 18-4 z/OS V1R3. and assigns the values to the symbolic parameters in the INCLUDE group.JCL(SYSOUT2) //STEP2 EXEC PGM=IEFBR14 The system imbeds the INCLUDE group in the JCL stream (replacing the INCLUDE statement).SYSOUT....JCL //STEP1 EXEC PGM=OUTRTN //* THIS INCLUDE GROUP IS CATALOGED AS.INCLUDE After the system processes the INCLUDE statement.SYSOUT. //* LAMAN.. //LIBS JCLLIB ORDER=LAMAN.JCL(SYSOUT2) //SYSOUT2 DD SYSOUT=A //OUT1 OUTPUT DEST=POK.0 MVS JCL Reference .COPIES=10 //* END OF INCLUDE GROUP. //* LAMAN.COPIES=10 //OUT3 OUTPUT DEST=STL.COPIES=3 //OUT2 OUTPUT DEST=KINGSTON..SYSOUT. it executes the JCL stream as: //JOBA JOB .

v Identify the names of the system procedure libraries and installation-defined procedure libraries that the system uses for the job. The JCLLIB statement allows you to code and use procedures and INCLUDE groups in a private library without the need to use system procedure libraries. 2002 19-1 . Description Syntax //[name] JCLLIB ORDER=(library[. 1988.. the system on which the job is submitted and/or converted must have access to any libraries named on the JCLLIB statement. see the information about scheduler JCL for TP profiles in z/OS MVS Planning: APPC/MVS Management.) [comments] © Copyright IBM Corp. You can code only one JCLLIB statement per job. v Identify the order in which the libraries are to be searched. The system searches the libraries for: – Procedures named on any EXEC statements – Groups of JCL statements (called INCLUDE groups) named on any INCLUDE statements.Chapter 19. The system searches the libraries in the order in which you specify them on the JCLLIB statement. JCLLIB Statement Purpose Use the JCLLIB statement to: v Identify the names of the private libraries that the system uses for the job. Considerations for JES3 In a JES3 environment. Considerations for an APPC Scheduling Environment In an APPC environment.. prior to searching any unspecified default system procedure libraries.library].

PROC3) You can continue a parameter enclosed in quotes by breaking the parameter in column 71 and continuing the parameter in column 16 of the next statement. beginning in any column from 4 to 16.PROC5’) | column 16 //MYLIB // Name Field A name is optional on a JCLLIB statement. v The name is 1 through 8 alphanumeric or national ($. It can begin in any column. #. partitioned data set if a member name is included.MY. @).PROC1’. and then separated by a period.PROC1.’MY. code it as follows: v The name must begin in column 3.’MY .PROC1 Library names can be enclosed in apostrophes.PROC4’. v The name must be followed by at least one blank. before it searches any unspecified default system procedure libraries. For example: //MYLIB JCLLIB ORDER=MY.PROC2’) You can continue the list of libraries to the following statement by breaking the statement after a comma in the list. The system searches the libraries in the order in which you specify them.PROC2. Do not specify a library that is a temporary data set (&&dsname). column 71 | JCLLIB ORDER=(’MY.0 MVS JCL Reference . MY. | | | Operation Field The operation field consists of the characters JCLLIB and must be preceded and followed by at least one blank. column 3 must be blank. For example: //MYLIB // JCLLIB ORDER=(MY. system procedure libraries.’MY. If used. keyword parameter (ORDER). and installation-defined procedure libraries. or relative generation number for a GDG. If a name is not coded.’MY.PROC3’. as can be done when coding DD statements. operation (JCLLIB). Parameter Field The JCLLIB statement contains one keyword parameter: ORDER=(library[. for example: //MYLIB JCLLIB ORDER=(’MY.’MY. the parentheses are optional.]) Specifies the names of the libraries to be searched. 19-2 z/OS V1R3.JCLLIB The JCLLIB statement consists of the characters // in columns 1 and 2 and four fields: name. You can specify private libraries.PROC2’. #.. @) characters.PROC1’. If only one library is listed in the search order. v The first character must be alphabetic or national ($. v The name may be preceded by up to 8 aphanumeric or national characters. Note: GDGs are not supported. and comments. and continuing the list on the next statement..library. Coding the name in this way should not be confused with specifying an override. The maximum number of libraries that may be specified is 15.

– When multiple libraries are specified on the JCLLIB statement.PROCS.PROCS.PROCLIB only. Examples of the JCLLIB Statement Note: For each example. which are: – Logical record length of 80 bytes (LRECL=80) – Fixed length records (RECFM=F or RECFM=FB).JCLLIB Comments Field The comments field follows the parameter field after at least one intervening blank. The system and private libraries that you specify on the JCLLIB statement can contain both procedures and INCLUDE groups. v The JCLLIB data set cannot be a password-protected data set. the library cannot be cataloged in a catalog specified via a JOBCAT or STEPCAT DD statement. assume that the system default procedure library includes SYS1. (“Using a Procedure” on page 5-2 describes how the system determines the default procedure library. The private libraries that you specify on the JCLLIB statement must comply with the following rules: v The private library must be cataloged. then the system searches only SYS1.PROCLIB Example 2 Chapter 19. CAMPBEL.. However. If you do not specify the JCLLIB statement. v Must not appear within an INCLUDE group. v Must appear before any INCLUDE statement. these libraries will be concatenated. Location in the JCL A JCLLIB statement: v Must appear after the JOB statement and before the first EXEC statement in the job. If the JCLLIB data set is a PDSE. Considerations for Using the JCLLIB Statement You can specify only one JCLLIB statement in a job.JCL 2.JCL //S1 EXEC PROC=MYPROC1 . The system searches the libraries for procedure MYPROC1 in the following order: 1. v The private library must be accessible to the job. SYS1. . The library must be permanently resident and online. JCLLIB Statement 19-3 . v The job must have read access to any system or private libraries specified on JCLLIB. v The private library must have the same data set attributes as a system library. the record format can only be RECFM=FB.PROCLIB..) Example 1 //MYJOB1 JOB . //MYLIBS1 JCLLIB ORDER=CAMPBEL.

JCL 3.PROCS..JCLLIB //MYJOB2 JOB .JCL.JCL 3. SYS1.PROCLIB (the system default procedure library is searched again) 19-4 z/OS V1R3..JCL.PROCS. //MYJOB3 JOB .PROCS. YUILL.PROCS.PROCS.JCL. CAMPBEL. . CAMPBEL. The system searches the libraries for procedure MYPROC3 in the following order: 1.PROCLIB.JCL) //S3 EXEC PROC=MYPROC3 . .JCL 4.PROCLIB Example 3 You can specify a system procedure library.. GARY. .PROCS.CAMPBEL. //MYLIBS2 JCLLIB ORDER=(CAMPBEL.PROCLIB 2. //INC2 INCLUDE MEMBER=MYINC2 .. //MYLIBS3 JCLLIB ORDER=(SYS1. SYS1.PUCHKOF. The system searches the libraries for procedure MYPROC2 and INCLUDE group MYINC2 in the following order: 1.PROCS.JCL 5.GARY.PROCS.PROCS.JCL) //S2 EXEC PROC=MYPROC2 .JCL 2. SYS1.PROCS.0 MVS JCL Reference . // YUILL. PUCHKOF.

2002 20-1 . when jobs are stacked in the input stream. the jobname must be unique. References For information about the JES initialization parameters that provide installation defaults. Also. For example. otherwise: – For TSO logon. For example. “Started Tasks” on page 7-1. A JOB statement is required for each job.. see z/OS JES2 Initialization and Tuning Reference and z/OS JES3 Initialization and Tuning Reference.. the jobname must contain only alphanumeric characters. v The jobname must be followed by at least one blank. @). The parameters you can specify for job processing are arranged alphabetically in the following pages. JOB Statement Purpose Use the JOB statement to mark the beginning of a job and to tell the system how to process the job. duplicate jobnames are delayed. Do not code comments if the parameter field is blank. For more information. @) characters. 1988. another attempt to logon as IBMUSER will fail. refer to Chapter 7. Note: The JOB statement can be specified in source JCL for started tasks. v The jobname is 1 through 8 alphanumeric or national ($. [comments] Name Field Code a jobname on every JOB statement. @) characters. #. parameter. #.keyword-parameter]. If your system uses ANSI tapes. operation (JOB). v The first character must be alphabetic or national ($. © Copyright IBM Corp. and comments. it must not contain national ($. the JOB statement marks the end of the preceding job. then another job named BATCH01 will be delayed until the original job has completed. v For the job types TSO logon and batch processing. as follows: v Each jobname must be unique. duplicate jobnames fail. if job BATCH01 is executing. positional-parameters[. Description Syntax //jobname JOB //jobname JOB The JOB statement consists of the characters // in columns 1 and 2 and four fields: name. #. if IBMUSER is logged on. – For batch processing. v The jobname must begin in column 3.Chapter 20.

. programmer’s-name See page 20-35 programmer’s-name: 1 Identifies the owner of the . You must code the accounting parameter first. Keyword Parameters A JOB statement can contain the following keyword parameters.accountinginformation: up to 143 characters PURPOSE Specifies an account number and other accounting information. Positional Parameters A JOB statement can contain two positional parameters.accounting-information]. 20-2 z/OS V1R3. It can begin in any column. the system flushes all subsequent JCL statements. the error causes a JCL error and a job failure. your installation may require the accounting information parameter and the programmer’s name parameter. All parameters are optional. This parameter may be required by the installation. formatted as required by the installation. They must precede all keyword parameters. If JES detects an error in any parameter on the JOB statement. however. POSITIONAL PARAMETERS ([account-number] [.) See page 20-6 VALUES account-number .20 characters job. including any SYSOUT-specific DD statements directing output to any other class or destination.0 MVS JCL Reference . This parameter may be required by the installation. The other parameters listed result in a JCL error and job failure.JOB Operation Field The operation field consists of the characters JOB and must be preceded and followed by at least one blank.. followed by the programmer’s name parameter. You can code any of the keyword parameters in any order in the parameter field after the positional parameters. Note: The following parameters are not supported on the JOB statement for a started task: v CLASS * v GROUP v PASSWORD v RD * v RESTART v SCHENV v SECLABEL v TYPRUN v USER An asterisk indicates that the parameter will be ignored. Parameter Field A JOB statement has two kinds of parameters: positional and keyword.

of JES2 or JES3 that supports this function. 0 .DUMP]) } {([nnnnnnnn][.4095 operator: 20-19 GT GE EQ LT LE NE Code from chart on page GROUP=group-name See page 20-19 group-name: 1 . | | | | | | | | | | | | | | JESLOG= {SPIN} {NOSPIN} {SUPPRESS} See page 20-21 SPIN: JESLOG is spin-eligible.99999999 nnnnn: 1 . to be punched for the job’s sysout data sets. JOB Statement 20-3 .8 alphanumeric or national characters ($. assigns the job to a job class. CARDS={nnnnnnnn } {([nnnnnnnn][.JOB KEYWORD PARAMETERS ADDRSPC= {VIRT} {REAL} See page 20-10 BYTES={nnnnnn } {([nnnnnn][.65535 CLASS=jobclass See page 20-16 COND=((code. Specifies the return code tests used to determine whether a job will continue processing or be terminated.CANCEL]) } {([nnnnnn][. It NOSPIN: JESLOG will not be spun.. @) In a non-APPC scheduling environment.WARNING])} See page 20-13 CCSID=nnnnn nnnnnnnn: 0 . in thousands of bytes. #.) See page 20-17 jobclass: A . There Has meaning when the is an optional second operand that subsystem is a version specifies the time or the time interval.(code.operator)]. Specifies the coded character set identifier indicating the character code conversion performed on reads from and writes to tapes accessed in ISO/ANSI Version 4 format.WARNING])} See page 20-11 nnnnnn: 0 . Chapter 20. identifies a group to which a RACF-defined user is to be connected. and the action the system is to take if the maximum is exceeded.999999 Indicates the maximum amount of output to be printed for the job’s sysout data sets. VALUES VIRT: virtual (pageable) storage REAL: central (nonpageable) storage PURPOSE Indicates the type of storage required for the job.CANCEL]) } {([nnnnnnnn][.DUMP]) } {([nnnnnn][. In a non-APPC scheduling environment.operator)[. in cards..9 code: 0 . should be automatically spun at a particular time or time interval. specifies whether the JESLOG data set should SUPPRESS: JESLOG will be be spin-eligible and if it suppressed.Z. Indicates the maximum amount of output. and the action the system is to take if the maximum is exceeded.

requests that the system userid: 1 . and the action the system is to take if the maximum is exceeded.userid} {userid } See page 20-28 In a non-APPC scheduling environment. assigns the job log to an output class. Indicates the job control information to be printed in the job log. @).CANCEL]) } {([nnnnnn][.8 alphanumeric or national send a message to a characters ($.WARNING])} See page 20-22 VALUES nnnnnn: 0 .8 alphanumeric or national characters ($.99999 class: A . in pages.8 alphanumeric or national characters ($.99999999 Indicates the maximum amount of output.WARNING])} See page 20-30 PASSWORD=(password[.messages]) See page 20-26 nnnnn: 0 . 1 .0 MVS JCL Reference . @) 20-4 z/OS V1R3.Z.DUMP]) } {([nnnnnnnn][. MEMLIMIT={nnnnnM} {nnnnnG} {nnnnnT} {nnnnnP} {NOLIMIT} See page 20-24 MSGCLASS=class See page 20-25 MSGLEVEL=([statements][.999999 PURPOSE Indicates the maximum amount of output to be printed for the job’s sysout data sets. without nodename nodename: 1 . and the action the system is to take if the maximum is exceeded.9 In a non-APPC scheduling environment.JOB KEYWORD PARAMETERS LINES={nnnnnn } {([nnnnnn][. in thousands of lines. statements: 0 Only JOB statement 1 All JCL and procedure statements 2 Only JCL statements messages: 0 Only JCL messages 1 JCL. #. #. Specifies the limit on the total number of usable virtual pages above the bar for a single address space. #. identifies the current RACF password or specifies a new RACF password. @) when userid specified completes. and operator messages NOTIFY={nodename. to print for the job’s sysout data sets. PAGES={nnnnnnnn } {([nnnnnnnn][.new-password]) See page 20-31 password or new-password: 1 . JES.CANCEL]) } {([nnnnnnnn][. #. In a non-APPC scheduling environment. @) nnnnnnnn: 0 .7 userid when this alphanumeric or national characters background job ($. 0 .DUMP]) } {([nnnnnn][.

15 priority (JES3): 0 . PRTY=priority See page 20-36 priority (JES2): 0 . In a non-APPC scheduling environment. indicates whether the operator should perform automatic step restart. Chapter 20. RD= {R } {RNC} {NR } {NC } See page 20-37 R: restart. JES2: Assigns the job’s queue selection priority. @.JOB KEYWORD PARAMETERS PERFORM=n See page 20-33 VALUES n: 1 . checkpoints allowed RNC: restart. identifies the name of the WLM scheduling environment associated with this job.999 PURPOSE In WLM compatibility mode.16 alphanumeric or In a non-APPC $.procstepname} procedure See page 20-42 checkid: at checkpoint in first or named step SECLABEL=seclabel-name See page 20-45 SCHENV=schenv-name See page 20-46 seclabel-name: 1 . In a non-APPC scheduling environment. Specifies the amount of space in kilobytes or megabytes required by the job. if the job fails. #. #.7 digits from 1 . no checkpoints REGION= {valueK} {valueM} See page 20-40 valueK: 1 . _ characters scheduling environment. identifies the security label of the job to RACF.2047 RESTART= ({* } [.14 In a non-APPC scheduling environment. In WLM goal mode.checkid] ) *: at first step stepname: at named step {stepname } procstepname: step is in named {stepname. characters schenv-name: 1 . specifies restart of a job at the beginning of a step or from a checkpoint within a step. JOB Statement 20-5 . specifies the job’s performance group. @. can be used for classification of the job to a service class or report class.2096128 valueM: 1 . no checkpoints NR: no restart.8 alphanumeric or $. checkpoints allowed NC: no restart. In a non-APPC scheduling environment. and controls whether checkpoints are written for CHKPT macros or DD statement CHKPT parameters.4 digits from 1 . JES3: Assigns the job’s initiation or selection priority in its job class.

JOB statements never appear in cataloged or in-stream procedures. SRM.59 1440: Specifies that the job can use the processor for an unlimited amount of time.USER=RAC01. and other system components. Comments Field The comments field follows the parameter field after at least one intervening blank.CLASS=3. requests special job processing.MSGLEVEL=(2.LINLEE. TYPRUN= {COPY } {HOLD } {JCLHOLD} {SCAN } See page 20-50 USER=userid See page 20-52 COPY: copies job stream to sysout data set (JES2 only) HOLD: holds job JCLHOLD: holds job before JCL processing (JES2 only) SCAN: scans JCL for syntax errors userid: 1 .PASSWORD=XYY //RUN1 JOB ’D8306P.MSGCLASS=A. Location in the JCL A JOB statement must be the first statement in each job. //TRY8 JOB //RACF1 JOB ’D83.357912 seconds: 1 .MSGLEVEL=(1. // COND=(8.MSGCLASS=R. 357912 minutes.123’.S=C’.0) //MART JOB 1863.30). @ characters In a non-APPC scheduling environment. do not code any comments.1) //LOS JOB . // MSGLEVEL=(1.LT) Accounting Information Parameter Parameter Type Positional. #. identifies the job’s owner to RACF. Examples of JOB Statements //ALPHA JOB 843.RESTART=STEP4 THIS IS THE THIRD JOB STATEMENT. required (according to installation procedures) Purpose 20-6 z/OS V1R3.7 alphanumeric or $.0 MVS JCL Reference .D83.’J M BUSKIRK’. MAXIMUM: Specifies that the job can use the processor for the maximum amount of time.JOB KEYWORD PARAMETERS TIME= {([minutes][.TIME=(4.MSGCLASS=H. PURPOSE Specifies the maximum time the job is to use the processor and requests messages giving the time used.NOTIFY=D83JCS1.B1062J12.’JUDY PERLMAN’.1).seconds])} {1440 } {NOLIMIT } {MAXIMUM } See page 20-47 VALUES minutes: 1 . In a non-APPC scheduling environment.GROUP=A27. NOLIMIT: Specifies that the job can use the processor for an unlimited amount of time. If you do not code any parameters on a JOB statement.CLASS=F.

'DEPT''D58'.. code a comma to indicate the omitted parameter. For example: //JOB1 JOB // 706) (12A75. your department and room numbers. other than hyphens. which are considered part of the information.DEPT''D58. For example.706'. see z/OS MVS System Management Facilities (SMF). code DEPT'D58 as (12A75. Chapter 20. (12A75.GROUP6'.'DEPT/D58'. For example. Code each apostrophe or ampersand that is part of the accounting information as two consecutive apostrophes or ampersands.’DEPT/D58’. v Excluding any enclosing parentheses. Continuation onto Another Statement: Enclose the accounting information parameter in parentheses. Syntax ([account-number][. accounting-information Specifies more information.. JOB Statement 20-7 . do not code any commas before the first keyword parameter.706) or '12A75. Subparameter Definition account-number Specifies an accounting number. For example. as defined by the installation.706'. Omission: If you omit the accounting information parameter but you are coding a programmer’s name parameter. End each statement with a comma after a complete subparameter. Relationship to Other Control Statements If you are to provide accounting information for an individual step within a job. If you omit both positional parameters.accounting-information]. as defined by the installation. code an ACCT parameter on the EXEC statement for that step. If you use apostrophes.JOB: Accounting Information Use the accounting information parameter to enter an account number and any other accounting information that your installation requires. all information inside the apostrophes is considered one field. (5438. Special Characters: When a subparameter contains special characters.DEPT/D58. References For more information on how to add accounting routines.706) or '12A75. which are not considered part of the information.) Location: Code the accounting information parameter first in the parameter field. For example.GROUP6) or '5438. enclose it in apostrophes and the entire parameter in parentheses or enclose all of the parameter in apostrophes. separate the subparameters by commas and enclose the parameter in parentheses or apostrophes. Length: The entire accounting information parameter must not exceed 143 characters: v Including any commas. Code 34&251 as '34&&251'. Multiple Subparameters: When the accounting information parameter consists of more than one subparameter.

Subparameter Definition pano Specifies the programmer’s accounting number. JES2 uses an installation default specified at initialization.JOB: Accounting Information JES2 Accounting Information Format Except for the first subparameter. JES2 sends a message to the operator. JES2 uses an installation default specified at initialization. from this job’s sysout data sets. room is 1 through 4 alphanumeric characters. For example. appear on the JES2 /*JOBPARM statement.linect) Code a comma in place of each omitted subparameter when other subparameters follow. If you code the accounting information parameter in the JES2 format.room. lines is 1 through 4 decimal numbers. References For a discussion of the JES2 scan of the accounting information parameter.forms. JES2 assumes one copy.time. If you omit copies. cards is 1 through 4 decimal numbers. room Specifies the programmer’s room number. forms Specifies the forms that JES2 is to use for printing this job’s sysout data sets. The maximum is 255. see z/OS JES2 Initialization and Tuning Guide. For example. code 5 for 5000 lines. If you omit cards. time is 1 through 4 decimal numbers. the JES2 accounting information shown in the syntax can. If you omit forms. 20-8 z/OS V1R3. For example. pano is 1 through 4 alphanumeric characters.lines.0 MVS JCL Reference .log. code 5 for 5-part forms. If job execution exceeds the time. in thousands of lines. If you omit a time subparameter and a TIME parameter on the JES2 /*JOBPARM statement. forms is 1 through 4 alphanumeric characters. For example. lines Specifies the estimated line count. alternatively. If you omit lines.copies. time Specifies the estimated execution time in minutes. code 2 for two copies.cards. code 30 for 30 minutes. Syntax (pano. copies is 1 through 3 decimal numbers not exceeding an installation-specified limit. copies Specifies the number of times JES2 is to print and/or punch this job’s sysout data sets. JES2 can interpret and use it. JES2 uses an installation default specified at initialization. JES2 uses an installation default specified at initialization. cards Specifies the estimated number of cards JES2 is to punch from this job’s sysout data sets.

. 15 minutes. linect is 1 through 3 decimal numbers. Code N to request no job log. 2G14.15.JOB: Accounting Information The copies subparameter is ignored and only one copy is produced if the output class for the job log. Invalid Subparameters Your installation can initialize JES2 to do one of the following if the accounting information contains subparameters that are invalid to JES2: v Ignore the invalid subparameters. When you print the data set locally. linect Specifies the number of lines JES2 is to print per page for this job’s sysout data sets. If you code any other character or omit this subparameter. If your installation specified NOLOG for this job’s class during JES2 initialization. log Specifies whether or not JES2 is to print the job log. v Terminate the job.’12/8/85’. When you send a data set across a network. Overrides A parameter on any of the following statements overrides an equivalent accounting information subparameter on the JOB statement: v JOB statement v JES2 /*JOBPARM statement v JES2 /*OUTPUT statement v OUTPUT JCL statement v DD statement Examples of the Accounting Information Parameter Example 1 //JOB43 JOB D548-8686 Example 2 //JOB44 JOB (D548-8686. Example 3 //JOB45 JOB (CFH1. estimated job time. JES2 uses an installation default specified at initialization. JES2 does not eject to a new page when the number of lines exceeds the installation default.2G14. linect cannot exceed 254. Parentheses are required. Chapter 20. JES2 will not print a job log. If you code a zero. parentheses are required. room number. 2. JES2 requires the first two subparameters: pano and room.PGMBIN) Because this statement contains an account-number plus additional accounting-information.2) This statement shows a JES2 accounting information parameter: programmer’s accounting number.. If you omit linect. as specified in the JOB MSGCLASS parameter. In this case. JOB Statement 20-9 . and copies.. linect cannot exceed 255. CFH1. or the output class of any of the job’s system output data sets is a held class. Standard values are assumed for the other JES2 subparameters. JES2 prints the job log.

0 MVS JCL Reference . Relationship to the JOB REGION Parameter When ADDRSPC=REAL Code a REGION parameter to specify how much central storage (also called real storage) the job needs.JOB: ADDRSPC ADDRSPC Parameter Parameter Type Keyword. Overrides The JOB statement ADDRSPC parameter applies to all steps of the job and overrides any EXEC statement ADDRSPC parameters. The system can page the job. Code EXEC statement ADDRSPC parameters when each job step requires different types of storage. Defaults If no ADDRSPC parameter is specified. If you omit the REGION parameter. The system uses an EXEC statement ADDRSPC parameter only when no ADDRSPC parameter is on the JOB statement and only during the job step. The system cannot page the job and must place each step of the job in central storage. the default is VIRT. the system uses an installation default specified at JES initialization. the system uses an installation default specified at JES initialization. REAL Requests central storage (also called real storage). If you omit the REGION parameter. Syntax ADDRSPC= {VIRT} {REAL} Subparameter Definition VIRT Requests virtual storage. which is nonpageable). When ADDRSPC=VIRT or ADDRSPC is Omitted Code a REGION parameter to specify how much virtual storage the job needs. optional Purpose Use the ADDRSPC parameter to indicate to the system that the job requires virtual storage (which is pageable) or central storage (also called real storage. 20-10 z/OS V1R3.

WARNING])} Subparameter Definition nnnnnn Indicates the maximum amount of output to be printed for this job. In a JES2 system. JOB Statement 20-11 . The REGION parameter specifies 100K of storage for the job. An nnnnnn value of 500 represents 500.JOB: ADDRSPC Examples of the ADDRSPC Parameter Example 1 //PEH JOB .BAKER. in thousands of bytes.ERIC. Example 2 //DEB JOB . to be printed for this job’s sysout data sets v Specify the action that the system is to take if the maximum is exceeded. When the system recognizes that the 0 value has been exceeded. or that the job is to continue and the system is to notify the operator that the maximum was exceeded.DUMP]) } {([nnnnnn][.000 bytes. In a JES3 system. optional Purpose Use the BYTES parameter to: v Indicate the maximum amount of output. DUMP.ADDRSPC=VIRT The ADDRSPC parameter requests virtual (pageable) storage. in thousands of bytes. Chapter 20.ADDRSPC=REAL. one of the following will get control: v The CANCEL. Syntax BYTES={nnnnnn } {([nnnnnn][.REGION=100K The ADDRSPC parameter requests central (nonpageable) storage. a value of 0 for nnnnnn will cause JES3 to use the system default defined at initialization. The space available to the job is the installation-specified default.CANCEL]) } {([nnnnnn][. a value of 0 for nnnnnn will produce an amount of output that is based on the record blocking factor. or WARNING option (if coded) v The installation exit. The value for nnnnnn is 0 through 999999. You can indicate that the job is to be cancelled with or without a dump. BYTES Parameter Parameter Type Keyword.

0 MVS JCL Reference . If the sysout limit defined on the BYTES parameter is exceeded before the limit defined on OUTLIM. The system will not produce a storage dump. the system will take the action defined on BYTES. If you do not code CANCEL. Defaults If you do not code the BYTES parameter. DUMP. CARDS LINES PAGES If the job’s output exceeds the limits defined by any of the parameters above. Example 2 20-12 z/OS V1R3. If the sysout limit defined on the OUTLIM parameter is exceeded before the limit defined on BYTES. DUMP Indicates that the system is to cancel the job when the output for the job exceeds the maximum. and requests a storage dump. the system might cancel the job. Overrides Specifying BYTES on the JOB statement overrides BYTES on the JES2 /*JOBPARM statement. or WARNING. the following parameters also limit the amount of output for a job.BYTES=(500. The system issues subsequent warning messages at an interval defined by the installation. WARNING Indicates that the job is to continue. the system exits to the sysout limit exit routine. the JES3 //*MAIN statement. Relationship to Other Parameters In addition to BYTES. when the output for the job exceeds the maximum. the job JOB1 will be cancelled when its output exceeds 500 thousand bytes. the system uses an installation-defined limit. and the system is to send a message to the operator. When coding BYTES.CANCEL) In this example.’R F B’. Relationship to Other Control Statements The OUTLIM parameter of the DD statement controls the number of logical records in the sysout data set defined by that DD statement. If you do not code nnnnnn. the system uses the installation-defined default option. and the installation-defined default. the system uses the installation-defined default value.JOB: BYTES CANCEL Indicates that the system is to cancel the job without dumping storage when the output for the job exceeds the maximum. determine whether the values coded on these related parameters are sufficient to produce the output you require. Examples of the BYTES Parameter Example 1 //JOB1 JOB (123456).

a value of 0 for nnnnnnnn will produce an amount of output that is based on the record blocking factor. it will be treated as 6500000. CARDS Parameter Parameter Type Keyword.CANCEL]) } {([nnnnnnnn][. nnnnnnnn is a value from 0 through 6500000. CANCEL Indicates that the system is to cancel the job without dumping storage when the output for the job exceeds the maximum. JOB Statement 20-13 . When the system recognizes that the 0 value has been exceeded. Chapter 20. If you specify a value greater than 6500000 in a JES3 system. For JES2 systems.JOB: BYTES //JOB2 JOB (123456).DUMP]) } {([nnnnnnnn][. Syntax CARDS={nnnnnnnn } {([nnnnnnnn][.’R F B’. In a JES3 system. or WARNING option (if coded) v The installation exit. optional Purpose Use the CARDS parameter to: v Indicate the maximum amount of output. You can indicate that the job is to be cancelled with or without a dump. For JES3 systems. In a JES2 system.WARNING])} Subparameter Definition nnnnnnnn Indicates the maximum number of sysout output cards to be punched for this job. DUMP. to be punched for this job’s sysout data sets v Specify the action that the system is to take if the maximum is exceeded. with a warning message issued to the operator. one of the following will get control: v The CANCEL. in cards. and no dump is requested v Allowed to continue. a value of 0 for nnnnnnnn will produce no output. DUMP Indicates that the system is to cancel the job when the output for the job exceeds the maximum. and a dump is requested v Cancelled. or that the job is to continue and the system is to notify the operator that the maximum was exceeded. and requests a storage dump. when the output for JOB2 exceeds 40 thousand bytes. nnnnnnnn is a value from 0 to 99999999.BYTES=40 In this example. the installation default determines whether the job is v Cancelled.

or WARNING. the system uses an installation-defined limit. when the output for JOB2 exceeds 4000 cards of output. Example 2 //JOB2 JOB (123456). the system will take the action defined on CARDS. DUMP. and a dump is requested v Cancelled. and the installation-defined default. Overrides Specifying CARDS on the JOB statement overrides CARDS on the JES2 /*JOBPARM statement. the system uses the installation-defined default value. The system issues subsequent warning messages at an interval defined by the installation. and no dump is requested v Allowed to continue.CANCEL) In this example. the job JOB1 will be cancelled when its output exceeds 500 cards. If the sysout limit defined on the CARDS parameter is exceeded before the limit defined on OUTLIM. 20-14 z/OS V1R3. If you do not code nnnnnnnn. the system exits to the sysout limit exit routine. when the output for the job exceeds the maximum.’R F B’. Relationship to Other Control Statements The OUTLIM parameter of the DD statement controls the number of logical records in the sysout data set defined by that DD statement. the following JOB statement parameters also limit the amount of output for a job.JOB: CARDS WARNING Indicates that the job is to continue.CARDS=(500.CARDS=4000 In this example. the JES2 accounting subparameter for cards on the JOB statement. the installation default determines whether the job is v Cancelled. with a warning message issued to the operator. and the system is to send a message to the operator. Defaults If you do not code the CARDS parameter. If the sysout limit defined on the OUTLIM parameter is exceeded before the limit defined on CARDS. the JES3 //*MAIN statement. When coding CARDS. Relationship to Other Parameters In addition to CARDS. determine whether the values coded on these related parameters are sufficient to produce the output you require. If you do not code CANCEL. Examples of the CARDS Parameter Example 1 //JOB1 JOB (123456). the system uses the installation-defined default option. the system might cancel the job.’R F B’.0 MVS JCL Reference . BYTES LINES PAGES If the job’s output exceeds the limits defined by any of the parameters above. The system will not produce a storage dump.

See the latter manual for a list of supported CCSIDs. or DD levels. Data conversion is supported on access to ISO/ANSI Version 4 tapes using access methods BSAM or QSAM.AUL) keyword. EXEC. optional Purpose On systems with DFSMS/MVS Version 1 Release 5 or higher. Default 500. The CCSID value of 65535 has a special meaning: it suppresses conversion. Overrides The CCSID parameter specified on the JOB statement can be overridden by specifying the CCSID parameter on the EXEC statement. data passed to BSAM and QSAM is converted to 7-bit ASCII when writing to ISO/ANSI Version 4 tapes. The CCSID parameter does not apply to ISO/ANSI Version 1 or ISO/ANSI/FIPS Version 3 tapes or to tapes with labels other than AL or AUL. you can request DFSMSdfp to convert data from/to the coded character set identifier (CCSID) specified on the JOB or EXEC statement to/from the CCSID specified on the DD statement. On READ operations the CCSID (if recorded) on the tape header label is used for conversion. Relationship to Other Parameters Do not code the following parameters with the CCSID parameter: * BURST CHARS DDNAME DYNAM FCB QNAME SYSOUT TERM Chapter 20. ISO/ANSI Version 4 tapes are identified by the LABEL=(. JOB Statement 20-15 . but not using EXCP. and OS/390 Version 2 Release 5 or higher. The CCSID is recorded in the tape header label if conversion is not defaulted.JOB: CCSID CCSID Parameter Parameter Type Keyword.AL) or LABEL=(. This may result in data loss on conversion. See DFSMS/MVS Version 1 Release 5 z/OS DFSMSdfp Storage Administration Reference and DFSMS/MVS Version 1 z/OS DFSMS: Using Data Sets for selecting ISO/ANSI Version 4 tapes. Syntax CCSID= nnnnn Subparameter Definition nnnnn The CCSID as a decimal number from 1 through 65535. When CCSID is not specified at the JOB.

v To be copied only. there are a number of factors that determine the order in which a particular job is selected for execution. SPOOL partitioning. If you need to submit jobs in a specific order.JOB: CCSID COPIES DATA FLASH MODIFY UCS Examples of the CCSID Parameter For examples of the CCSID parameter see ″CCSID Parameter″ in the chapter ″DD Statement. or the order of job submission will guarantee that the jobs will execute in a particular order. Therefore. job class. A job class can be defined during JES2 initialization as: v Held. The system does not execute the job or allocate devices. the assigned job class can affect whether or how a job is executed.″ CLASS Parameter Parameter Type Keyword. the system will check it for syntax and ignore it. v To be scanned for job control statement syntax errors. For a started task in a JES3 environment all class related attributes and functions are ignored except device fencing. contact your JES2 system programmer for advice based on how your system honors such requests. Refer to the z/OS JES3 Initialization and Tuning Guide for more information about class attributes and functions. The class you should request depends on the characteristics of the job and your installation’s rules for assigning classes. 20-16 z/OS V1R3. The system holds any job assigned to this class until the operator releases it.) Considerations for an APPC Scheduling Environment The CLASS parameter has no function in an APPC scheduling environment. In a JES2 system. you cannot be assured that job priority (based on the PRTY you assign a job). and track group allocation. If you code CLASS. (z/OS JES2 Initialization and Tuning Guide provides JES2 system programmer procedures concerning job queuing and how to control job execution sequence. The system copies the input stream for the job directly to a sysout data set and schedules the sysout data set for output processing.0 MVS JCL Reference . The system does not execute the job or allocate devices. In a JES2 system. Note: The CLASS parameter is ignored for a started task in a JES2 environment. optional Purpose Use the CLASS parameter to assign the job to a class.

Example of the CLASS Parameter //SETUP JOB 1249. the system performs the COND parameter tests against the return codes from completed job steps. Chapter 20. The jobclass is one character. JES uses the installation default specified at initialization.CLASS=M This statement assigns the job to class M. the system bypasses all remaining job steps and terminates the job. JOB Statement 20-17 . the default is an installation-defined standard default class. the system executes the job step. and must be a valid class specified at JES initialization. The tests are made against return codes from the current execution of the job. v In a JES3 system. If none of these tests is satisfied. Defaults If you do not specify the CLASS keyword. as follows: v In a JES2 system. if any test is satisfied. Overrides A JES3 //*MAIN statement CLASS parameter overrides a JOB statement CLASS parameter.JOB: CLASS Syntax CLASS=jobclass v The CLASS parameter cannot have a null value. Subparameter Definition jobclass Identifies the class for the job. optional Purpose Use the COND parameter to specify the return code tests the system uses to determine whether a job will continue processing. A step bypassed because of an EXEC statement COND parameter does not produce a return code. COND Parameter Parameter Type Keyword. Relationship to Other Control Statements In JES3 systems.SMITH. A through Z or 0 through 9. the default is based on the source of the job: The system makes the job’s class the same as the installation-specified default class for the particular card reader. work station. or time-sharing user that submitted the job. Before and after each job step is executed. you can also code a CLASS parameter on a JES3 //*MAIN statement.

the system bypasses all remaining job steps.. If the specified test is true. In contrast. Use the chart on this page to select the correct operator.operator)[. Note: Specifying a decimal number greater than 4095 could result in invalid return code testing or invalid return codes in messages.) v v v v One return code test is: (code. Operators and their meanings are: Operator GT GE EQ LT LE NE Meaning Greater than Greater than or equal to Equal to Less than Less than or equal to Not equal to 20-18 z/OS V1R3. This could happen. for example. JES3 processes all jobs as though each step will execute. code is a decimal number from 0 through 4095. Syntax COND=(code.″ (The return code is generated by the application program and is never changed by the operating system. Specify up to eight return code tests for a job.(code.operator)]. a JOB COND parameter determines if steps are executed or bypassed. therefore.operator) COND=((code.) You can determine that a step failed due to a ″post execution error″ if bit SMF30SYE in the two-byte SMF30STI field in the SMF30 subtype 4 record is on.0 MVS JCL Reference .JOB: COND Bypassing a step because of a return code test is not the same as abnormally terminating the step. bypassing of a step is merely its omission. The system abnormally terminates a step following an error so serious that it prevents successful execution. Note: In both JES2 and JES3 systems. The COND parameter cannot have a null value. operator Specifies the type of comparison to be made to the return code.. Subparameter Definition code Specifies a number that the system compares to the return code from each job step. as a result of specifying CATLG_ERR FAILJOB(YES) and incurring that type of ″post execution error.operator) You can omit the outer parentheses if you code only one return code test. the system may fail a step (or job) even if the return code is zero. However. JES3 allocates devices for steps that are bypassed. Note that a test showing that a return code from a step is zero is not sufficient to verify that the step did not fail.

EQ) COND=(code.GE). the system ignores any EXEC statement COND parameters.COND=((20.GT) COND=(code.LE) COND=(code. Any code of 21 through 30 allows the job to continue.LT)) The COND parameter specifies that if 20 is greater than or equal to the return code or if 30 is less than the return code. GROUP Parameter Parameter Type Keyword.COND=(7. JOB Statement 20-19 . the step is bypassed. the system terminates the job. Continuation or Termination of the Job Based on the COND Parameter Test in the COND Parameter COND=(code. the system then performs the return code tests on the EXEC statement. optional Note: Do not specify this parameter for a started task. Any return code less than or equal to 7 allows the job to continue. Purpose Chapter 20.BAXTER. the job terminates. Example 2 //TEST JOB 501.JOB: COND Overrides If you code the COND parameter on the JOB statement and on one or more of the job’s EXEC statements. In this case.LT) COND=(code. and if a return code test on the JOB statement is satisfied. the system terminates the job.LT) The COND parameter specifies that if 7 is less than the return code. if GROUP is specified. If an EXEC return code test is satisfied.BOURNE.NE) Return Code (RC) from the Just Completed Step Continue Job RC >= code RC > code RC ¬= code RC <= code RC < code RC = code Terminate Job RC < code RC <= code RC = code RC > code RC >= code RC ¬= code Examples of the COND Parameter Example 1 //TYPE JOB (611. the job will fail.(30.GE) COND=(code. Summary of COND Parameters Table 20-1.402). If the tests on the JOB statement are not satisfied.

and GROUP parameters can be omitted from JOB statements. v Jobs submitted by one RACF-defined user for another user.JOB: GROUP Use the GROUP parameter to specify a RACF-defined group to which a RACF-defined user is to be connected.123456’. In this case. but do code the USER and PASSWORD parameters. the system will check it for syntax and ignore it. Otherwise. The first character must be alphabetic or national ($. the USER. If the installation contains the feature for propagation of the user and group identification. @) characters. password.0 MVS JCL Reference . Syntax GROUP=group-name Subparameter Definition group-name Identifies the group with which the system is to associate the user. the USER and PASSWORD parameters are required. RACF places each RACF-defined user in a default group. References For more information on RACF-protected facilities. the default group name is not passed to JES and thus is not available to JES installation exits.GROUP=MYGROUP. and the GROUP parameter is optional on JOB statements only for the following: v Batch jobs submitted through an input stream. the system assigns the RACF default group name associated with the specified userid. #. #. such as a card reader. However. and default group id of the submitting TSO/E user or job. @). Defaults If you do not code the GROUP parameter. The group id is optional. Considerations for an APPC Scheduling Environment The GROUP parameter has no function in an APPC scheduling environment. 20-20 z/OS V1R3. Example of the GROUP Parameter //TEST JOB ’D83. PASSWORD. or – the installation requires that all jobs have RACF identification. the JOB statement must specify the other user’s userid and may need a password. If you code GROUP.USER=MYNAME. if: – the job requires access to RACF-protected resources. v Jobs that execute at another network node that uses RACF protection. see the z/OS Security Server RACF Security Administrator’s Guide.PASSWORD=ABC This statement requests that the system connect RACF-defined user MYNAME to the group named MYGROUP for the duration of the job. group-name is 1 through 8 alphanumeric or national ($. the GROUP parameter is needed only to specify a group other than a user’s default group. RACF uses the userid.

“mm” is minutes and has a range of 00 through 59. For example. JESLOG=(SPIN. Note that “hh” must be specified even if zero. Defaults If no JESLOG parameter is specified. “K” is thousands and “M” is millions. “mm” is minutes and has a range of 00 through 59. SUPPRESS JESLOG will be suppressed. “hh” is hours and has a range of 00 through 23. A minimum of 500 lines must be specified.BAKER.+hh:mm) JESLOG will be spun every hh:mm time interval.nnnM) JESLOG will be spun when either data set has “n” lines. JESLOG has meaning when the subsystem is a version of JES2 or JES3 that supports this function. Examples of the JESLOG Parameter Example 1 //PEH JOB .JESLOG=(SPIN.0:20) JESLOG=(SPIN.JOB: JESLOG | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | JESLOG Parameter Parameter Type Keyword. There is an optional second operand.+08:00) The JESLOG parameter requests that JESLOG be spun every 8 hours. the default is NOSPIN.nnnK) JESLOG=(SPIN. JESLOG=(SPIN. JOB Statement 20-21 . NOSPIN JESLOG will not be spun. “hh” is hours and has a range of 00 through 23. Chapter 20. Syntax JESLOG= {SPIN} {NOSPIN} {SUPPRESS} Subparameter Definition SPIN JESLOG is spin-eligible. The minimum interval which can be specified is 10 minutes.hh:mm) JESLOG will be spun at time hh:mm each 24 hour period. JESLOG=(SPIN. optional Purpose Use the JESLOG parameter to indicate whether the JESLOG data set should be spin-eligible and if it should be automatically spun at a particular time or time interval.nnn) JESLOG=(SPIN.

20-22 z/OS V1R3. one of the following will get control: v The CANCEL.0 MVS JCL Reference . in thousands of lines.CANCEL]) } {([nnnnnn][.090K) The JESLOG parameter requests that JESLOG be spun every 90.DUMP]) } {([nnnnnn][. Syntax LINES={nnnnnn } {([nnnnnn][. or WARNING option (if coded) v The installation exit. WARNING Indicates that the job is to continue.000 lines. a value of 0 for nnnnnn will produce an amount of output that is based on the record blocking factor. and requests a storage dump.000 lines. DUMP Indicates that the system is to cancel the job when the output for the job exceeds the maximum. to be printed for this job’s sysout data sets v Specify the action that the system is to take if the maximum is exceeded.ERIC. LINES Parameter Parameter Type Keyword. and the system is to send a message to the operator. The system issues subsequent warning messages at an interval defined by the installation. when the output for the job exceeds the maximum. An nnnnnn value of 500 represents 500.WARNING])} Subparameter Definition nnnnnn Indicates the maximum amount of output to be printed for this job. In a JES3 system. You can indicate that the job is to be cancelled with or without a dump. CANCEL Indicates that the system is to cancel the job without dumping storage when the output for the job exceeds the maximum. or that the job is to continue and the system is to notify the operator that the maximum was exceeded. in thousands of lines. When the system recognizes that the 0 value has been exceeded. The value for nnnnnn is 0 through 999999. optional Purpose Use the LINES parameter to: v Indicate the maximum amount of output.JESLOG=(SPIN. DUMP. In a JES2 system. a value of 0 for nnnnnn produces no output.JOB: JESLOG | | | Example 2 //DEB JOB .

When coding LINES. the JES3 //*MAIN statement. the job JOB1 will be cancelled when its output exceeds 500 thousand lines. and the installation-defined default. and no dump is requested v Allowed to continue. If the sysout limit defined on the OUTLIM parameter is exceeded before the limit defined on LINES. the system exits to the sysout limit exit routine. DUMP. the system will take the action defined on LINES. determine whether the values coded on these related parameters are sufficient to produce the output you require. the installation default determines whether the job is v Cancelled. Chapter 20. JOB Statement 20-23 . the system uses the installation-defined default option. the following JOB statement parameters also limit the amount of output for a job. the JES2 accounting subparameter for lines on the JOB statement. or WARNING. If you do not code CANCEL. Examples of the LINES Parameter Example 1 //JOB1 JOB (123456). the system might cancel the job. and a dump is requested v Cancelled. Example 2 //JOB2 JOB (123456). the system uses an installation-defined limit. The system will not produce a storage dump. Relationship to Other Parameters In addition to LINES.CANCEL) In this example. Overrides Specifying LINES on the JOB statement overrides LINES on the JES2 /*JOBPARM statement. Relationship to Other Control Statements The OUTLIM parameter of the DD statement controls the number of logical records in the sysout data set defined by that DD statement.’R F B’.LINES=(500. If the sysout limit defined on the LINES parameter is exceeded before the limit defined on OUTLIM. the system uses the installation-defined default value.LINES=40 In this example. when the output for JOB2 exceeds 40 thousand lines. If you do not code nnnnnn.’R F B’. BYTES CARDS PAGES If the job’s output exceeds the limits defined by any of the parameters above. with a warning message issued to the operator.JOB: LINES Defaults If you do not code the LINES parameter.

123456’.MEMLIMIT=10000M This statement specifies that the job is limited to the use of 10000 megabytes of usable virtual pages above the bar. Defaults If no MEMLIMIT parameter is specified. the default is the value defined to SMF. NOLIMIT Specifies that there is no limit on the virtual pages to be used above the bar. except when REGION=0K/0M is specified.JOB: MEMLIMIT MEMLIMIT Parameter Parameter Type Keyword. Examples of the MEMLIMIT Parameter //TEST JOB ’D83. optional Purpose Use the MEMLIMIT parameter to specify the limit on the total number of usable virtual pages above the bar for a single address space. or petabytes (P). gigabytes (G). SMF provides a default value. The IEFUSI installation exit can override any JCL. The value may be expressed in megabytes (M). Overrides Specifying MEMLIMIT on the JOB statement overrides MEMLIMIT on the EXEC statement.0 MVS JCL Reference . 20-24 z/OS V1R3.or SMF-supplied value. If MEMLIMIT is not specified. terabytes (T). in which case the default is NOLIMIT. nnnnn may be a value from 0 to 99999. Syntax MEMLIMIT={nnnnnM} {nnnnnG} {nnnnnT} {nnnnnP} {NOLIMIT} Subparameter Definition nnnnnM nnnnnG nnnnnT nnnnnP Specifies a value to be used as the limit on the total number of usable virtual pages above the bar in a single address space.

the job log can consist of: v Only the JOB statement. optional Purpose Use the MSGCLASS parameter to assign the job log to an output class. the system will check it for syntax and ignore it. code one of the following: v The same output class in the DD SYSOUT parameter as in the JOB MSGCLASS parameter. The job log is a record of job-related information for the programmer. v In-stream and cataloged procedure statements. work station. A through Z or 0 through 9. For this reason. do not use the contents of the job log as an automation or as a programming interface. The installation default is specified at JES initialization. v Job control statement messages. NJE Note: If you specify an output class that is a held class in an NJE environment. a job can complete processing before all of its messages have been written to the job log. Significance of Output Classes To print the job log and any output data sets on the same output listing. the job’s output is incomplete. When this occurs. If you code MSGCLASS. Chapter 20. or time-sharing user that submitted the job. JOB Statement 20-25 . v All job control statements. Depending on the JOB statement MSGLEVEL parameter.JOB: MSGCLASS MSGCLASS Parameter Parameter Type Keyword. v JES and operator messages about the job. Syntax MSGCLASS=class Subparameter Definition class Identifies the output class for the job log. Defaults The default is based on the source of the job: The system places the job log in the same output class as the installation-specified default class for the particular card reader. Considerations for an APPC Scheduling Environment The MSGCLASS parameter has no function in an APPC scheduling environment. the system does not hold the data set until it reaches its ultimate destination node. The class is one character. and must be a valid output class specified at JES initialization. Note: In a JES3 environment.

JOB: MSGCLASS v DD SYSOUT=* to default to the JOB MSGCLASS output class. the OUTPUT JCL CLASS parameter should specify the same output class as the JOB MSGCLASS parameter. that is. v All job control statements in the input stream.MSGCLASS=F In this example. all JCL statements and JES2 or JES3 statements.MENTLE. v DD SYSOUT=(. Consequently. optional Purpose Use the MSGLEVEL parameter to control the listing of the JCL output for the job. if no OUTPUT JCL statement is referenced or if the referenced OUTPUT JCL statement contains either CLASS= or CLASS=*.0) This JOB statement does not specify an output class.GEORGE.MSGCLASS=M PGM=PRINT SYSOUT=* In this example.BLACK. Examples of the MSGCLASS Parameter Example 1 //EXMP1 JOB . the job log and data set OUTDD1 are written on the same output listing. MSGLEVEL Parameter Parameter Type Keyword. the JOB statement specifies that the system route the job log to output class M.0 MVS JCL Reference . the JOB statement specifies output class F for the job log. The JOB MSGCLASS output class.MSGCLASS=L //STEP1 EXEC PGM=PRINT //OUTDD1 DD SYSOUT=L In this example. Example 3 //A1403 JOB . In this case.MSGLEVEL=(2.) to default to one of the following: 1. the JOB statement and sysout DD statement OUTDD1 both specify the same output class. Example 2 //EXMP2 JOB . 20-26 z/OS V1R3. You can request that the system print the following: v The JOB statement and all comments and JECL statements up to the first EXEC statement. The CLASS parameter in an explicitly or implicitly referenced OUTPUT JCL statement. the output class defaults to the installation default output class for the device from which the job was submitted. 2. Example 4 //B209 JOB //STEPA EXEC //OUTDDX DD . The system also routes sysout data set OUTDDX to class M because SYSOUT=* is specified. In this case.WHITE.

and prints SMS messages only if SMS fails the job. JES2 or JES3 control statements. Syntax MSGLEVEL=([statements][. and SMS messages. 2 messages Indicates which messages the system is to print in the system messages portion of the JCL output.JOB: MSGLEVEL v In-stream and cataloged procedure statements for any procedure a job step calls. It prints JES and operator messages only if the job abnormally terminates. This subparameter is one of the following numbers: 0 1 The system prints the JOB statement and all comments and JECL statements up to the first EXEC statement. which give the values assigned to symbolic parameters in the procedure statements. and disposition of data sets. JOB Statement 20-27 . JES uses an installation default specified at initialization. and IEF653I messages. The system prints only JCL statements and JES2 or JES3 control statements. the procedure statements. Chapter 20. Subparameter Definition The JCL output for a batch job or any piece of work handled by JES2 or JES3 is a collection of three data sets. The system prints JCL. These three data sets (in the order they appear in the output) are: JES JOB LOG (JESMSG) STATEMENT IMAGES (JESJCL) SYSTEM MESSAGES (SYSMSG) statements Indicates which job control statements the system is to print in the statement images portion of the JCL output. The system prints all JCL statements. JES. v Messages about job control statements.messages]) You can omit the parentheses if you code only the first subparameter. v JES and operator messages about the job’s processing: allocation of devices and volumes. execution and termination of job steps and the job. This subparameter is one of the following numbers: 0 The system prints only JCL messages. Considerations for an APPC Scheduling Environment For information about using the MSGLEVEL parameter in a TP message log definition. operator. see z/OS MVS Planning: APPC/MVS Management. 1 Defaults If you do not code the MSGLEVEL parameter.

1) In this example. JES and operator messages. The first character of 20-28 z/OS V1R3. optional Purpose Use the NOTIFY parameter to request that the system send a message to a user when this background job completes processing. The nodename is a symbolic name defined by the installation during initialization.MSGLEVEL=0 In this example. NOTIFY Parameter Parameter Type Keyword. and. #. JCL messages.MENTLE. If you code NOTIFY. Example 2 //EXMP4 JOB .0) In this example.MSGLEVEL=(2. and SMS messages. the JOB statement requests that the system print the JOB statement and any comments and JECL statements up to the first EXEC statement.MSGLEVEL=(.userid Identifies a node and a TSO/E or VM userid at that node. SMS messages are printed only if SMS fails the job.0 MVS JCL Reference .GEORGE. nodename is 1 through 8 alphanumeric or national ($. the JOB statement requests that JES use the installation default for printing JCL statements and the system is not to print JES and operator messages unless the job abnormally terminates. the JOB statement requests that the system print JCL statements. avoid possible syntax and runtime errors by reading the information about scheduler JCL for TP profiles in z/OS MVS Planning: APPC/MVS Management.JOB: MSGLEVEL Examples of the MSGLEVEL Parameter Example 1 //EXMP3 JOB . Example 3 //EXMP5 JOB . @) characters.MIKE.userid} {userid } Subparameter Definition for JES2 Systems nodename. Syntax | | | | | | The NOTIFY parameter for both JES2 and JES3 is the following: NOTIFY={nodename. that JES is to use the installation default for messages. Considerations for an APPC Scheduling Environment The NOTIFY parameter has no function in an APPC scheduling environment.

Receiving Notification of Job Completion In a JES2 System If you are logged on to the member of the JES2 multi-access spool from which you submitted the job.NOTIFY=VMNODE.VMUSERID When the job SIGN completes processing. the system immediately notifies you at the system you are logged onto when the job completes. the notify message is discarded. JES2 assumes that the userid is at the origin node. JES2 will consider that as a TSO/E userid and not a remote id. In a JES3 System If you are logged on. the notify message is queued to the remote. Subparameter Definition for JES3 Systems userid Identifies the user that the system is to notify. the system sends a message to user VMUSERID on node VMNODE. specify the system you want to be notified at on the ACMAIN parameter.TKLOMP. If the remote value is greater than the highest defined remote but less than the maximum allowed remote. If you are not logged on. JOB Statement 20-29 . Examples of the NOTIFY Parameter //SIGN JOB . @). If you want to receive notification at a system of your choice. JES2 will assume the notify message is intended for a remote and not a userid. you may not be notified when the transmitted job completes. If the Rxxxx value specified is greater than R9999. @). If the remote is defined to the system or is less than the highest defined remote for your system.NOTIFY=MVSUSER Chapter 20. @) character. The userid is 1 through 7 alphanumeric characters and must be a valid TSO/E userid. the ACMAIN parameter specified for the first job is propagated to the second job. JES3 assumes that the userid is at the node where the job runs.TKLOMP. The userid is 1 through 7 alphanumeric or national ($. @) characters. The userid may also be a valid remote ID in the form Rnnnn or a destid for a remote. the system immediately notifies you when the job completes. #. #. If the userid is specified as R1-R9999. the system saves the message until you log on to the system from which you originally submitted the job. The first character must be an alphabetic or national ($. #. the first character must be alphabetic or national ($. #. @) characters. //SIGN JOB . If a //*ROUTE or XMIT JCL statement follows the JOB statement. If a job is submitted by another job. The userid must be defined at the node. userid Identifies the user that the system is to notify. It is 1 through 8 alphanumeric or national ($. the system saves the message until you log on to the member from which you originally submitted the job. #. If you are not logged on. When you specify only a userid.JOB: NOTIFY nodename must be alphabetic or national ($.

optional Purpose Use the PAGES parameter to v Indicate the maximum amount of output. DUMP. When the system recognizes that the 0 value has been exceeded. WARNING Indicates that the job is to continue. The value for nnnnnnnn is 0 through 99999999. CANCEL Indicates that the system is to cancel the job without dumping storage when the output for the job exceeds the maximum. In a JES3 system. In a JES2 system. to be printed for this job’s sysout data sets v Specify the action that the system is to take if the maximum is exceeded. a value of 0 for nnnnnnnn will produce an amount of output that is based on the record blocking factor. and requests a storage dump. one of the following will get control: v The CANCEL. PAGES Parameter Parameter Type Keyword. The system issues subsequent warning messages at an interval defined by the installation. to be printed for this job. in pages.WARNING])} Subparameter Definition nnnnnnnn Indicates the maximum amount of output. the system sends a message to user MVSUSER on the job’s origin node. a value of 0 for nnnnnnnn will produce no output.0 MVS JCL Reference . 20-30 z/OS V1R3.DUMP]) } {([nnnnnnnn][. DUMP Indicates that the system is to cancel the job when the output for the job exceeds the maximum. You can indicate that the job is to be cancelled with or without a dump. or that the job is to continue and the system is to notify the operator that the maximum was exceeded. in pages. Syntax PAGES={nnnnnnnn } {([nnnnnnnn][. when the output for the job exceeds the maximum. and the system is to send a message to the operator.JOB: NOTIFY When the job SIGN completes processing.CANCEL]) } {([nnnnnnnn][. or WARNING option (if coded) v The installation exit.

JOB Statement 20-31 . BYTES CARDS LINES If the job’s output exceeds the limits defined by any of the parameters above. and a dump is requested v Cancelled. Relationship to Other Parameters In addition to PAGES.PAGES=40 In this example. the system uses the installation-defined default option. with a warning message issued to the operator. If the sysout limit defined on the PAGES parameter is exceeded before the limit defined on OUTLIM. DUMP. and the installation-defined default.’R F B’. and no dump is requested v Allowed to continue. optional Chapter 20. determine whether the values coded on these related parameters are sufficient to produce the output you require. the JES3 //*MAIN statement. the system exits to the sysout limit exit routine. the installation default determines whether the job is v Cancelled. the system will take the action defined on PAGES.’R F B’.JOB: PAGES Defaults If you do not code the PAGES parameter. If the sysout limit defined on the OUTLIM parameter is exceeded before the limit defined on PAGES.CANCEL) In this example. If you do not code CANCEL. or WARNING. the system uses an installation-defined limit. Overrides Specifying PAGES on the JOB statement overrides PAGES on the JES2 /*JOBPARM statement. the job JOB1 will be cancelled when its output exceeds 500 pages.PAGES=(500. when the output for JOB2 exceeds 40 pages. PASSWORD Parameter Parameter Type Keyword. the system uses the installation-defined default value. the system might cancel the job. Example 2 //JOB2 JOB (123456). Relationship to Other Control Statements The OUTLIM parameter of the DD statement controls the number of logical records in the sysout data set defined by that DD statement. When coding PAGES. Examples of the PAGES Parameter Example 1 //JOB1 JOB (123456). If you do not code nnnnnnnn. the following JOB statement parameters also limit the amount of output for a job.

The new password takes effect even if the job is held for execution later and may take effect even if the job fails because of JCL errors. Considerations for an APPC Scheduling Environment The PASSWORD parameter has no function in an APPC scheduling environment. If the installation contains the feature for propagation of the user and group identification. Otherwise. v Jobs that execute at another network node that uses RACF protection. password. The group id is optional.0 MVS JCL Reference . You can specify a new password at any time and must specify a new password when your current one expires. (1) if the job requires access to RACF-protected resources or (2) if the installation requires that all jobs have RACF identification. the USER and the PASSWORD parameters are required. depending on when their passwords are verified. the job will fail.new-password]) You can omit the parentheses if you code only the first subparameter. Purpose Use the PASSWORD parameter to identify a current RACF password or specify a new RACF password. References For more information on using RACF-protected facilities. the system will check it for syntax and ignore it. #. 20-32 z/OS V1R3. a new password specified in the PASSWORD parameter takes effect when the job is read in. the JOB statement must specify the other user’s userid and may need a password. and GROUP parameters can be omitted from JOB statements. v Jobs submitted by one RACF-defined user for another user. In this case.JOB: PASSWORD Note: Do not specify this parameter for a started task. @) characters. and the GROUP parameter is optional on JOB statements only for the following: v Batch jobs submitted through an input stream. the USER. RACF uses the userid. If the installation contains the installation exit routine used to verify the password. When changing the password. and default group id of the submitting TSO/E user or job. see the z/OS Security Server RACF Security Administrator’s Guide. other jobs that use the new or old password may fail. If you code PASSWORD. Subparameter Definition password Specifies the user’s current RACF password. if PASSWORD is specified. Syntax PASSWORD=(password[. PASSWORD. The password is 1 through 8 alphanumeric or national ($. such as a card reader.

The installation’s security administrator can impose additional restrictions on passwords. The new-password is 1 through 8 alphanumeric or national ($.123456’.GROUP=GRP1 This JOB statement requests that the system change the RACF password from BCH to A12. v Code a USER parameter when coding a PASSWORD parameter. and channels. Examples of the PASSWORD Parameter Example 1 //TEST1 JOB ’D83. Chapter 20. For details on how to use the WLM application for managing a service definition and service policies. the PERFORM parameter on the JOB statement can be used to classify jobs and started procedures to a service class and/or report class. This classification method is provided to reduce the need to modify existing JCL when migrating to goal mode.USER=MYNAME This JOB statement identifies ABCDE as the current password for the RACF user. The installation-defined performance groups determine the rate at which associated jobs have access to the processor. follow your installation’s rules. optional Purpose Use the PERFORM parameter in WLM compatibility mode to specify the performance group for the job. see z/OS MVS Planning: Workload Management. In WLM goal mode. JOB Statement 20-33 . Note: The system suppresses the value you code for new-password from the JESJCL and JESJCLIN data sets. #. @) characters.JOB: PASSWORD Note: The system suppresses the value you code for password from the JESJCL and JESJCLIN data sets.A12).PASSWORD=(BCH. PERFORM Parameter Parameter Type Keyword. Relationship to Other Parameters If the installation does not contain the user and group identification propagation feature: v Code a PASSWORD parameter when coding a USER or GROUP parameter on a JOB statement.123456’. Example 2 //TEST2 JOB ’D83. storage. new-password Specifies the user’s new RACF password.PASSWORD=ABCDE.USER=RAC1. Note that PERFORM on the EXEC statement is ignored in goal mode for jobs and started procedures.

JOB: PERFORM Syntax PERFORM=n Subparameter Definition n In WLM compatibility mode. you need to define a classification rule in the workload management service definition. If the installation did not specify a default. the system uses an installation default specified at initialization.MARLA. the job will be associated with service class PBATCH because the PERFORM value is specified as 26. The n is a number from 1 through 999 and must identify a performance group that has been defined by your installation. Defaults In compatibility mode. n can be used to classify the job or started task to a service class and/or report class. The specified performance group should be appropriate for your job type according to your installation’s rules.CLASS=D. the system uses a built-in default: Default 1 2 Use For non-TSO/E job steps For TSO/E sessions See z/OS MVS Initialization and Tuning Guide for details. Examples of the PERFORM Parameter Example 1: PERFORM in compatibility mode //STEP1 JOB . In WLM goal mode.PERFORM=25 In this example. The following 20-34 z/OS V1R3. Once in the system.PERFORM=26 In this example. if no PERFORM parameter is specified or if the specified PERFORM number fails validity checks. The system uses an EXEC statement PERFORM parameter only when no PERFORM parameter is on the JOB statement and only during the job step. The installation must have defined the significance of this performance group. requests a performance group. Overrides A JOB statement PERFORM parameter applies to all steps of the job and overrides any EXEC statement PERFORM parameters. Example 2: PERFORM in goal mode //STEP1 JOB . CLASS=D determines the class in which the system will execute the job. and the PERFORM value of 26 is defined to workload management as being associated with the service class named PBATCH.KIRTS. Code EXEC statement PERFORM parameters when each job step executes in a different performance group. To associate the PERFORM value with a service class.0 MVS JCL Reference . the job will run in performance group 25.

.C. leading periods. For example: //JOBB //JOBC //JOBD //JOBE //JOBF JOB JOB JOB JOB JOB . other than hyphens. For example.MSGCLASS=A Special Characters: Enclose the programmer’s name in apostrophes when: v The name contains special characters. . JOB Statement 20-35 . For example: //JOBG JOB v Code each apostrophe that is part of the name as two consecutive apostrophes. : JES Description . The name must not exceed 20 characters. or embedded periods. Syntax programmer’s-name Location: Place the programmer’s name parameter immediately after the accounting information parameter and before all keyword parameters.’MAE BIRDSALL’ .P. . including all special characters. For example: //JOBA JOB ’D58/706’.ABC .F. batch Action codes: Fold qualifier names? Y (Y or N) A=After C=Copy M=Move B=Before D=Delete row R=Repeat -------Qualifier------------Action Type Name Start DEFAULTS: ____ 1 PF 26 ___ I=Insert rule IS=Insert Sub-rule -------Class-------Service Report TBATCH ________ PBATCH ________ Programmer’s Name Parameter Parameter Type Positional.B. Parameter Definition programmer’s-name Identifies the job’s owner. Modify Rules for the Subsystem Type Row 1 to 1 of Command ===> ____________________________________________ SCROLL ===> PA Subsystem Type . required (according to installation procedures) Purpose Use the programmer’s name parameter to identify the person or group responsible for a job. Omission: Do not code a comma to indicate the absence of the programmer’s name parameter.S-M-TU . code O'DONNELL as 'O''DONNELL'.JOB: PERFORM panel from the WLM application shows a rule for subsystem type JES that assigns any job with a PERFORM value of 26 to service class PBATCH. Chapter 20.’ v The last character of the name is a period.’A.M .’BUILD/PAUL’ .

20-36 z/OS V1R3. check with your installation. contact your JES2 system programmer for advice based on how your system honors such requests. A job with a higher priority is selected for execution sooner. or the order of job submission will guarantee that the jobs will execute in a particular order. optional Purpose Use the PRTY parameter to assign a selection priority to your job. and a programmer’s name. Example 4 //JOBA JOB ’DEPT. JES2 may ignore the PRTY parameter. Therefore.GROUP12). The installation requires no accounting information. see z/OS JES2 Initialization and Tuning Guide. Example 3 //#308 JOB (846349.O’’NEILL’ The programmer’s name contains special characters. PRTY Parameter Parameter Type Keyword. the system selects jobs for execution in order by priority. additional accounting information. Within a JES2 job class or a JES3 job class group. In a JES2 system. (z/OS JES2 Initialization and Tuning Guide provides JES2 system programmer procedures concerning job queuing and how to control job execution sequence.JOB: Programmer’s Name Examples of the Programmer’s Name Parameter Example 1 //APP JOB .HILL This JOB statement specifies a programmer’s name with no accounting information.MATTHEW This JOB statement specifies an account number. The leading comma may be optional. job class. 15E’ This installation requires the department number in the programmer’s name parameter.M. The imbedded apostrophe is coded as two consecutive apostrophes.) References For more information about priority. Note: Depending on the JES2 initialization options in use at your installation. there are a number of factors that determine the order in which a particular job is selected for execution. you cannot be assured that job priority (based on the PRTY you assign a job). Example 2 //DELTA JOB ’T. If you need to submit jobs in a specific order.G. jobs with the same priority are selected on a first-in first-out basis. the entire name must be enclosed in apostrophes.0 MVS JCL Reference .

Example of the PRTY Parameter //JOBA JOB 1. A JES2 /*PRIORITY statement. An installation default specified at JES2 initialization. (See the SCHEDxx parmlib member description in z/OS MVS Initialization and Tuning Guide for information about restartable abends. JOB Statement 20-37 . optional Note: This parameter is ignored for a started task. the system will check it for syntax and ignore it.PRTY=12 This job has a priority of 12. An installation default specified at JES3 initialization.’JIM WEBSTER’. 2. 3. The priority is a number from 0 through 15 for JES2 and from 0 through 14 for JES3. in override order: 1. Follow your installation’s rules in coding a priority. 2.JOB: PRTY Considerations for an APPC Scheduling Environment The PRTY parameter has no function in an APPC scheduling environment. Syntax PRTY=priority Subparameter Definition priority Requests a priority for the job. A value calculated from the accounting information on a JES2 /*JOBPARM statement or the JOB statement.) Chapter 20. A PRTY parameter on the JOB statement. A PRTY parameter on the JOB statement. If the specified priority is invalid. RD Parameter Parameter Type Keyword. Purpose Use the RD (restart definition) parameter to: v Specify that the system is to allow the operator the option of performing automatic step or checkpoint restart if a job step abends with a restartable abend code. in override order: 1. Defaults JES2 determines the job priority from the following. JES3 determines the job priority from the following. JES3 issues an error message. 4. The highest priority is 15 or 14. If you code PRTY.

specify a job journal by one of the following: v JOURNAL=YES on the CLASS statement in the JES3 initialization parameters. For JES2. see z/OS DFSMS Checkpoint/Restart.JOB: RD v Allow JES to perform automatic step restart after a system failure even if the journal option is not specified in the JES initialization parameters or JES control statements. v Suppress. Subparameter Definition R (Restart. 20-38 z/OS V1R3. the system will check it for syntax and ignore it. Considerations for an APPC Scheduling Environment The RD parameter has no function in an APPC scheduling environment. The system can perform automatic restart only if all of the following are true: v The JOB or EXEC statement contains RD=R or RD=RNC. v JOURNAL=YES on a JES3 //*MAIN statement in the job. Checkpoints Allowed) Indicates that the operator can perform automatic step restart if the job fails. v RD=R or RD=RNC on either the JOB statement or any one EXEC statement in the job. specify a job journal by one of the following: v JOURNAL=YES on the CLASS statement in the JES2 initialization parameters. If you use the automatic restart manager (ARM) to restart a job. v The step to be restarted abended with a restartable abend code. References For detailed information on deferred checkpoint restart. If you code RD. Syntax RD= {R } {RNC} {NR } {NC } v The RD parameter cannot have a null value.0 MVS JCL Reference . The system can perform automatic step restart for a job running during a system failure as long as the job has a job journal. you do not need to save the journal because ARM does not use the job journal when restarting jobs. the action of the assembler language CHKPT macro instruction or the DD statement CHKPT parameter. v RD=R or RD=RNC on either the JOB statement or any one EXEC statement in the job. v The operator authorizes a restart. you need to save the journal or the system cannot automatically restart the job if it fails or if there is a system restart. If you use checkpoint restart or restart a job step. partially or totally. A job journal is a sequential data set that contains job-related control blocks needed for restart. For JES3.

if the step abnormally terminates before the CHKPT macro instruction is executed. It suppresses: v Any CHKPT macro instruction in the processing program.JOB: RD RD=R does not suppress checkpoint restarts: v If the processing program executed in a job step does not include a CHKPT macro instruction. the system uses the installation default from the job’s job class specified at initialization. v If the step abnormally terminates after the CHKPT macro instruction is executed. v If the program includes a CHKPT macro instruction. and the system is not to perform a deferred checkpoint restart if the job is resubmitted. v The checkpoint at EOV facility. It permits: v A CHKPT macro instruction to establish a checkpoint. v The checkpoint at end-of-volume (EOV) facility. only checkpoint restart can occur. RD=R allows the system to restart execution at the beginning of the step. If you cancel the affects of the CHKPT macro instruction before the system performs a checkpoint restart. RD=NR does not prevent the job from restarting. v The DD statement CHKPT parameter. specify the checkpoint in the RESTART parameter. Checkpoints Allowed) Indicates that the operator cannot perform automatic step restart if the job fails. RD=NR suppresses automatic checkpoint restart but permits deferred checkpoint restarts. On the JOB statement when resubmitting the job. NC (No Automatic Restart. Overrides A JOB statement RD parameter applies to all steps of the job and overrides any EXEC statement RD parameters. It suppresses: v Any CHKPT macro instruction in the processing program: That is. If the system fails. The system uses an EXEC statement RD parameter only when no RD parameter is on the JOB statement and only during the job step. RD=R allows the system to restart execution at the beginning of the abnormally terminated step. the operator cannot perform an automatic checkpoint restart. v The job to be resubmitted for restart at the checkpoint. No Checkpoints) Indicates that the operator can perform automatic step restart if the job fails. Chapter 20. Code EXEC statement RD parameters when each job step requires different restart types. Defaults If you do not code the RD parameter. JOB Statement 20-39 . v The DD statement CHKPT parameter. RD=NC suppresses automatic and deferred checkpoint restarts. No Checkpoints) Indicates that the operator cannot perform automatic step restart if the job fails. RNC (Restart. RD=RNC suppresses automatic and deferred checkpoint restarts. the request for automatic step restart is again in effect. NR (No Automatic Restart.

Examples of the RD Parameter Example 1 //JILL JOB 333. Example 2 //TRY56 JOB 333. see z/OS MVS Initialization and Tuning Guide. optional Purpose Use the REGION parameter to specify the amount of central or virtual storage that the job requires. The amount of storage requested must include the following: v Storage for all programs to be executed.RD=R RD=R specifies that the operator can perform automatic step restart if the job fails. can also affect the size of the user address space assigned to the job step.TOM.994).DICK. IEFUSI and IEALIMIT. if the job fails.HARRY.0 MVS JCL Reference . Task initialization and termination can issue GETMAIN macro instructions for storage in the user’s address space.RD=RNC RD=RNC specifies that. and ″Resource Control of Address Space″ in z/OS MVS JCL User’s Guide. the operator can perform automatic step restart beginning with the step that abnormally terminates. see z/OS DFSMS Checkpoint/Restart. Two installation exits. The system applies the value that you code on REGION to each step of the job. v Enough unallocated storage for task initialization and termination. a CHKPT macro instruction can establish checkpoints to be used later for a deferred restart. REGION Parameter Parameter Type Keyword. For more information on region size with checkpoint/restart jobs. Example 3 //PASS JOB (721.JOB: RD Relationship to Other Control Statements RD=NC or RD=RNC suppresses the action of the DD statement CHKPT parameter. 20-40 z/OS V1R3.RD=NR RD=NR specifies that the operator cannot perform automatic step restart or automatic checkpoint restart. However. References For more information on address space size. RD=RNC suppresses automatic and deferred checkpoint restarts. v All additional storage the programs request with GETMAIN macro instructions during execution.

The value is 1 through 7 decimal numbers. The resulting size of the region below 16 megabytes is installation-dependent. the job abnormally terminates. the job abnormally terminates. the system will round it up to the next multiple of 4. such as 0K or any value greater than 16.384K or 16M — establishes the size of the private area below 16 megabytes. v A value greater than 32. If your installation does not change the IBM-supplied default limits in the IEALIMIT or IEFUSI exit routine modules. If the region size specified is not available below 16 megabytes. v A value greater than 16. Note: Specifying a REGION size that gives the JOB all the available storage. The extended region size is the default value of 32 megabytes.128K or 2047M — gives the job all the storage available below 16 megabytes.384K or 16M and less than or equal to 32.096. v A value greater than 0K or 0M and less than or equal to 16. from 1 through 2047. If the value you code is not a multiple of 4. For example.or installation-supplied routine IEALIMIT or IEFUSI is not used to establish a limiting value.or installation-supplied routine IEALIMIT or IEFUSI is not used to establish a limiting value. For example. then specifying various values for the region size have the following results: v A value equal to 0K or 0M — gives the job all the storage available below and above 16 megabytes. Code a multiple of 4. JOB Statement 20-41 . The resulting size of the region below 16 megabytes is installation-dependent.768K or 32M and less than or equal to 2. If no EXEC statement REGION parameter is specified.JOB: REGION Syntax REGION= {valueK} {valueM} Subparameter Definition valueK Specifies the required storage in kilobytes (1 kilobyte = 1024 bytes). If the region size specified is not available above 16 megabytes. valueM Specifies the required storage in megabytes (1 megabyte = 1024 kilobytes). the system uses a job step installation default specified at JES initialization. from 1 through 2096128. Chapter 20. REGION=3M. Note: Specifying a REGION size that gives the JOB all the available storage. Defaults If no REGION parameter is specified.768K or 32M — gives the job all the storage available below 16 megabytes. The resulting size of the region below and above 16 megabytes is installation-dependent. The extended region size is the specified value. the system uses the REGION parameter specified on each EXEC statement. can cause storage problems if the IBM. such as 0M or any value greater than 16M.384K. The extended region size is the default value of 32 megabytes. code REGION=68K. can cause storage problems if the IBM. The value is 1 through 4 decimal numbers.

Example 2 //ACCT4 JOB 175. the system uses the default. the system uses the default. 20-42 z/OS V1R3. which is a restart at the beginning of a job step. References For detailed information on the deferred checkpoint restart. which is a restart from a checkpoint taken during step execution by a CHKPT macro instruction. v Deferred checkpoint restart. Relationship to the JOB ADDRSPC Parameter When ADDRSPC=REAL Code a REGION parameter to specify how much central storage (also called real storage) the job needs.REGION=250K This JOB statement indicates that the job requires 250K of virtual storage. When the ADDRSPC parameter is omitted.JOB: REGION Overrides A JOB statement REGION parameter applies to all steps of the job and overrides any EXEC statement REGION parameters. if RESTART is specified. procedure step. The system uses an EXEC statement REGION parameter only when no REGION parameter is on the JOB statement and only during the job step. If you omit the REGION parameter. When ADDRSPC=VIRT or ADDRSPC is Omitted Code a REGION parameter to specify how much virtual storage the job needs.REGION=100K. Code EXEC statement REGION parameters when each job step requires a different region size. the job will fail. the system defaults to ADDRSPC=VIRT. Purpose Use the RESTART parameter to indicate the step. You can specify that the system perform either of two restarts: v Deferred step restart. Examples of the REGION Parameter Example 1 //ACCT1 JOB A23.SMITH.FRED. or checkpoint at which the system is to restart a job.0 MVS JCL Reference .ADDRSPC=REAL This JOB statement indicates that the job requires 100K of central storage. If you omit the REGION parameter. RESTART Parameter Parameter Type Keyword. optional Note: Do not specify this parameter for a started task. see z/OS DFSMS Checkpoint/Restart.

stepname Indicates that the system is to restart execution at the beginning of or within a job step. v The RESTART parameter cannot have a null value. code the DISP abnormal termination disposition subparameter in the step’s DD statements as follows: v KEEP. code CHPT'1 as 'CHPT''1'. enclose it in apostrophes.JOB: RESTART Considerations for an APPC Scheduling Environment The RESTART parameter has no function in an APPC scheduling environment.checkid] ) ({stepname } ) ({stepname. at the beginning of or within the first procedure step. If stepname refers to an EXEC statement that invokes a procedure. This checkpoint must be in the job step specified in the first subparameter.procstepname} ) v You can omit the outer parentheses if you code only the first subparameter. Stepname identifies the EXEC statement of the job step that calls the procedure. When preparing for a deferred checkpoint. to catalog all data sets that you are passing from steps preceding the restart step to steps following the restart step. Omit checkid to request restart at the beginning of the specified job step. checkid Specifies the name of the checkpoint at which the system is to restart execution. Syntax RESTART= ({* } [. Relationship to Other Control Statements When the system is to restart execution in a job step. Subparameter Definition * Indicates that the system is to restart execution (1) at the beginning of or within the first job step or (2). JOB Statement 20-43 . stepname. the system will check it for syntax and ignore it. For example. to keep all data sets that the restart step is to use. If you code RESTART. Chapter 20.procstepname Indicates that the system is to restart execution at the beginning of or within a step of a cataloged procedure. The SYSCHK DD statement defines the data set on which the system entered the checkpoint for the step being restarted. procstepname identifies the EXEC statement of the procedure step. place a SYSCHK DD statement immediately following the JOB statement. if the first job step calls a cataloged or in-stream procedure. The step identified by procstepname must contain the PGM keyword rather than invoke a procedure. the step name of the step within the procedure must also be specified. When the name contains special characters. v CATLG. Code each apostrophe that is part of the name as two consecutive apostrophes.

Instead. refer to it as −1. If any of the COND parameters reference a step before the restart step.CHKPT3) //SYSCHK DD DSNAME=CHK. the system evaluates that part of the expression as false.JOB: RESTART In JES2 systems. Generation Data Sets in Restarted Jobs In the restart step or following steps. Otherwise. be aware that the system ignores the return code tests for those steps.CATLG. The SYSCHK DD statement must follow the JOB statement. For example. If generation data set +1 was also created and cataloged.DISP=OLD The JOB statement indicates that the system is to restart execution at checkpoint CHKPT3 in job step PROCESS. do not use the original relative generation numbers to refer to generation data sets that were created and cataloged before the restart step. you must also code the FAILURE parameter on the //*MAIN control statement. In JES3 systems. If a relational expression references a step that is bypassed by the RESTART keyword. DISP=(NEW. refer to it as 0 in the restart step and following steps.KEEP) was coded. that is. If generation data sets created in the restart step were kept instead of cataloged. Eliminate all backward references in EXEC statement PGM parameters and DD statement VOLUME=REF parameters. Example 3 20-44 z/OS V1R3. Results will be unpredictable.UNIT=3330. the system will not be able to determine the correct restart step. Examples of the RESTART Parameter Example 1 //LINES JOB ’1/17/85’. v Review all EXEC statement COND parameters. it defines the data set on which the system wrote checkpoint CHKPT3. See “Considerations when Using the COND Parameter” on page 16-13 for more information. if the last generation data set created and cataloged was assigned a generation number of +2. v Review all IF/THEN/ELSE/ENDIF structures. v Note that the stepname and procstepname specified to identify the restart step must be unique within the job. you can also use the RESTART parameter on the /*JOBPARM control statement. then refer to them by the same relative generation numbers used to create them. Example 2 //@LOC5 JOB ’4/11/86’.RESTART=COUNT This JOB statement indicates that the system is to restart execution at the beginning of the job step named COUNT.0 MVS JCL Reference . refer to a generation data set by its present relative generation number. Cautions when Coding the RESTART Parameter Before resubmitting a job: v Check all backward references to steps before the restart step.RESTART=(PROCESS.

to run the job with the security label you specify. granted by the security administrator at your installation. Considerations for an APPC Scheduling Environment The SECLABEL parameter has no function in an APPC scheduling environment. Chapter 20. The security label represents a security level and categories as defined to RACF. The SYSCHK DD statement defines the data set on which the system wrote checkpoint CHECK8. the system will check it for syntax and ignore it. the job will fail.WEEKLY. JOB Statement 20-45 . #. $.CHECK8) DSNAME=CHKPT.RESTART=(PAY.CKPT2) //SYSCHK DD DSNAME=CHKPT. If you code SECLABEL. PAY is the name field on the EXEC statement that calls the cataloged procedure that contains procedure step WEEKLY. You must have sufficient authority. #.JOB: RESTART //WORK JOB .DISP=OLD The JOB statement indicates that the system is to restart execution at checkpoint CKPT2 in the first job step. SECLABEL Parameter Parameter Type Keyword. Syntax SECLABEL=seclabel-name Subparameter Definition seclabel-name Specifies the name of a security label defined by the security administrator at your installation. References For more information about security labels. Purpose Use the SECLABEL parameter to specify the security level at which the job is to execute when submitted to the system. if SECLABEL is specified.RESTART=(*. The SYSCHK DD statement defines the data set on which the system wrote checkpoint CKPT2. @) characters. or @. Example 4 //CLIP5 JOB //SYSCHK DD . see the z/OS Security Server RACF Security Administrator’s Guide.PORTER.DISP=OLD The JOB statement indicates that the system is to restart execution at checkpoint CHECK8 in procedure step WEEKLY. The seclabel-name is one through eight alphanumeric or national ($.UNIT=3330.UNIT=3350.COLLINS. optional Note: Do not specify this parameter for a started task. The first character must be alphabetic.

Note: Do not specify the SCHENV parameter for a started task. Considerations for a JES2 Environment You can provide a SCHENV default in a JES2 environment via a JOBCLASS(c) specification. as instructed by your security administrator. Reference For more information about WLM scheduling environments. the system will check it for syntax and ignore it. Relationship to Other Parameters Use the SECLABEL parameter on the JOB statement with the DPAGELBL and SYSAREA parameters on an OUTPUT JCL statement.SECLABEL=CONF In this example. If you code SCHENV. SCHENV Parameter Keyword.’JIM WOOSTER’. By associating a scheduling environment name with a job. the system uses the default security label in your RACF profile. optional Purpose Use the SCHENV parameter to specify the name of the Workload Manager (WLM) scheduling environment to associate with this job. see z/OS MVS Planning: Workload Management. Considerations for an APPC Scheduling Environment The SCHENV parameter has no function in an APPC scheduling environment. JOBA executes at a security level defined for security label CONF. Example of the SECLABEL Parameter //JOBA JOB 1. you ensure that the job will be scheduled only on a system that satisfies those resource state requirements. the job will fail. Syntax SCHENV=schenv-name 20-46 z/OS V1R3.JOB: SECLABEL Defaults If you do not specify the SECLABEL parameter.0 MVS JCL Reference . You may code SECLABEL with any other JOB statement parameters. A scheduling environment is a list of resources and their required settings.

’STEVE HAMILTON’. you can restrict a job to either SYS1 or SYS2 based on the scheduling environment associated with that work. You can use the TIME parameter on a JOB statement to decrease the amount of processor time available to a job or job step below the default value. The schenv-name is 1 through 16 alphanumeric. You cannot use the TIME parameter on a JOB statement to increase the amount of time available to a job step over the default value. or the underscore (_). the amount of time that a job step receives might be slightly more or less than the requested processor time. you must imbed the underscore and enclose the name in apostrophes (single quotes). Chapter 20. @) characters.JOB: SCHENV Subparameter Definition schenv-name Specifies the name of a WLM scheduling environment to be associated with this job. The exact amount of processor time is based on certain system events. JOB Statement 20-47 . Example of the SCHENV Parameter //JOBA JOB 1. For instance. the job will not be associated with any WLM scheduling environment. #. For releases prior to MVS/ESA SP Version 4 Release 3. use the TIME parameter on the EXEC statement. If you include an underscore character in the schenv-name.SCHENV=DB2LATE In this example. To increase the allowable time over the default value. Relationship to Other Control Statements You can use scheduling environments and either the SYSAFF parameter of the /*JOBPARM control statement for JES2 or the SYSTEM parameter of the //*MAIN control statement for JES3 together.0. national ($. Defaults If you do not specify the SCHENV parameter. For example. TIME Parameter Parameter Type Keyword. Exit routine IEFUTL is established through System Management Facilities (SMF). JOBA is associated with the DB2LATE scheduling environment. optional Purpose Use the TIME parameter to specify the maximum amount of time that a job may use the processor or to find out through messages how much processor time a job used. and then use the SYSAFF or SYSTEM parameter to further restrict that work only to system SYS1. but ’PLEX_’ and PLEX_D01 are not. ’PLEX_D01’ is valid. The system terminates a job that exceeds the specified time limit unless an installation exit routine at exit IEFUTL extends the time.

Coding TIME=MAXIMUM allows a job to run for 357912 minutes. Overrides For a JOB statement TIME parameter of TIME=NOLIMIT or TIME=1440. 20-48 z/OS V1R3. additional CPU time might be provided.0. if you do not specify a TIME parameter on its EXEC statement. (″1440″ literally means ″24 hours. Subparameter Definition minutes Specifies the maximum number of minutes a job may use the processor. Seconds must be a number from 0 through 59. which is established through SMF.55 days). If you specify a value other than TIME=NOLIMIT or TIME=1440. in addition to any minutes that you specify. SMF uses its current job wait time limit. the system nullifies any TIME parameters on EXEC statements as well as the default TIME values.″) Also code TIME=1440 or TIME=NOLIMIT to specify that the system is to allow any of the job’s steps to remain in a continuous wait state for more than the installation time limit. Reference See z/OS MVS Installation Exits. The results are unpredictable. seconds Specifies the maximum number of seconds that a job may use the processor. Syntax TIME= {([minutes][. Minutes must be a number from 0 through 357912 (248. MAXIMUM Indicates that the job can use the processor for the maximum amount of time. or v The default time limit (that is. Defaults Every job step has a time limit. All steps within the job will have unlimited processor time. the JES default job step time limit). Based on system events. the time limit for each job step is: v The value you specify for the TIME parameter on its EXEC statement. the job step receives at least the requested amount of CPU time. If you do not specify a TIME parameter on the JOB statement. Do not code TIME=0 on a JOB statement.0 MVS JCL Reference . 1440 or NOLIMIT Indicates that the job can use the processor for an unlimited amount of time.seconds])} {1440 } {NOLIMIT } {MAXIMUM } You can omit the parentheses if you code only 1440 or the processor time in minutes.JOB: TIME As of MVS/ESA SP Version 4 Release 3.

GORDON. whichever is smaller.TIME=2 PGM=READER. whichever is smaller.MORRISON. 10 seconds. Example 4 //RAINCK JOB 374231. the entire job abnormally terminates beginning with that step. If either step continues executing beyond 1 minute. Example 3 //FORMS JOB .TIME=1 In this example.10) This statement specifies that the maximum amount of time the job can use the processor is 12 minutes. Example 1 //STD1 JOB ACCT271. .30) This statement specifies that the maximum amount of time the job can use the processor is 30 seconds. JOB Statement 20-49 .TIME=(12. .TIME=5 This statement specifies that the maximum amount of time the job can use the processor is 5 minutes. Chapter 20. Examples of the TIME Parameter on JOB and EXEC Statements Note: The following examples assume the default time limit (set by the installation) to be greater than the TIME=parameter specified in each example. Example 2 //TYPE41 JOB .TIME=NOLIMIT This statement specifies an unlimited amount of time for job execution. . v If no EXEC TIME parameter was specified: the default time limit.TIME=1 PGM=WRITER. Examples of the TIME Parameter Note: The following examples assume the default time limit (set by the installation) to be greater than the TIME=parameter specified in each example. the job is allowed 2 minutes for execution and each step is allowed 1 minute.SMITH.MORRILL. //STEP2 EXEC . The system will issue messages telling how much processor time the job used. the job can use the processor and remain in wait state for an unspecified period of time. Example 1 //FIRST JOB //STEP1 EXEC . the system sets the time limit for each step to one of the following: v The step time limit specified on the EXEC statement TIME parameter or the job time remaining after execution of previous job steps. or the job time remaining after execution of previous steps.TIME=(.JOB: TIME For a JOB statement TIME parameter other than TIME=NOLIMIT or TIME=1440.

v In a JES2 or JES3 system. If you code TYPRUN. . //STEP2 EXEC . When the event occurs. and each step is allowed 2 minutes. v In a JES2 or JES3 system.TIME=3 PGM=ADDER. If STEP1 executes for 1. as submitted. scan a job’s JCL for syntax errors. Considerations for an APPC Scheduling Environment The TYPRUN parameter has no function in an APPC scheduling environment. the job abnormally terminates because of the 3-minute limit specified on the JOB statement. Purpose Use the TYPRUN parameter to request special job processing. the job is allowed 3 minutes for execution. place a job on hold until a special event occurs. the operator.74 minutes and STEP2 tries to execute beyond 1. must release the job from its hold to allow the system to select the job for processing. The TYPRUN parameter can tell the system to: v In a JES2 system. TYPRUN Parameter Parameter Type Keyword.0 MVS JCL Reference .TIME=2 In this example.JONES. . . Syntax TYPRUN= {COPY } {HOLD } {JCLHOLD} {SCAN } Subparameter Definition COPY (JES2 only) Requests that JES2 copy the input job stream. the job will fail. if TYPRUN is specified. the system will check it for syntax and ignore it. the entire job abnormally terminates beginning with that step. If either step continues executing beyond 2 minutes. Use the JES2 /*MESSAGE statement or the JES3 //*OPERATOR statement to notify the operator to release the job. following your directions. copy the input job stream directly to a sysout data set and schedule it for output processing.26 minutes.TIME=2 PGM=PRINT. The 20-50 z/OS V1R3. directly to a sysout data set and schedule the sysout data set for output processing. optional Note: Do not specify this parameter for a started task.JOB: TIME Example 2 //SECOND JOB //STEP1 EXEC .

If an error occurs during input service processing. JCLTEST or JSTTEST provides for a step the same function as provided by TYPRUN=SCAN for a job.TEST19970103 would NOT be flagged by TYPRUN=SCAN but would be caught by the interpreter. The operator should release the job when a particular event occurs. Note: COPY is supported only in JES2 systems. while the interpreter checks all expressions to the RIGHT of an equal sign (and issues messages that start with IEF). TYPRUN=SCAN checks the JCL only through the converter. for invalid syntax in JCL subparameters. v Characters that are not valid. SCAN Requests that the system scan this job’s JCL for syntax errors. not the interpreter. parameter value errors or excessive parameters. The difference is that the converter basically checks all expressions to the LEFT of an equal sign plus SOME expressions to the right of an equal sign (and issues messages that start with IEFC). JES2 holds the job until the operator releases it.JOB: TYPRUN system does not schedule the job for execution. v In a JES3 system only. JCLHOLD (JES2 only) Requests that JES2 hold the job before completing JCL processing. Note: JCLHOLD is supported only in JES2 systems. without executing the job or allocating devices. a data set name containing a qualifier that exceeds eight characters.JCL. the system does not scan the JCL on the submitting system when a //*ROUTE or XMIT JCL statement follows the JOB statement. In a JES3 system. JES does not hold the job. Relationship to Other Control Statements In a JES3 system. JOB Statement 20-51 . Chapter 20. code PGM=JCLTEST or PGM=JSTTEST on the EXEC statement to scan a job step’s JCL. This parameter asks the system to check for: v Spelling of parameter keywords and some subparameter keywords that is not valid. HOLD Requests that the system hold the job before execution until the operator releases it. v Invalid syntax on JCL statements in cataloged procedures invoked by any scanned EXEC statements. v Unbalanced parentheses. The class of this sysout data set is the same as the message class of the job and is controlled by the JOB MSGCLASS parameter. For example. The system does not check for misplaced statements. or for parameters and/or subparameters that are inappropriate together. v Misplaced positional parameters on some statements. such as DSN=L9755TB.

optional Note: Do not specify this parameter for a started task. v Jobs that execute at another network node that uses RACF protection. and the GROUP parameter is optional on JOB statements only for the following: v Batch jobs submitted through an input stream. . the USER. the job will fail. In this case. (1) if the job requires access to RACF-protected resources or (2) if the installation requires that all jobs have RACF identification. 20-52 z/OS V1R3. the JOB statement must specify the other user’s userid and may need a password. password. the USER and PASSWORD parameters are required. .0 MVS JCL Reference . The operator can then release LIST. LIST must execute after UPDATE. the system notifies the console operator when UPDATE completes. RACF uses the userid.HUBBARD PGM=LIBUTIL . and other system components. LIST executes a program that lists the members of that library. The group id is optional. the system resources manager (SRM). References For more information on RACF-protected facilities. code TYPRUN=HOLD on JOB statement LIST. and GROUP parameters can be omitted from JOB statements. If a MONITOR JOBNAMES command is executed from the input stream or by the operator. see the z/OS Security Server RACF Security Administrator’s Guide. v Jobs submitted by one RACF-defined user for another user.HUBBARD. allowing the system to select LIST for execution. If the installation contains the feature for propagation of the user and group identification. . Purpose Code the USER parameter to identify to the system the person submitting the job. if USER is specified. The userid is used by RACF. //LIST JOB //STEPA EXEC .JOB: TYPRUN Example of the TYPRUN Parameter //UPDATE JOB //STEP1 EXEC . USER Parameter Parameter Type Keyword. Otherwise. To force this execution order.TYPRUN=HOLD PGM=LIBLIST Jobs UPDATE and LIST are submitted for execution in the same input stream. For an up-to-date listing of the library. . PASSWORD. . UPDATE executes a program that adds and deletes members of a library. and default group id of the submitting TSO/E user or job. such as a card reader.

the first character must be alphabetic or national ($. RACF assigns a default userid and group id. If you code USER. #.USER=MYNAME. Defaults When not required by the installation and if the JOB statement or the submitting TSO/E user does not supply identification information.123456’. The userid consists of 1 through 8 alphanumeric or national ($. the user and default group identification of the submitting TSO/E user or job is used. Example of the USER Parameter //TEST JOB ’D83.JOB: USER Considerations for an APPC Scheduling Environment The USER parameter has no function in an APPC scheduling environment. unless the job enters the system via a JES internal reader. Relationship to Other Parameters If the JOB statement contains a GROUP or PASSWORD parameter. In this case. JOB Statement 20-53 . @) characters. the statement must also contain a USER parameter. Syntax USER=userid Subparameter Definition userid Identifies a user to the system.PASSWORD=ABCD This statement identifies the user submitting this job as MYNAME. Chapter 20. @). the system will check it for syntax and ignore it. #.

20-54 z/OS V1R3.0 MVS JCL Reference .

Description Syntax // v The null statement consists of the characters // in columns 1 and 2. 1988. data . The system ignores statements between a null statement and the next valid JOB statement. JES2 processes JES2 control statements following a NULL statement as part of the job (until the next JOB statement or EOF). v The rest of the statement must be blank. the system treats the null statement as a blank comment field and assumes that the control statement contains no other parameters. . If a null statement follows a control statement that is being continued. Location in the JCL Place a null statement (1) at the end of a job’s control statements and data and (2) at the end of an input stream. /* // The null statement indicates the end of job MYJOB. Null Statement Use the null statement to mark the end of a job.’C BROWN’ EXEC PROC=FIELD EXEC PGM=XTRA DD UNIT=3400-5 DD * . A null statement that does not end an input stream should be immediately followed by a JOB statement. Example of the Null Statement //MYJOB //STEP1 //STEP2 //DD1 //DD2 JOB .Chapter 21. 2002 21-1 . © Copyright IBM Corp. Note: JES2 ignores a NULL statement when it is included in a job’s JCL statements. The system can also recognize the end of a job when it reads the next JOB statement or when the input stream contains no more records.

0 MVS JCL Reference .21-2 z/OS V1R3.

1988.Chapter 22. References For information about the JES initialization parameters that provide installation defaults. v The name must be followed by at least one blank. [comments] The OUTPUT JCL statement consists of the characters // in columns 1 and 2 and four fields: name. Name Field Code a name in the name field of every OUTPUT JCL statement. v The name must begin in column 3. #. @). see z/OS JES3 Initialization and Tuning Guide. see z/OS JES2 Initialization and Tuning Reference and z/OS JES3 Initialization and Tuning Reference. For examples of OUTPUT statement processing on the JES3 hold queue and writer queue. as shown in statement OUT1. v Each step-level OUTPUT JCL name must be unique within the same job step. parameter. while it is also printed locally.OUT2) The parameters you can specify for sysout data set processing are arranged alphabetically in the following pages...WMSMITH OUTPUT CONTROL=DOUBLE DD SYSOUT=C.OUTPUT=(*. #. @) characters. as shown in statement OUT2: //OUT1 //OUT2 //DS OUTPUT DEST=STLNODE. JES combines the options from this OUTPUT JCL statement with the options from the referencing DD statement. and comments. a sysout data set can be sent to a distant site for printing. OUTPUT JCL statements are useful in processing the output of one sysout data set in several ways. OUTPUT JCL Statement Purpose Use the OUTPUT JCL statement to specify processing options for a system output (sysout) data set.*. © Copyright IBM Corp. Description Syntax //name OUTPUT parameter[.parameter]. These processing options are used only when the OUTPUT JCL statement is explicitly or implicitly referenced by a sysout DD statement. It can begin in any column. v The first character must be alphabetic or national ($. For example. Operation Field The operation field consists of the characters OUTPUT and must be preceded and followed by at least one blank. v The name is 1 through 8 alphanumeric or national ($. operation (OUTPUT). as follows: v Each job-level OUTPUT JCL name must be unique within a job. 2002 22-1 .OUT1.

You can code any of the keyword parameters in any order in the parameter field. Can request a high-density dump on a SYSABEND or SYSUDUMP DD statement. KEYWORD PARAMETERS VALUES PURPOSE ADDRESS= {(’delivery addr’[. do not leave the parameter field blank. All parameters are optional. @ characters STD: character-arrangement table (JES3 only) DUMP: 204-character print lines on 3800 dump Names character-arrangement tables for printing on a 3800 Printing Subsystem.60 valid EBCDIC text values BUILDING= {’building identification’} {building-identification } See page 22-14 BURST= {YES} {Y } {NO } {N } See page 22-15 CHARS= {table-name } {(table-name[. (JES3 support is limited to 3800 Printing Subsystem Models 3. 6 and 8.OUTPUT JCL Parameter Field The OUTPUT JCL statement contains only keyword parameters.767 22-2 z/OS V1R3..4 delivery-address subparameters.. Specifies the maximum lines in a logical page. building identification: 1 .) Specifies how many seconds of printing are to elapse between each checkpoint of this sysout data set.table-name].4 table-name subparameters: 1 .)} {delivery-address } See page 22-12 delivery address: 1 . #.0 MVS JCL Reference . CKPTLINE=nnnnn See page 22-18 nnnnn: 0 .) Specifies the number of logical pages to be printed or transmitted before JES takes a checkpoint. however.32.32..32.767 CKPTPAGE=nnnnn See page 22-18 nnnnn: 1 .767 CKPTSEC=nnnnn See page 22-19 nnnnn: 1 .. a delivery-address is 1 ..table-name]. (JES3 support is limited to 3800 Printing Subsystem Models 3. 6 and 8.60 valid EBCDIC text values Specifies an address to be printed on output separator pages.’delivery addr’].)} {STD } {DUMP } {(DUMP[. (JES3 support is limited to 3800 Printing Subsystem Models 3.. 6 and 8.) YES or Y: burster-trimmer-stacker NO or N: continuous forms stacker Directs output to a stacker on a 3800 Printing Subsystem.4 alphanumeric or $. Specifies a building location to be printed on output separator pages.) } See page 22-16 1 .

255 3800 Printing 8 group values (JES3): 1 . Specifies the name of a macrofile setup resource that contains the SETUP information. OUTPUT JCL Statement 22-3 . Chapter 22. 0 . #. VALUES class: A . COMPACT=compaction-table-name See page 22-23 COMSETUP=resource See page 22-23 CONTROL= {PROGRAM} {SINGLE } {DOUBLE } {TRIPLE } See page 22-24 COPIES= {nnn } {(.. @ characters PROGRAM: each logical record begins with a carriage control character SINGLE: single spacing DOUBLE: double spacing TRIPLE: triple spacing nnn nnn 1 1 - Specifies number of (JES2): 1 . Specifies a department identification to be printed on output separator pages. DATACK= {BLOCK } {UNBLOCK} {BLKCHAR} {BLKPOS } See page 22-27 BLOCK: indicates errors are not reported UNBLOCK: indicates errors are reported BLKCHAR: indicates print errors are blocked BLKPOS: indicates data errors are blocked YES or Y: this statement can be implicitly referenced by sysout DD statements NO or N: this statement cannot be implicitly referenced by sysout DD statements. department identification: 1 .8 alphanumeric characters resource: 1 .8 alphanumeric or $.(group-value[.9 *: same output class as MSGCLASS parameter on JOB statement PURPOSE Assigns the sysout data set to an output class. Indicates whether or not print-positioning errors and invalid character data-check errors are to be blocked or not blocked. Specifies a compaction table for sending this sysout data set to a SNA remote terminal.group-value]. @ characters Specifies the AFP resource (object) for the data set that contains color translation information.OUTPUT JCL KEYWORD PARAMETERS CLASS= {class} {* } See page 22-20 COLORMAP=resource See page 22-22 resource: 1 . For a (JES3): 0 .255 copies printed.Z.60 valid EBCDIC text values DEFAULT= {YES} {Y } {NO } {N } See page 22-28 DEPT= {’department identification’} {department-identification } See page 22-31 Specifies that this is a default OUTPUT JCL statement. Specifies that the data set records begin with carriage control characters or specifies line spacing.254 Subsystem. #.8 alphanumeric or $. can instead specify number of copies of each page printed before the next page is printed..255 8 group-values (JES2): 1 .))} See page 22-25 compaction-table-name: 1 .

count) } {NONE } {STD } See page 22-40 Specifies whether the job prints on one or both sides of the paper. @ characters) nodename: node (1 . #. STD: standard forms flash overlay (JES3 only) FORMDEF=membername See page 22-42 membername: 1 .8 alphanumeric characters) Rnnnn or RMnnnn or RMTnnnn: remote terminal (1 . #. name: named local or remote device Nnnnn: node (1 .6 alphanumeric or $.9999) ANYLOCAL: any local device device-name: local device (1 . #. or data-protection image for 3525 Card Punch. indicates that the data characters) set is to be printed with count: copies with overlay (0 .1000) NnRm: node (1 . carriage control tape for 1403 Printer.userid ’nodename.4 alphanumeric or $.8 alphanumeric or $.8 alphanumeric or $.8 alphanumeric or $.1000) and remote work station (1 .4 alphanumeric or $. X’80’ for NO X’40’ for NORMAL X’20’ for TUMBLE Indicates whether the system should print a security label on each page of output. @ characters) YES or Y: requests that the system print a security label on each page.8 alphanumeric or $. @ characters) group-name: 1 or more local devices or remote stations (1 .9999) Unnnn: local terminal (1 . @ characters Names a library member that PSF uses in printing the sysout data set on a page-mode printer (such as a 3800 Model 3).0 MVS JCL Reference . DPAGELBL= {YES} {Y } {NO } {N } See page 22-36 DUPLEX= {NO } {N } {NORMAL} {TUMBLE} See page 22-37 FCB= {fcb-name} {STD } See page 22-38 FLASH= {overlay-name } {(overlay-name[.9999).OUTPUT JCL KEYWORD PARAMETERS DEST=destination destination (JES2): LOCAL ’IP:ipaddr’ name Nnnnn NnnRmmmm to NnnnnRmm nodename.count])} {(. @ characters) remote: remote workstation (1 . @ characters STD: standard FCB (JES3 only) overlay-name: forms overlay frame (1 For printing on a 3800 . #.8 alphanumeric characters) and userid (1 .userid: node (1 .IP:ipaddr’ Rnnnn or RMnnnn or RMTnnnn Unnnn destination (JES3): ANYLOCAL device-name group-name nodename See page 22-32 VALUES PURPOSE Sends a sysout data set LOCAL: local device to the specified ipaddr identifies a TCP/IP routing destination. Specifies FCB image. Overrides comparable FORMDEF. #. 6 digits maximum for n and m combined nodename. fcb-name: 1 . @ Printing Subsystem. #. designation.255) forms overlay and can specify how many copies NONE: suppresses flashing are to be flashed. NO or N: requests that the system not print a security label on each page. #. 22-4 z/OS V1R3.

Requests that the indicated data sets for the job be processed according to the parameters on this OUTPUT JCL statement.OUTPUT JCL KEYWORD PARAMETERS FORMLEN=nn[. OUTPUT JCL Statement 22-5 . Overrides comparable FORMDEF specification.IMAGELIB to be used by JES to print the data set on a 3800 Printing Subsystem.255 JESDS= {ALL} {JCL} {LOG} {MSG} See page 22-50 LINDEX=nn See page 22-52 ALL: all of the job’s JCL. PURPOSE Allows PSF/MVS users to set the length of pages for print without reconfiguring the printer.255 module-name: 1 .31 INTRAY=nnn See page 22-49 nnn: 1 . Specifies how many print positions to move the right margin in from the full page width for a sysout data set printed on a 3211 Printer with the indexing feature.trc])} See page 22-53 nnn: 0 . and 3 for fourth table-name) Chapter 22. #. 1 for second. GROUPID=output-group See page 22-47 INDEX=nn See page 22-48 output-group: 1 . @ characters trc: table-name in CHARS parameter (0 for first. Specifies that this sysout data set belongs to a user-named output group. (JES2 only) Specifies the maximum lines JES2 is to print on each page. Identifies forms on which the sysout data set is to be printed or punched. (JES2 only) Specifies how many print positions the left margin is to be indented for a sysout data set printed on a 3211 Printer with the indexing feature.8 alphanumeric characters nn: 1 . LOG. @ characters STD: standard form (JES3 only) values: 1-127 EBCDIC characters Defined by a functional subsystem. #. 2 for third.8 alphanumeric or $. Refer to that subsystem’s documentation for the intent and use of this keyword. (JES2 only) Specifies the printer input tray from which to take paper for the print job. (JES2 only) Specifies a copy-modification module in SYS1.4 alphanumeric or $. and MSG data sets JCL: all JCL processing data sets LOG: job’s hard-copy log MSG: job’s system messages nn: 1 .mmm]{IN|CM} See page 22-43 FORMS= {form-name} {STD } See page 22-44 FSSDATA=value See page 22-44 VALUES nn= 0-99 mmm= 0-999 IN= inches CM= centimeters form-name: 1 .31 LINECT=nnn See page 22-52 MODIFY= {module-name } {([module-name][.

]userid4)} See page 22-56 OFFSETXB=mmmm[.9999 nnn: 0 . @ characters name: 1 .[node. KEEP. OVERLAYB=name See page 22-62 OVERLAYF=name See page 22-62 name: 1 .]userid1.nnn]{IN } {CM } {MM } {PELS } {POINTS} See page 22-58 OUTBIN=nnnnn See page 22-48 OUTDISP=[normal-output-disposition.]userid } {([node. Specifies placing the named medium overlay on the front side of each printed sheet.nnn]{IN } {CM } {MM } {PELS } {POINTS} See page 22-58 OFFSETYB=mmmm[.OUTPUT JCL KEYWORD PARAMETERS NAME= {’preferred name’} {preferred-name } See page 22-55 NOTIFY= {[node.}userid: node and userid to receive print complete message.8 alphanumeric or $. Specifies the offset in the Y direction from the page origin (or partition origin for N_UP) for the back side of each output page. (JES2 only) Specifies placing the named medium overlay on the back side of each printed sheet. LEAVE..nnn]{IN } {CM } {MM } {PELS } {POINTS} See page 22-58 OFFSETYF=mmmm[.60 valid EBCDIC text values PURPOSE Specifies the preferred name to be printed on output separator pages.8 alphanumeric or $. Specifies the offset in the X direction from the page origin (or partition origin for N_UP) for the back side of each output page. or PURGE. HOLD. in a non-APPC scheduling environment. #. KEEP.0 MVS JCL Reference . #. Specifies the offset in the Y direction from the page origin (or partition origin for N_UP) for the front side of each output page. abnormal-output-disposition] See page 22-59 normal output disposition: WRITE. nnnnn: 1 . abnormal output disposition: WRITE. HOLD.9999 nnn: 0 . VALUES preferred name: 1 .9999 nnn: 0 .nnn]{IN } {CM } {MM } {PELS } {POINTS} See page 22-57 OFFSETXF=mmmm[.999 IN: inches CM: centimeters MM: millimeters mmmm: 0 .999 IN: inches CM: centimeters MM: millimeters mmmm: 0 . LEAVE. Specifies the ID of the printer output bin where the data set is to be sent. @ characters 22-6 z/OS V1R3. Specifies the disposition of the sysout process instance for normal or.999 IN: inches CM: centimeters MM: millimeters {node. abnormal termination of the job step. Specifies the node and userid to receive a print complete message when the sysout data set is printed. or PURGE.. Specifies the offset in the X direction from the page origin (or partition origin for N_UP) for the front side of each output page.999 IN: inches CM: centimeters MM: millimeters mmmm: 0 .9999 nnn: 0 ..65535 mmmm: 0 .

@ characters PURPOSE Specifies whether or not JES3 should check for forms overflow on an output printer. On the OUTPUT statement or dynamic output descriptor. Identifies the process mode required to print the sysout data set. indicates the disposition of the SYSOUT data set to use if a terminating error occurs during printing of the SYSOUT data with the PSF/MVS functional subsystem.msg-count])} {(NO[. Indicates that messages from a functional subsystem should or should not be printed in the listing following the sysout data set.8 alphanumeric characters) PRTERROR= {DEFAULT} {QUIT } {HOLD } See page 22-68 DEFAULT= Specifies that PSF/MVS will take the standard action if a terminating error occurs during printing.6 alphanumeric or $. Specifies the TCP port number at which IP PrintWay connects to the printer rather than connecting to LPD on the printer. PRTOPTNS= {options data set entry name } {’options data set entry name’} See page 22-69 print options: 1-16 valid EBCDIC characters. PRTQUEUE indicates the queue used when connecting to LPD on the printer. OUTPUT JCL Statement 22-7 . (JES3 only) Names a library member sysout data set on a page-mode printer (such as a 3800 Model 3). but not both. OFF: JES3 should not check for forms overflow on an output printer. This is the default.OUTPUT JCL KEYWORD PARAMETERS OVFL= {ON } {OFF} See page 22-63 PAGEDEF=membername See page 22-63 PIMSG= {(YES[.msg-count]) } See page 22-65 YES: print messages from a functional subsystem NO: not print messages from a functional subsystem msg-count: number of errors to cause printing to be terminated (0-999) PORTNO=nnnnn See page 22-66 nnnnn: 1 . QUIT= Specifies that PSF/MVS will release the data set complete even if a terminating error occurs during printing.65535 VALUES ON: JES3 should check for forms overflow on an output printer. Identifies the print options data. #. Specify either PORTNO or PRTQUEUE. HOLD= Specifies that if a terminating error occurs during printing. PRMODE= {LINE } {PAGE } {process-mode} See page 22-67 LINE: send data set to line-mode printer PAGE: send data set to page-mode printer process-mode: installation-defined mode (1 . membername: 1 . Chapter 22. the data set will remain on the JES SPOOL until the system operator releases it.

The maximum number of retries. room identification: 1-60 valid EBCDIC text values Specifies a room identification to be printed on output separator pages.OUTPUT JCL KEYWORD PARAMETERS PRTQUEUE= {print queue name } {’print queue name’} See page 22-70 PRTY=nnn See page 22-71 RESFMT= {P240} {P300} See page 22-71 RETAINS= {’<hhhh>:<mm>:<ss>’} {FOREVER } See page 22-72 RETAINF= {’<hhhh>:<mm>:<ss>’} {FOREVER } See page 22-72 RETRYL= {nnn} See page 22-74 RETRYT= {’<hh>:<mm>:<ss>’} See page 22-74 ROOM= {’room identification’} {room-identification } See page 22-75 SYSAREA= {YES} {Y } {NO } {N } See page 22-76 THRESHLD=limit See page 22-77 limit: 1 . retain time: 1-10 numeric characters or FOREVER.0 MVS JCL Reference . NO or N: requests that the system not reserve a system area. (JES3 only) Identifies a report title to be printed on separator pages. nnnnn: one to five numeric characters. retain time: 1-10 numeric characters or FOREVER.60 valid EBCDIC characters YES or Y: data set contains TRC codes NO or N: data set does not contain TRC codes 22-8 z/OS V1R3. 255 is highest) Specifies initial priority at which the sysout data set enters the output queue. The successful transmission retain time specification. P300: specifies 300 pels per inch resolution.99999999 Specifies the maximum size for a sysout data set.255 (0 is lowest. nnn: 0 . VALUES print queue: 1-127 valid EBCDIC characters. Use it to obtain simultaneous printing of large data sets or many data sets from one job. TITLE= {’description of output’} {description-of-output } See page 22-79 TRC= {YES} {Y } {NO } {N } See page 22-80 description of output: 1 . YES or Y: requests that the system reserve a system area. Wait time between transmission retries. The failed transmission retain time specification. Indicates whether the system should reserve a system area on each page of output. P240: specifies 240 pels per inch resolution. Specifies the resolution used to format the print data set. Specifies whether or not the sysout data set’s records contain table reference codes (TRC) as the second character. PURPOSE Identifies the target print queue name. retry time: 1-10 numeric characters.

. OUTPUT JCL Statement 22-9 . each value may be from 1 to 60 EBCDIC characters..OUTPUT JCL KEYWORD PARAMETERS UCS=character-set-code See page 22-81 VALUES character-set-code: 1 . Implicit references are to default OUTPUT JCL statements. Identifies libraries containing AFP resources for PSF to use when processing sysout data sets. #.8 alphanumeric characters Default OUTPUT JCL Statement An OUTPUT JCL statement that contains a DEFAULT=YES parameter is called a default OUTPUT JCL statement. processing of Chapter 22. the information will be syntax checked.data-set-name8)} See page 22-87 WRITER=name See page 22-88 data-set-name: 1 .. If your installation does not define any use for this keyword.value]. The sysout DD statement contains an OUTPUT parameter that specifies the name of the OUTPUT JCL statement. Names an external writer to process the sysout data set rather than JES.8 library data set names containing AFP resources name: 1 .) See page 22-83 From 1 to 16 values. stored as part of the output descriptor’s information. The sysout DD statement implicitly references all step-level default OUTPUT JCL statements in the same step. Comments Field The comments field follows the parameter field after at least one intervening blank. . Refer to your installation’s definition on the intent and use of this keyword.. USERDATA=value (value[. and then ignored. Location in the JCL References by Sysout DD Statements An OUTPUT JCL statement can be referenced by a sysout DD statement in two ways: v Explicitly.4 alphanumeric or $. USERLIB={data-set-name } {(data-set-name1.data-set-name2. v Implicitly. The sysout DD statement does not contain an OUTPUT parameter. or characterarrangement table for a 3800 Printing Subsystem. Note: If the sysout DD statement does not contain an OUTPUT parameter and the job or step does not contain a default OUTPUT JCL statement. @ characters PURPOSE Specifies universal character set. print train. You must place the OUTPUT JCL statement in the input stream before any sysout DD statement that refers to it. Defined by the installation.

.. DD . The referencing DD statement can appear later in the procedure. A sysout DD statement implicitly references all job-level default OUTPUT JCL statements when the step containing the DD statement does not contain any step-level default OUTPUT JCL statements... OUTPUT JCL Statements in Cataloged or In-Stream Procedures OUTPUT JCL statements can appear in procedure steps.or step-level default OUTPUT JCL statement in a job or step. Step-Level OUTPUT JCL Statements This statement appears in a step. Step 2 Step-level OUTPUT JCL statement for STEP2 22-10 . You can place more than one job. EXEC PROC=A OUTPUT ... in the calling job step. A procedure DD statement can refer to an OUTPUT JCL statement in an earlier job step or to a job-level OUTPUT JCL statement.. DD . DD . However.and Step-Level OUTPUT JCL Statements in the JCL Job in Input Stream Step 1 //jobname JOB . Location of Default OUTPUT JCL Statements Where you place default OUTPUT JCL statements determines to which statements a sysout DD statement implicitly refers. DD . //STEP1 //name //DD1 //DD2 //DD3 //STEP2 //name //DD1 //DD2 //DD3 z/OS V1R3. anywhere after the first EXEC statement in a job. for this reason. and appropriate installation defaults. Job. that is. DD . except within a concatenated DD statement.. //name OUTPUT ..0 MVS JCL Reference Job-level OUTPUT JCL statement Step-level OUTPUT JCL statement for STEP1 EXEC PGM=X OUTPUT .. Job-Level OUTPUT JCL Statements This statement appears after the JOB statement and before the first EXEC statement... or in a later step in the job... procedures cannot contain job-level OUTPUT JCL statements or OUTPUT JCL statements with JESDS parameters. a procedure DD statement cannot refer to an OUTPUT JCL statement in the calling step. Table 22-1.. a JES2 /*OUTPUT statement or a JES3 //*FORMAT statement. OUTPUT JCL Statement with JESDS Parameter Place an OUTPUT JCL statement with a JESDS parameter after the JOB statement and before the first EXEC statement... An OUTPUT JCL statement must not be placed before the first EXEC statement in a procedure..OUTPUT JCL the sysout data set is controlled only by the DD statement.. It cannot be used for a started procedure. DD ..

v Parameters that appear only on the sysout DD statement or only on the OUTPUT JCL statement are used by JES in processing the data set. parameter.OUTPUT JCL Table 22-1.. v An OUTPUT JCL statement explicitly referenced by the OUTPUT parameter of the sysout DD statement...and Step-Level OUTPUT JCL Statements in the JCL (continued) Procedure A in SYS1. and not as a reference to a JES2 /*OUTPUT statement. Such a DD statement contains an INTRDR subparameter in the SYSOUT parameter. Two separate sets of output are created from the data set defined by the sysout DD statement: – One processed according to the options on the JES3 //*FORMAT statement combined with the sysout DD statement.. In this case. Relationship to the JES2 /*OUTPUT Statement JES2 ignores a JES2 /*OUTPUT statement when either of the following appears in the same job or step: v A default OUTPUT JCL statement implicitly referenced by the sysout DD statement. //DD6 DD . Step-level OUTPUT JCL statement for PSTEP1 Procedure Step 2 Step-level OUTPUT JCL statement for PSTEP2 Overrides v Parameters on a sysout DD statement override corresponding parameters on an OUTPUT JCL statement. //DD4 DD . Relationship to Sysout DD Statement Do not refer to an OUTPUT JCL statement in a sysout DD statement that defines a JES internal reader... //DD7 DD .. v When a JES3 //*FORMAT statement contains a DDNAME parameter that explicitly references a sysout DD statement. Relationship to the JES3 //*FORMAT Statement v When a sysout DD statement implicitly or explicitly references an OUTPUT JCL statement. A default //*FORMAT statement contains a DDNAME=. //PSTEP1 EXEC PGM=G //name OUTPUT .. JES2 uses the third positional subparameter of the DD SYSOUT parameter as a form name. Chapter 22. JES3 ignores any default JES3 //*FORMAT statements in the job. //PSTEP2 EXEC PGM=H //name OUTPUT .. JES3 ignores any default OUTPUT JCL statements in the job..... OUTPUT JCL Statement 22-11 . //DD8 DD .. //DD5 DD . //DD9 DD ... v JES3 uses the processing options from both a JES3 //*FORMAT statement and an OUTPUT JCL statement in a job when (1) the //*FORMAT statement DDNAME parameter names a sysout DD statement and (2) the sysout DD statement’s OUTPUT parameter names an OUTPUT JCL statement.PROCLIB Procedure Step 1 // PROC . Job...

code 2 apostrophes. Valid Characters Without Enclosing Apostrophes: When the value for delivery address is not enclosed in apostrophes. Symbolic Parameters: Do not enclose symbolic parameters within apostrophes.OUTPUT JCL – One processed according to the options on the OUTPUT JCL statement combined with the sysout DD statement. v Enclose a value that contains a blank in apostrophes. Code a comma to indicate the omitted subparameter. An ampersand that refers to a symbolic is substituted... For more information on the use of the OUTPUT JCL statement with JES3. and enclose the entire delivery address in single apostrophes.) and asterisk (*). ADDRESS Parameter Parameter Type Keyword.60 EBCDIC text characters. optional Purpose Use the ADDRESS parameter to print an address on the separator pages of an output data set. $. however. Symbolic parameters enclosed in apostrophes are not resolved for this keyword. v To code an apostrophe in the delivery address. 22-12 z/OS V1R3. #) characters v Period (.0 MVS JCL Reference . Subparameter Definition delivery address Specifies the delivery address for the output data set. v Plus sign (+) v Hyphen (-) v Slash (/) Null Subparameters: You may code a null subparameter to cause a blank line to appear in the delivery address. v Ampersand (&).’delivery address’]. An installation can use the address to assist in sysout distribution. For example: //OUTDS OUTPUT ADDRESS=’O’’DARBY AVE’ v Each value may optionally be enclosed in apostrophes. See “Character Sets” on page 4-3 for a description of EBCDIC text characters. Each delivery address can be 1 . the following characters are valid: v Alphanumeric and national (@.)} {delivery-address } Valid Characters in Enclosing Apostrophes: v A delivery address enclosed in apostrophes can contain any EBCDIC text character. You can code up to 4 delivery addresses. an asterisk followed by a period indicates a referral and is not allowed as the start (first and second characters) of the value. Syntax ADDRESS= {(’delivery address’[. see z/OS JES3 Initialization and Tuning Guide. but they will result in a single ampersand as part of the value. Two consecutive ampersands are not substituted.

the system uses the value defined in the transaction program (TP) user’s RACF profile when: – The user submitting the TP profile has a RACF profile defined for him. there are no override considerations for ADDRESS.NE’. Chapter 22.’57 FAIR LANE’. v In a non-APPC scheduling environment: There is no default for the ADDRESS parameter on the OUTPUT JCL statement.) The name appears in the address field on the separator pages.OUTPUT JCL: ADDRESS Defaults v In an APPC scheduling environment: In both JES2 and JES3 systems. Note that 12121 does not require enclosing apostrophes. Example 2 //OUTDS3 OUTPUT ADDRESS=(. Plant 1234 Main Street POUGHKEEPSIE. Examples of the ADDRESS Parameter Example 1 //OUTDS2 // OUTPUT ADDRESS=(’J. ’POUGHKEEPSIE. OUTPUT JCL Statement 22-13 . Overrides v In an APPC scheduling environment: In both JES2 and JES3 systems. the address J.12121) I