Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Learning mainframe & JCL with Java/OOP/SQL background [closed]

Tags:

mainframe

zos

jcl

I've been coding and managing Java & ASP.Net applications & servers for my entire career. Now I'm being directed towards involvement in mainframes, ie z/OS & JCL, and I'm finding it difficult to wrap my head around it (they still talk about punch cards!). What's the best way to go about learning all this after having been completely spoilt by modern luxuries?

like image 796
Tim Avatar asked Mar 20 '09 06:03

Tim


People also ask

Is mainframe easy to learn?

“The mainframe is a very difficult platform to learn, and that's due to the cost,” said Ceballos. “Individuals do not have the money to pay to lease a mainframe. A very small amount of schools teach courses on mainframes and COBOL.

How many days IT will take to learn mainframe?

Weekday mainframe Classes - 1.5 month - 1 Hour Mon-Fri Class. In Class, You Get Hands-on Real-world skills on each mainframe Topic. Weekend mainframe esb Classes - 100 Days - 2+ Hours Class.

Is mainframe still in demand?

“Mainframe skills will always be here and as long as the incentives and salaries are there, people will still move into it. Most people don't believe the mainframe will disappear any time soon – it'll be here for at least the next 10 years,” they conclude.


2 Answers

There are no punch cards in modern mainframes, they're just having you on.

You will have a hard time since there are still many things done the "old" way.

  • Data sets are still allocated with properties such as fixed-block-80, variable-block-255 and so on. Plan your file contents.
  • No directories. There are levels of hierarchy and they're limited to 8 characters each.
  • The user interface is ISPF, a green-screen text-mode user interface from the seventh circle of hell for those who aren't used to it.
  • Most jobs will still be submitted as batch jobs and you will have to monitor their progress with SDSF (sort of task manager).

That's some of the bad news, here's the good news:

It has a USS subsystem (UNIX) so you can use those tools. It's remarkably well integrated with z/OS. It runs Java, it runs Websphere, it runs DB2 (proper DB2, not that little Linux/UNIX/Windows one), it runs MQ, etc, etc. Many shops will also run z/VM, a hypervisor, under which they will run many LPARs (logical partitions), including z/OS itself (multiple copies, sometimes) and zLinux (SLES/RHEL).

The mainframe is in no danger of disappearing anytime soon. There is still a large amount of work being done at the various IBM labs around the world and the 64-bit OS (z/OS, was MVS, was OS/390, ...) has come a long way. In fact, there's a bit of a career opportunity as all the oldies that know about it are at or above 55 years of age, so expect a huge suction up the corporate ladder if you position yourself correctly.

It's still used in the big corporations as it's the only thing that can be trusted with their transactions - the z in System z means zero downtime and that's not just marketing hype. The power of the mainframe lies not in it's CPU grunt (the individual processors aren't that powerful but they come in books of 54 CPUs with hot backups, and you can run many books in a single System z box) but in the fact that all the CPU does is process instructions.

Everything else is offloaded to specialist processors, zIIPs for DB2, zAAPs for Java workloads, other devices for I/O (and I/O is where the mainframe kills every other system, using fibre optics and very large disk arrays). I wouldn't use it for protein folding or genome sequencing but it's ideal for where it's targeted, massively insane levels of transaction processing.

As I stated, z/OS has a UNIX subsystem and z/VM can run multiple copies of z/OS and other operating systems - I've seen a single z800 box running tens of thousands of instances of RHEL concurrently. This puts all the PC manufacturers 'green' claims to shame and communications between the instances is blindingly fast with HyperSockets (TCP/IP but using shared memory rather than across slow network cables (yes, even Gigabit Ethernet crawls compared to HyperSockets (and sorry for the nested parentheses :-))).

It runs Websphere Application Server and Java quite well in the Unix space while still allowing all the legacy (heritage?) stuff to run as well. In fact, mainframe shops need not buy PC-based servers at all, they just plonk down a few zLinux VMs and run everything on the one box.

And recently, there's talk about that IBM may be providing xSeries (i.e., PCs) plugin devices for their mainframes as well. While most mainframe people would consider that a wart on the side of their beautiful box, it does open up a lot of possibilities for third-party vendors. I'm not sure they'll ever be able to run 50,000 Windows instances but that's the sort of thing they seem to be aiming for (one ring to rule them all?).

If you're interested, there's a System z emulator called Hercules which I've seen running at 23 MIPS on a Windows box and it runs the last legally-usable MVS 3.8j fast enough to get a feel. Just keep in mind that MVS 3.8j is to z/OS 1.10 as CP/M is to Windows XP.

To provide a shameless plug for a book one of my friends at work has written, check out What On Earth is a Mainframe? by David Stephens (ISBN-13 = 978-1409225355). I found this invaluable since I came from a PC/UNIX background, and it is quite a paradigm shift. I think this book would be ideal for your particular question. I think chunks of it are available on Google Books so you can try before you buy.

Regarding JCL, there is a school of thought that only one JCL file has ever been written and all the others were cut'n'paste jobs on that. Having seen the contents of them, I can understand this. Programs like IEBGENER and IEFBR14 make Unix look, if not verbose, at least understandable.

like image 55
paxdiablo Avatar answered Sep 28 '22 09:09

paxdiablo


You first misconception is beleiving the "L" in JCL. JCL isnt a programming language its really a static declaration of how a program should run and what files etc. it should use.

In this way it is much like (though superior to) the xml config spahetti that is used to control such "modern" software as spring, hebernate and ant.

If you think of it in these terms all will become clear.

Mainframe culture is driven by two seemingky incompatable obsessions.

  1. Backward compatability. You can still run executables written and compiled in 1970. forty year old JCLs and scripts still run and work!
  2. Bleeding edge performance. You can have 128 cpus on four machines in two datacentres working on a single DB2 query. It will run the latest J2EE (Websphere) applications faster than any other machine.
like image 39
James Anderson Avatar answered Sep 28 '22 09:09

James Anderson