Does anyone know something about MVS and JCL?
Is it possible to explain to me what MVS is? And what JCL is used for?
Does anyone know something about MVS and JCL?
Is it possible to explain to me what MVS is? And what JCL is used for?
I believe you are referring to MVS and JCL.
MVS is the operating system for the IBM mainframe systems and JCL is the job control language for the mainframe. You could correlate MVS to Linux and JCL to Bash for example.
The AS/400 / iSeries / IBM i / i5 is considered a midrange machine. It's operating system is called OS/400 or more recently i5/OS.
To expand a little bit on the name MVS:
MVS was added to the name of the OS/VS2 operating system in the late 1970s. It stood for Multiple Virtual Storage, pointing out the ability to run many tasks using virtual storage concepts in one machine. Eventually the OS/VS2 was dropped.
MVS stayed in the name through the MVS/370, MVS/XA (eXtended Architecture, 31-bit) and MVS/ESA (Enterprise Systems Architecture, data spaces) period, up until the mid-1990s, when the operating system was renamed OS/390, which was followed up in the early 2000s with 64-bit support by z/OS, the name still used today. However, in IBM documentation, the core operating system components are still referred to as MVS.
There are many good Internet references that expand on the history of the IBM System/360 and successor operating systems.
For JCL Job Control Language
Used for
It is really versatile language that control everything you can do on a mainframe.
Ex: Check if DataSets are empty with icetool and idcams & count number of lines using icetool
000100 //CHKEMPTY JOB 12345,
000110 // 'CHECK EMPTY',
000120 // CLASS=A,
000130 // NOTIFY=&SYSUID
000200 //*
000210 // SET USER=YOURUSERNAME
000220 //* SELECT THE CC RETURN FOR ACTION
000300 //*****************************************************
000400 //*1 CHKEMP ICETOOL 2 COUNT ICETOOL 3 CHKEMP IDCAMS
000600 //*****************************************************
000610 //STEPSET EXEC PGM=IDCAMS
000620 //SYSPRINT DD SYSOUT=*
000630 //SYSOUT DD SYSOUT=*
000640 //SYSIN DD *
000650 SET MAXCC=2 <----SELECT OPTION YOU WANT TO TEST
000660 /*
000670 //*
000680 //*********************************************************************
000690 //* CHECK EMPTY WITH MAXCC=12 ICETOOL
000691 //*********************************************************************
000692 //*
000700 //STEP0001 EXEC PGM=ICETOOL,COND=(1,NE,STEPSET)
000900 //IN DD DSN=&USER..EMPTYDS,DISP=SHR <--- EMPTY DS FOR TEST
001010 //TOOLMSG DD SYSOUT=*
001100 //DFSMSG DD SYSOUT=*
001110 //TOOLIN DD DATA
001200 COUNT FROM(IN) EMPTY
001300 /*
001301 //*
001302 //*********************************************************************
001303 //* COUNT LINES WITH ICETOOL
001304 //*********************************************************************
001305 //*
001306 //STEP0002 EXEC PGM=ICETOOL,COND=(2,NE,STEPSET)
001307 //TOOLMSG DD SYSOUT=* <--- CONTAINS RECORD DATA
001308 //DFSMSG DD SYSOUT=*
001309 //IN DD DSN=&USER..COBOL(CBLPGM),DISP=SHR
001310 //TOOLIN DD DATA
001311 COUNT FROM(IN)
001312 /*
001313 //*
001314 //****************************************************
001315 //* CHECK EMPTY FILES USING IDCAMS MAXCC=4 EMPTY
001316 //****************************************************
001317 //*
001318 //STEP0003 EXEC PGM=IDCAMS,COND=(3,NE,STEPSET)
001319 //IN DD DSN=&USER..EMPTYDS,DISP=SHR <---- EMPTY DS FOR TEST
001320 //SYSPRINT DD SYSOUT=*
001330 //SYSIN DD DATA
001340 PRINT INFILE(IN) COUNT(1)
001350 /*
MVS is the operating system and there are various means to interact with the operating system. Like with Windows or Linux, one way is through the command line. PC-type operating systems call it something like "Terminal". On MVS it is called the console. (I am not digging into different types of consoles here, however.)
Another way is through scripts. CLIST, the shorthand for Command List, is an older scripting language available in TSO (Time Sharing Option), an interactive request / response type of dialog which is the basis for the more user-friendly Interactive System Productivity Facility, also called ISPF. Nowadays, REXX is the most popular scripting language among the MVS System Programmers. But in recent years, also new programming languages like Python have been ported to the mainframe platform and can be used much like they can be used on non-mainframe platforms.
And yet another way to interact with the operating system is through batch jobs. Here JCL, the Job Control Language, comes to play. It is a special language that you can use to describe the task (or tasks) of the batch job, its input, the actual program to be executed and its output.
JCL acts as a means to tell the Job Entry Subsystem, JES, what resources are needed. JES on the other side ensures that these resources are made available (=allocated) so that the job can run successfully. When all resources are available, JES initiates the job and it is now the task of the operating system to find compute resources (CPU, memory, I/O) for it. At this point, the job is just yet another process running on the system. Finally, when the job completes, JES processes its output. How does it know about it? Well, through the JCL. The JCL specifies what to do with the output, whether it should be stored in a data set, whether it is printed, or for example, whether it stays in a memory pool called SPOOL (simultaneous peripheral operations on-line) until being purged by the user or by an operator.
"Multiple Virtual Storage", actually. As opposed to an earlier version of the OS, "Single Virtual Storage".
The difference is whether there is one address space per job (the norm today) or one shared by all jobs (the norm before computers came with address-relocation hardware).
JCL - It is a job control language which controls programs to be run.
MVS - Multiple Virtual Storage system.
MVS is what tells the Mainframe computer how to act upon developer and user requests. JCL is the language users use to tell the computer how to act upon their requests. Requests as in Nightly Banking jobs that manage bank accounts. Airplane Online Reservations systems using an Online language called CICS which runs on top of JCL. Infact everything that's user based is JCL based and is governed by MVS in terms of how much memory a task / job needs. Which disk drives or tape drives it needs to use user data and communicate results back to the user, using computer terminals / printers and other devices. The simple layman explanation of it all. :)
© 2022 - 2024 — McMap. All rights reserved.