The Mainframe
Part One - Challenge #01

IBM Z

In this challenge, you’ll get your first exposure to the mainframe, learn about the specialty processors it uses, and get connected to a live system for later challenges.

Click twisty to expand sections

Meet the Mainframe

Mainframes have a special place in the world of high-volume business processing. You may already be familiar with a lot of the concepts and technology that power the mainframe, including Linux, APIs, and containers. We'd like to show you what gives the mainframe key differentiations in these, and other important areas. Check out the "What is a Mainframe" page for a quick overview of the platform.

Specialty Engines

You may have used a computer with multiple processors before, and chances are you’ve leveraged a Graphics Processing Unit to accelerate image rendering. On a mainframe, you’ll find not only a large number of general purpose processors, but specialty engines as well, each with a specific role in maintaining high throughput. The video below has more information.

Down to the (Green) Metal

Let’s take a deeper look at not just the hardware that makes up a mainframe, but how it is leveraged to create virtual machines and resources. It’s important to realize that the mainframe is not just a cluster of typical machines, or a hot-rodded PC with special abilities. It’s literally engineered from the ground up, no compromises, to run valuable business transactions.

With all of those parts, you might think the mainframe is just one big computer, but that’s not the complete story. The real benefit of having all of those resources in one place comes in the form of virtualization; taking chunks of available resources, like processors and memory, and using them to create smaller, flexible, custom-sized virtual instances.

Virtualization is everywhere on the mainframe, from memory to storage, network to consoles. The video below goes into even greater detail.


Being able to run multiple operating systems on the same machine isn’t just a convenient way of having all your systems in one box. Consider 200 typical distributed servers, each with their own power supplies, CPUs, memory, and network adapters. When you consolidate all that down into one physical footprint, not only does complexity and area usage go down, there are tremendous energy savings as well.

In the Redbook “Practical Migration from x86 to Linux on IBM System z”, Section 1.1.2, titled “The IBM Big Green Server Consolidation” outlines the environmental impact of moving 3900 servers onto a mainframe running Linux, including some very interesting numbers. Read section 1.1.2 in the Redbook

One company that helps engineer electrical solutions for datacenters is Schneider Electric. They have a tool on their website that can help estimate the total resources needed to support modern computing resources, which you can check out here.

Spend some time exploring this tool, observing the Data Center IT Capacity Rating as you change the Server Quantity and Mainframe Quantity values. This information will be needed for one of the questions in the final section.

Of course, you don’t put all of that hardware together in one place just to look pretty. What runs on top of the hardware is an Operating System. You probably have a phone that runs a particular operating system, like iOS or Android, and you’ve probably used a computer that runs an operating system like Windows, Mac OS, or Linux.

The mainframe can run several different operating systems, each one with its own unique purpose. Learn more about the Operating Systems in this video With the Operating System running, the next step for most mainframe users is to start installing and configuring Middleware. On other platforms, these are sometimes called Services or Daemons. If the Operating System provides core functionality, the role of Middleware is to add additional functionality that could be used by someone writing a business application.



Middleware Magic

Middleware is what makes it possible to write complex applications that scale up to the demands of highly-demanding business situations.

But what does it do?

You’ve seen what a mainframe looks like, and heard a few of the things that people use it for. What we haven’t covered is how a mainframe user puts it all to use to make things happen.

Mainframe developers will often use a “best fit” approach to building applications. They’ll build APIs for cloud services, modern languages like Swift for applications that interact with mobile devices, and they’ll leverage middleware such as CICS and Db2 to handle transactions that deal with data. Next up, you’ll learn about an end-to-end solution that leverages all of the above to create a custom online shop for longboarding equipment.

Read this article: Longboarding their way to the mainframe

Make your first move!

A mainframe is a type of computer with a special place in the world of high-value mission-critical business transactions. Its hardware is purpose-built to support the highest level of availability, security, and scaleability. It's also incredibly flexible, open, and evolving, so you can develop solutions with open-source languages, tools and frameworks, scale out to hybrid and multi-cloud environments, and pioneer solutions in exciting new industries.

The mainframe runs a number of operating systems, including Linux, and integrates with a variety of cloud platforms. For these challenges, we wanted to make it interesting and bring you something you probably haven't had hands-on experience with before. Give your fingers a stretch and let's get ready to dive into the z/OS operating system.

Getting Prepared

There are many ways to connect to a mainframe. You can connect to REST APIs, application interfaces, web sockets and graphical user interfaces.

