- Shopping Bag ( 0 items )
- Spend $25, Get FREE SHIPPING
List Price
$60.00
Textbook Details
Used & New From our Trusted Marketplace Sellers
To try again, please visit the B&N Marketplace.
This textbook is not currently available.
The internationally bestselling guide to JCL programming for todays enterprise programmers and developers
A significant upgrade to IBMs System 390, zOS has simplified the process of setting up and configuring the mainframe while providing improved performance. Along with special features designed for e-business applications, zOS also offers support for 64-bit real storage, improved security, and support for Intelligent Resource Director (IRD). In order to send batch programming work orders to this powerful operating system, programmers can utilize the job control language (JCL). Revised and updated to incorporate these changes, this book will show you step by step all the ways you can use JCL with zOS. This new edition combines an easy-to-follow tutorial for programmers new to JCL and a programming reference for more experienced users. Brown also presents several examples that focus on the concerns of PC programmers as well as sections on programming in multiplatform environments. Other new features to the book include:
| Preface | ||
| Job Control Language Parameters | ||
| Ch. 1 | Introduction | 1 |
| Ch. 2 | Introduction to JCL and z/OS | 6 |
| Ch. 3 | JCL within a Job | 35 |
| Ch. 4 | JCL Statement Formats and Rules | 51 |
| Ch. 5 | The JOB Statement | 60 |
| Ch. 6 | The EXEC Statement | 77 |
| Ch. 7 | The DD Statement | 103 |
| Ch. 8 | More on the DD Statement | 146 |
| Ch. 9 | DD Statements for Input Stream and Print Data Sets | 153 |
| Ch. 10 | Direct-Access Storage Devices | 181 |
| Ch. 11 | SMS: Storage Management Subsystem | 208 |
| Ch. 12 | Magnetic Tapes | 217 |
| Ch. 13 | JES2 and JES3 | 236 |
| Ch. 14 | Cataloged and Instream Procedures | 248 |
| Ch. 15 | Generation Data Groups | 276 |
| Ch. 16 | Miscellaneous JCL Features | 282 |
| Ch. 17 | VSAM Data Sets | 300 |
| Ch. 18 | The Linkage Editor and Loader | 315 |
| Ch. 19 | IBM Utility Programs | 331 |
| Ch. 20 | Sort/Merge | 352 |
| Ch. 21 | ISPF | 379 |
| Ch. 22 | TSO/E | 417 |
| Ch. 23 | TSO/E REXX | 438 |
| Ch. 24 | Hierarchical File System (HFS) Files | 449 |
| Ch. 25 | JCL and the Internet | 456 |
| Index | 461 |
1.1 THE SHOCK OF JCL
Your first use of JCL (Job Control Language) will be a shock. No doubt you have used personal computers costing $500 or $1,000 that had wonderfully human-engineered software, giving you an expectation of how easy it is to use a computer. Now, as you use a computer costing several million dollars, you may feel like a waif in a Dickens story standing in the shadow of a massive mainframe computer saying meekly, "Please, sir, may I run my job?" It will come as a shock that its software is not wonderfully human engineered.
The hardware and software design of large IBM mainframe computers date back to the days when Kennedy was president. JCL is a language that may be older than you are. It was designed at a time when user-friendliness was not even a gleam in the eye of its designers. This is easily demonstrated by taking the simple task of copying a file and contrasting how it is done through JCL with how it is done on the most popular personal computer system, Windows. To copy a file with Windows, you left-click twice on the MY COMPUTER icon, left-click on the C: drive icon, left-click twice on the folder containing the file, and right-click on the file to copy. On the resulting menu, you click on COPY and then left-click twice on the folder into which you want the file copied. Finally, you right-click inside the folder and selectPASTE from the menu and you are done. It is wonderfully intuitive and simple. To do the same thing with JCL, you might write the following, in which old-name names the original file and new-name is the name you select for the copy.
//RT452216 JOB (45992,335),'SAMPLE JOB',CLASS=A //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=A //SYSUT1 DD DSN=old-name,DISP=SHR //SYSUT2 DD DSN=new-name,DISP=(NEW,CATLG), // UNIT=SYSDA,RECFM=FB,LRECL=80, // SPACE=(0,(100,20)) //SYSIN DD * REPRO INFILE(SYSUT1) OUTFILE(SYSUT2) /*
This is far more complicated and not remotely intuitive. But what if you must copy 50 files? With JCL, you could use your text editor to quickly make 50 copies of the JCL statements, and overtype all the old-names and new-names. Then you simply submit the job to the computer, which is easier than going through the Windows clicking and pointing procedure 50 times. Now suppose you must copy the same 50 files on a daily basis. Windows would be a nightmare, but with JCL, a single command lets you resubmit the lines of JCL that copy the 50 files.
Then the inevitable happens. Your boss comes in and, with an accusing eye, asks if you inadvertently forgot to copy a file the previous day. With the pointing and clicking of Windows, you would have no answer. By contrast, JCL produces a listing-an audit trail-that you can wave in your boss's face to prove that the problem was not yours. The next day your boss informs you that the copy procedure must be done during the graveyard shift. With Windows, your nights will be sleepless. But with JCL, you can specify a job class that starts during the graveyard shift, leaving your nights free for more enjoyable activities.
What has just been described for JCL is the essence of batch processing (submitting one or many jobs or procedures in one fell swoop) and production computing. Interactive computing, such as that provided by Windows, Linux, Macintosh, and UNIX is wonderful for many things, but once those wonderful things are completed and the daily grind of running them begins, JCL comes into its own.
JCL is neither lovable nor simple. It was designed long ago and shows its age in ways such as having to code information in specific columns of a line. However, IBM has made changes to both JCL and the operating system that eliminate some of its worst aspects.
The large mainframe computer is an extremely conservative environment. The basic hardware architecture and operating system appear to the user much as they did over a third of a century ago. The benefit of this is that programs written back then can still run unchanged today, and knowledge gained back then is still valid. The greatest strength of large IBM mainframe computers, indeed, the strongest force in the computing universe, is compatibility. Billions of dollars are tied up in application software, and many companies would not accept an incompatible computer with modern design and software features even if it were free, because software is the dominating cost in computing, not hardware.
1.2 THE ROLE OF JCL
You do not use JCL to write computer programs. Instead, it consists of control statements that introduce a computer job to the operating system, provide accounting information, direct the operating system on what is to be done, request hardware devices, and execute the job. JCL tells the operating system everything it needs to know about a job's input/output (I/O) requirements. Sitting above JCL in many installations is a job entry system (JES) with a job entry control language (JECL). You code the JECL statements to specify on which network computer to run the job, when to run the job, and where to send the resulting output. IBM provides two job entry systems for z/OS: JES2 for decentralized control, and JES3 for highly centralized control of several computers. JCL and JES go hand in hand, and this book describes both.
1.3 THE DIFFICULTY OF JCL
JCL provides the means of communicating between an application program and the operating system and computer hardware. Measured by the number of moving parts, the z/OS operating system is one of humankind's most complex creations. The computer hardware is less complex, but complex nonetheless.
JCL is difficult because of the way it is used. A normal programming language, however difficult, soon becomes familiar through constant usage. In contrast, JCL has language features used so infrequently that many never become familiar. JCL is also difficult because of its design. It is not a procedural language like COBOL or C/C++ in which you build up complex applications step by step from simple statements. JCL consists of individual parameters, each of which has an effect that may take pages to describe. JCL makes few useful assumptions for you-you must tell it exactly what to do. For example, virtually every batch computer program prints some output. However, the system doesn't assume this. You must supply a JCL statement to print output.
The z/OS operating system demands an extraordinary amount of information, most of it supplied by JCL, to run a job. For example, to save a file on disk storage, the system wants to know the record type, the record length, the block size, the type of I/O unit, the volume serial number of the disk volume, and more. (The recent changes to simplify JCL have been in this area.)
JCL was designed at a time when people were relatively cheap and computers expensive. In 1965, one million computer instructions were roughly equivalent in cost to 15 minutes of a programmer's time. Today the opposite is true. People are expensive and computers are cheap. A million instructions today buys less than a fraction of a millisecond of a programmer's time. Consequently, JCL, designed to be efficient in computer time, is operating today in an environment where the cost of a person's time is the dominant expense. This book attempts to save you time-not just save computer time. Some of the worse things done in computing have been for efficiency. Saving two bytes in the year field is an extreme example that made the new millennium stressful for many. The cost performance of computer chips is still doubling roughly every 18 months, and while this can't last forever, it would be foolhardy to predict when it will end. This has a profound effect on how much effort a company wants to invest in optimizing programs.
1.4 THE APPROACH TO JCL
The first several chapters of this book describe the individual language statements, tell how to write them, explain what they do, and suggest how to use them. With this as background, the book shifts to functional descriptions of the hardware devices, access methods, and other topics. Because you rarely need many JCL features, the book notes whether a feature is ESSENTIAL, SOMETIMES USED, or RARELY USED. You should pick and choose.
The goal of this book is to give you all the information you need to program on z/OS, except for the programming language you use. To accomplish this, the book goes far beyond JCL. The book introduces the concepts and facilities of the operating system from the application programmer's point of view. Several non-JCL operating system facilities are also described, including IBM utility programs, the Sort/Merge program, the linkage editor, VSAM (Virtual Sequential Access Method), TSO/E (Time Sharing Option), and REXX (REstructured eXtended eXecutor).
This book explains JCL and shows you how to use it, but it won't try to make you like it because JCL is not a likable language. Almost no one, even programmers with years of experience, can sit down and write JCL statements the way they could COBOL or C++ statements. Consequently, people who write JCL generally know what they want to do and then consult some existing JCL to use as a prototype to write the new JCL statements. The book gives many short examples to serve as prototypes with the assumption that short, concise examples are preferable to lengthy explanations.
The book gives special attention to the use of JCL with COBOL, FORTRAN, PL/I, C/C++, and Assembler Language. Where appropriate, the book describes their interfaces to JCL. The book is based on the z/OS version of the operating system. Although IBM occasionally releases new versions of z/OS, the new releases seldom change existing JCL.
If you are just learning z/OS, you can use this book as an introduction to the operating system and JCL, skipping over the RARELY USED, being selective with the SOMETIMES USED, and concentrating on the ESSENTIAL features. The book presumes you have some familiarity with a higher-level language. If you are an experienced z/OS programmer, you can use this book to learn unfamiliar JCL features or to refresh your memory on seldom-used features. Finally, the book serves as a reference for all who program in z/OS.
For classroom usage, read Chapters 1 to 14 in sequence, working in the installation's particular requirements. Then select topics from the remaining chapters as needed. Exercises at the end of many chapters consist of short, simple problems that can be run on a computer. They are designed as much to teach you about your installation and the problems of actually running jobs as they are about JCL as a language.
JCL provides many abbreviations and alternate names for coding. For simplicity and to reduce errors, the book shows only one form, the shortest, except when the short form conveys no meaning (CANCEL rather than C) or the long form is very short (NO rather than N). The book displays JCL statements and parameters in capital letters, with italics denoting items for which you select values. Text comments about a JCL statement are set off in brackets beneath the statement:
//SYSUT1 DD DSN=new-name,DISP=NEW
[The new-name represents a name you choose for the file. Code uppercase characters exactly as shown.]
(Continues...)
Excerpted from zOS JCL (Job Control Language) by Gary DeWard Brown Excerpted by permission.
All rights reserved. No part of this excerpt may be reproduced or reprinted without permission in writing from the publisher.
Excerpts are provided by Dial-A-Book Inc. solely for the personal use of visitors to this web site.
To try again, please visit the B&N Marketplace.