For example, one such interface is Zowe (pronounced like Zoe) which is the first z/OS open source project. It is an extensible framework to connect applications and tools to mainframe data and applications. For example, there is a Zowe CLI that enables cloud-like access to the mainframe. See it in action in this video created by one of our developers.

Feel free to further explore Zowe. For this competition, we’re going to use a text-based terminal connection. Many mainframe users prefer the terminal, retro looks and all, to be the most direct method of working on their systems, and for these challenges, it’ll be the easiest and clearest way of showing what is required for each step.The mainframe has its own flavor of terminal, called 3270. You should have already downloaded the TN3270 from the Preparation Section. There are other ways to connect to the mainframe, like using ZOWE (https://www.zowe.org), but for this contest we will use the 3270.

Today, we’re going to use a text-based terminal connection. Many mainframe users prefer the terminal, retro looks and all, to be the most direct method of working on their systems, and for these challenges, it’ll be the easiest and clearest way of showing what is required for each step.

The mainframe has its own flavor of terminal, called 3270. You should have already downloaded the TN3270 from the Preparation Section. There are other ways to connect to the mainframe, like using ZOWE (https://www.zowe.org), but for this contest we will use the 3270.

Video - Master the Mainframe 2019 Part 1 Walkthrough

Part 1 written instructions with screen captures exists Before completing the Part 1 challenge using the written instructions, an instruction video to learn the fundamentals of navigating the terminal is available. No need to follow along. You will do a different exercise below.



Connect to the Mainframe

3270 emulator software prerequisites
3270 emulator software prerequisites:
  • Installed
  • Configured to access IP Address 192.86.32.91
  • Session started

If prerequisites are not met, then see the
Preparation
drop down and review Connection Instructions.


Logon to the Time Sharing Option (TSO) environment using 3270 emulator software as instructed.

The screen below will appear as a result of starting a successfully configured 3270 emulator session.
 If the screen below fails to appear, see the Preparation drop down.

Logon to the Time Sharing Option (TSO) environment using 3270 emulator software as instructed.

The input cursor is positioned in the lower left - waiting for logon z##### to be typed followed by enter key - lower right Ctrl key.

** Remember to replace Z##### with your ID.

Enter Key:
  Most TN3270 emulators use lower right side Ctrl key as the enter key.
    The above does NOT apply to Mac keyboard.

  If you want to change location of the TN3270 emulator default enter key,
  - the emulator software has a keyboard mapping function.
  Review the specific TN3270 emulator help for instructions on changing keyboard mapping.
TN3270 Colors:
  TN3270 emulators are capable of changing foreground and background colors.
  - such as making background white and foreground text black, etc.
  Review the specific TN3270 emulator help for instructions on changing colors.

Enter the password previously sent to you in the confirmation email.

*Remember: press right side Ctrl key which is the default enter key in most TN3270 emulators
*Note: Mac TN3270 emulator enter key could be different

The following screen appears as a result of successfully entering password

Enter (right-side Ctrl) to proceed to next screen


A message CURRENT PASSWORD HAS EXPIRED is displayed.
-- Enter a new password (8 characters or less) in the New Password input field to continue.

Choose a new password that follows rules highlighted below
-- Pay attention to the directions on the screen.
-- z/OS requires new password twice.
-- What you type and enter is NOT visible on your screen.

Password Rules:
  • Less than or equal to 8 characters in length.
  • *Note: Past 3 passwords previously selected will be invalid.

If you receive an authorization error, retype the password again making sure that you are entering it correctly.

If a mistake is made during this process, system will prompt again for the correct password format until requirements are met.

Observe cursor position is in the *New Password ===> data entry field.

Reenter the new password in the NEW PASSWORD field for verification.

When system accepts new password your selected, then logon to z/OS proceeds as follows:

If all goes well, then logon messages will appear

The above screen will appear momentarily.

Below - notice the three asterisks *** to the left of the cursor?
 z/OS is waiting for enter key to continue.
 Press the enter key (Ctrl) and you're on your way!
   Mac enter key is an exception.

The screen below will appear with the ISPF Primary Option Menu.

Navigating Tips and Tricks:

In ISPF, you choose where you want to go based on a menu-based navigation. For example, to go to option 3: Utilities, from the first screen, type 3, followed by Enter. To go back, press F3. The F* keys (or Function keys) are a convenient way of issuing instructions to the system you’re logged into, but you may have to perform some additional tasks to set them up right depending on your computer. You may need to hold down a keyboard modifier (like the Fn button) or re-map the keys using the terminal emulator software.

You can use other F keys in ISPF to move around, such as:

  • F7/F8 – Page up / Page down
  • F10/F11 – Page left / Page right

From the home screen, navigate to Utilities (Option 2), then from the Utilities screen, jump to Data Set Utilities (Option 2). To get back to the home screen, we have two options:

  • Press F3 twice
  • Enter an equals sign followed by a period (=.)

One more trick, we can navigate directly to Data Set Utilities by typing 3.2, which indicates a 3 followed by a 2. This will put us directly into Data Set Utilities without requiring a stopover at the main Utilities screen.

By entering an = at the beginning of a command, we are telling the system “Regardless of where I am, enter this as if I am on the home screen”, so even if we are in option 6, we can type =3.2 and get to Data Set Utilities without needing to first go back to the home screen.

ISPF Primary Option Menu Settings option 0 worth exploring. Many Settings exist that you may prefer. Take a look at the settings and the drop downs.

ISPF Primary Option Menu Settings includes preference to place ISPF command line at bottom or top.


Submit JCL to Allocate Part 1 Data Sets

You’re logged in, you know how to drive this thing now let’s grab some data sets and get started.

You’ve probably run a program on your computer. Submitting a job in z/OS is like running a program on a desktop computer, except that z/OS needs to be able to handle multiple jobs running at the same time from multiple users. TSO, which stands for Time Sharing Option, allows for jobs to be submitted for execution, and provides feedback to the users when they are completed.

We don’t have to worry about a lot of those details for this specific challenge, as we will be running a pre-written job.

Now we are going to run a job that creates the data sets (we’ll learn about data sets later) that will be used throughout this contest.

**Big hint to avoid typing: Copy and Paste works - copy from instructions and paste into TN3270
  Ctrl-c (copy) and Ctrl-v (paste) works for many (but not all) workstations.

Enter tso submit 'zos.public.jcl(part1)' as shown

Note the spaces, single-quotes, and parenthesis. You can enter the text in upper or lower-case, either will work as long as everything else is correct.

Enter a as shown in response to ENTER JOBNAME CHARACTER(S) -

Remember -enter- is required to proceed when *** is displayed.

MAXCC message will appear once the job completes. Message is followed by three asterisk requiring ENTER to proceed.

About Condition Codes

If you’ve ever mis-typed a website, you’ve probably seen an Error 404: Page Not Found error.

The code 404 is just a simple way of representing a type of error with a number. z/OS has a series of condition codes to represent something similar.

If you get a condition code 0 (or 0000) that means that everything ran exactly as expected. There were no errors, no warnings, and as long as the program itself is doing what you expect it to, you’re in good shape. A condition code of 4 means that your job ran and finished, but some warnings were detected along the way, and you should check your job output to make sure it did what you think it should have.

Error codes 8, 12, and others typically mean that an error was detected, and the job did not complete. Common causes of these errors are missing commas or spaces in the job definitions, filesystems running out of space, incorrect permissions, or attempted use of unsupported functions. Either way, you’ll want to look into your job’s output to determine exactly what caused the program to stop, and what you can do to fix it.


Verify successful allocation of Part 1 Data Sets

Let's make sure the data sets were created.

ISPF Primary Option Menu selection 3 displays more options, then option 4 is the target Data Set List panel. 3.4 jumps directly to the Data Set List panel.

The ISPF Primary Option Menu is displayed, then type 3.4 -enter- as shown

The ISPF Data Set List Utility panel is displayed.
Type your assigned ID in the Dsname Level field, then -enter- as shown:
** Remember to replace z##### with your ID.

Data Sets Matching the type ID are displayed


Using ISPF to view Unix File Path and Files

z/OS stores data in both unix files and data sets. Now we are going to copy the data sets to unix files so we can play with Unix on Z in Part 2 of the contest.

Why is there Unix in z/OS?

The Unix operating system started as an internal project at Bell Labs, and has gone on to be the basis of Linux, Android, MacOS, and countless other computing platforms. It is in fact so prevalent in the world of IT that many users wished they could somehow combine the two so they didn’t have to have two sets of computers to work on both platforms.

Unix System Services (USS) was developed on IBM Z so that users familiar with Unix could have access to a Unix-style interface without having to leave the mainframe. Today, USS is used not only by developers and systems programmers, but leveraged by the core z/OS operating system to provide functionality and scripting ability.

You will learn about the differences between unix files and data sets in the contest challenges.

Press function key 3 (F3) or enter exit to return to previous panel.

On the Data Set List Utility panel, tab to the Dsname Level input field, then overtype your ID with /z/z#####
(replacing ##### with your ID unique number)

Note: Unix file names are case sensitive

The result is z/OS UNIX Directory List for Pathname /z/z#### which is empty.
Your next step is to create a UNIX file in your directory.

Enter return to display the ISPF Primary Option Menu


Create and Copy Unix File to a Data Set

Enter u on the Option command line as shown to bring up the Unix shell.

A z/OS UNIX shell prompt is displayed

Enter date as shown below so you can see the time and date. This output will be used in the next few steps.

The output of unix command date is displayed,
then enter date > p1 to redirect date command output to unix file p1

In Unix, the cat command is used to view the contents of a file. Enter cat p1 to view what we just wrote into p1.

The unix file, p1, consisting of date output is written to the display.

Copy unix file p1 into a partitioned data set name, pds.data, with member name p1 using the unix cp command.

Enter cp p1 '//pds.data(p1)'

Enter cat '//pds.data(p1)' to write the output of partitioned data set, pds.data, member name p1 to the display.

Data set name pds.data member name p1 is written to the display.

Enter exit to terminate the z/OS UNIX shell session

Session ended message is displayed. Press -enter- to proceed.

Let's make sure the P1 was copied to the partitioned data set.

On the ISPF Primary Option Menu, enter 3.4

The Data Set List Utility panel is displayed again.
Overtype Dsname Level field with your ID, then enter

Below - observe Command ===> line and a Command column
Commands are possible in both the Command line and the Command column

Tab to the left of Z#####.PDS.DATA, then enter e in the Command column as shown

Below - observe EDIT in the upper left corner indicating Z#####.PDS.DATA is in EDIT mode.

Tab to the left of member named P1 and enter s to select member P1 as shown

Displayed is the content of member P1 in data set name Z#####.PDS.DATA

Enter return to terminate ISPF edit and return to ISPF Primary Option Menu


Get credit for completing Part 1
  • Successful completion requires correct answers to 11 questions
  • Each question is displayed one at a time with multiple choice answers
  • A wrong answer prompts contestant to try again until correct
  • Following a correct answer for each of the 11 questions, a record of successful completion is written

The quiz questions you will be prompted to answer are::

  1. What size rack does the newest mainframe live in?
  2. What specialty engines will you find on a modern mainframe?
  3. The mainframe is unique in that it has a large amount of ________ in one place.
  4. According to Esmeralda, why does the mainframe need another computer within its frame?
  5. In the “The IBM Big Green Server Consolidation” section of the linked Redbook, an effort to migrate 3900 servers onto 30 IBM Z mainframes. By using mainframes instead of servers, they were able to use ____ less energy.
  6. In the Virtualization video, the unused resources on servers is referred to as:
  7. In the Schneider Electric electrical calculation tool, start with 1000 servers and no mainframes, and observe the total IT Capacity Rating, keeping all other settings default. Now, replace 500 servers with one mainframe and observe the change. What happens to the total number of kW?
  8. What Operating System does not currently run on the mainframe?
  9. z/VM doesn’t need to run on another Operating System to provide virtualization, so it can be referred to as a Type ___ Hypervisor.
  10. Which of the following is not an example of Middleware?
  11. Which Transaction Manager did the 17 year-old van der Wal twins use to build their custom end-to-end solution?

From the ISPF Primary Option Menu enter tso p1quiz

Example below is the first quiz question with multiple choice answers. Select the best answer.

A message You have successfully completed Part 1 is displayed.
Enter to proceed in response to ***


How to terminate ISPF session and logoff TSO / TN3270 session

When you want to terminate ISPF session and logoff TSO, then -
From the ISPF Primary Option Menu, enter x to terminate the ISPF session.

If the Specify Disposition of Log Data Set panel appears as seen below, select
Process Option .... 2 to Delete data set without printing

The TSO 'READY' prompt is displayed.

Enter logoff to terminate TSO / TN3270 session.


Part 1 introduced terminology and basics used in Part 2:
  • TN3270 emulator to connect z/OS
  • Logon to z/OS Time Sharing Option, TSO
  • ISPF, Interactive System Productivity Facility, a panel driven TSO application
  • Data Set Names
  • UNIX file directory and file names
  • UNIX shell prompt command processing
  • Edit a Partitioned Data Set member
  • Terminate ISPF session returning to TSO cli, READY prompt
  • Logoff TSO / TN3270 session

While there are many ways to interact with z/OS, learning 3270 TSO/ISPF accelerates mastery of other web based z/OS interfaces.


Brag to your friends about completing Part 1 by posting a message to your social media networks.


Success! Now Part 2 Challenge #01 is waiting for you.

Next: Part Two - Challenge #01