|
Approximate time to completion: less than one hour
Welcome to the IBM Master the Mainframe Contest!
Before starting this contest, you need a mainframe user ID. If you
registered
for the contest before September 27, you should have already received your
user ID — if you did not receive your ID, or if you need it re-sent,
please send an email to zskills@us.ibm.com. If you register for the contest on
September 27 or later, IBM will send
you a user ID within five business days (though probably much quicker).
See this
page to register.
The object of this part of the contest is to get you acquainted
with the
mainframe interface as well as with some basic user commands. If you
competed
in last year's contest, you'll recognize the flow of this part of the
contest,
though many of the details have changed. Read the instructions carefully!
The instructions below will lead you through exactly what you need to do
to successfully complete Part 1 of the contest. The faster you complete
this section, the better your chances of winning. The first 500
contestants
to complete this section win custom Master the Mainframe T-shirts.
Good luck!
In order to access a z/OS mainframe
(z/OS is the mainframe operating system), you'll need
a 3270 terminal emulator. Follow the instructions
based on your operating system:
- If you are running Windows, pick up an emulator from
Tom Brennan Software here. Download the Vista V1.24 .exe file. (Windows Vista users: use the
same
link, but download the Vista V1.26 beta instead.)
Double-click on the .exe file and follow the installation
instructions.
The screenshots given throughout these instructions were taken on a
Windows
XP machine. There may be slight variations for other operating
systems.
- If you are using a Mac machine, you can pick up a
3270 emulator here.
-
If you are running
Linux, install the following package: x3270 -port
623. See this page
for more information.
Once installed, the default location to access the 3270
emulator on a Windows
machine is: Start->
Programs -> Vista tn3270 ->
Vista Standard Session.
Open the emulator. The first time you do this, you might get
this
error:

If you do, simply click "OK" to proceed. You
are now ready to set up your emulator and connect to
the mainframe.
Return to the top
For Windows users,
from the menu bar in Vista Session A, select File
-> Reconnect Ask. (For other operating systems:
configure your emulator with the same values listed
here.)
The Host IP Name for the z/OS system you'll be accessing for
the contest is 192.86.32.16. The IP Port is 623. Fill in these two
values, and click Connect:

You should now see the z/OS welcome screen:

You are connected to a mainframe. If this is your first time on Big Iron,
may you always remember this moment. Let's cruise along and get you logged
on. Return to the top
A quick note about z/OS: z/OS is an upgrade of what was
previously
called OS/390. Both of these operating systems are an evolution
of MVS, which stands for Multiple
Virtual Storage. There are still many references to MVS
and OS/390 in mainframe literature.
To gain access to
the mainframe with your user ID, you need to login
to TSO (which stands for Time Sharing Option, but
you don't need to remember that.)
Here's where things will be a little different than what you
are probably
used to. To get to the TSO logon screen, type: LOGON Z9#####
(where Z9##### is your IBM-supplied user ID -- please note that any '0'
characters in
your user ID are zeros, not the letter 'O'). Please be careful to enter
your user ID exactly as IBM sent it to you. The Vista emulator allows you
to use Ctrl+V to paste text from your clipboard, so you can cut-and-paste
the user ID from your email if you'd like to play it safe.

Now press the right
Ctrl key. On the mainframe, the right Ctrl key enters
commands. The Enter key, the arrow keys and the tab key are used for navigating the cursor.
If you master this, you're halfway to becoming a mainframe wizard! Well, maybe not quite
halfway, but you're getting there.
Note: Some mainframe emulators (including the emulators that run on Linux and
Mac boxes) have mapped the keys so that Enter performs the function of
the right Ctrl key. These instructions assume that you aren't using such
an emulator, but if you are, you'll have to make a slight mental adjustment
when the instructions tell you to press Ctrl.
You are now looking at this screen:

The first time you log in, your password is z9sys4me
(not CaSe SeNsItIvE, just like most things in z/OS). After putting z9sys4me in the
password field, hit Ctrl (from now on, whenever the instructions
refer to the Ctrl key, they are referring specifically to the right
Ctrl key). You will be prompted to choose a new password:

The password rules here are very specific, so please read these
rules carefully.
All passwords must:
- Be six to eight characters in length
- Contain at least one non-alphabetic character
- Contain at least one alphabetic character
- Have non-numeric first and last characters
- NOT contain four consecutive characters of old password
- NOT contain three identical adjacent characters
- NOT contain your User ID
Some examples of valid passwords:
- z9z9z9z
- z9dude
- pw4mtm
- jcl4eva
Choose a new password and press Ctrl. You'll be asked to enter it again
for verification. After you do this, the system will take a moment to
register
your first logon. At this point, the system is creating some information
specific to your user ID and linking you to various subsystems. This takes
a moment; relax and think about a happy place. After a few seconds, you
will see the following progress screen:

Notice at the bottom of the screen, you see this: ***.
The three asterisks mean that the system is waiting for your input to
continue. Press Ctrl to continue and you're on your way!
The screen in front of you now is the starting point
for much of what is done on the mainframe, the ISPF
Primary Option Menu (ISPF stands for Interactive System
Productivity Facility, but you don't need to remember that, either.)

Press Ctrl to clear the Copyright popup window:
ISPF is where the magic happens. You are officially logged into a System
z mainframe, and you've completed the first three steps of Part 1 of the
contest. Congratulations! Welcome to Big Iron.
Return to
the top
The default setting in ISPF is for the command line to be at the bottom
of the screen. Most systems programmers, though, prefer to have the
command
line at the top of the screen. Let's quickly change this so you'll look
like an old pro. On the command line, enter 0 (you pressed Ctrl, not
Enter,
right? Good!)

This takes you to the ISPF Settings menu.
On this screen, practice
navigating through the menu by pressing the Tab key
repeatedly. The
cursor will stop at every field on the screen. Now try pressing
the Enter key repeatedly. The cursor only stops at the leftmost field
on any given line.
Navigate to the field beside Command line at bottom.
Delete the "/" using the delete key (the backspace key will bring you back a space
but will not delete characters). Press Ctrl. The command line jumps to the top of the
screen:

Now your screen is set up like an experienced systems
programmer. Feel
cooler now? Excellent.
To get back to the ISPF Primary Option Menu, press F3 (on a Mac, press
Command + 3). F3 almost always takes you one screen back — like many things in z/OS,
the F keys are customizable by the user or the application. F3 is a very important key
to remember. (If you accidentally hit F3 twice, you'll be taken all the way back to the TSO
READY prompt - to get back to the ISPF Primary Option Menu from here, type ISPF and press
Ctrl.)
IMPORTANT NOTE
ON LOGGING OFF (and logging back on): If you don't intend to
log off before completing "Breaking the Ice:
Part 1," you should skip to task
#5 after reading this sentence: Be sure to come
back and read this section before attempting to end your
session so that you don't get locked out of your account!
When you need to log
off of z/OS, press F3 until you arrive at the TSO
READY prompt. Type LOGOFF and press Ctrl:

You can now safely
close the emulator window. However, if you have done more
extensive
work during your session, you will see this screen
when you attempt to F3 past the ISPF Primary Option
Menu:

If you encounter this screen (as you will after completing some
of the
later steps), select option 2: "Delete data set without
printing,"
and press Ctrl. You will then be taken to the TSO READY prompt, and the
system informs you that Z9#####.SPFLOG1.LIST (a log that you don't
need)
has been deleted. Type LOGOFF and press Ctrl to end your
session.
Should you not follow
this logoff procedure, you will get this error when
you try to log back in:

If this happens to you, enter LOGON on this screen, then supply
your user
ID at the next prompt.
Once you get to this screen:

enter your password (but don't press Ctrl yet). Now Tab down
until the
cursor is beside -Reconnect, and put an S there. Now press Ctrl.
Voila! You're back in business. Press Ctrl at this
*** prompt:

and you will be back at home, sweet home: the ISPF Primary
Option Menu.
Return to the top
From the ISPF main
screen:

select option 3 (Utilities), and press Ctrl.
On the next screen:

select option 4 (Dslist
- short for data set list) and press Ctrl.
Several data sets have already been created for your z/OS user ID. Let's
go take a look at them. On the line Dsname Level, type your user ID:

and press Ctrl. You'll be presented with a list of all of the
system-generated
data sets that have been created for you:

A partitioned data
set (PDS) is the mainframe equivalent of a folder or a
directory. Most of
the data sets in the list you're looking at now are actually of the type
PDSE (partitioned data set extended), which is an improvement over
the type PDS. If you're interested in the technical differences between a PDS and a PDSE,
you can read a very thorough explanation on this blog.
A data set contains members, which you are probably used to
calling
files. Let's have a look at a member that contains a program that you'll
be running a little later in Part 1. Tab down until your cursor is beside
Z9#####.REXX, then type a B (for browse):

and press Ctrl. You'll see a list of all of the members in the
data set.
You can also browse members by entering a B on the field next to
them. Try this
on the member named COUNT (if you were going to Edit
a member, you'd enter it using E instead — but
we're not doing that just yet):

The COUNT member that you're looking at contains the code for a program
that you're
going to run later in the contest. You don't need to do anything here now,
but you've just learned how to navigate into data sets and members. This
is very important stuff!
Now press F3 until you're back at the ISPF Primary Option menu. Let's
create
a new member for you to check out.
Background
to explore: Quick
and dirty overview of mainframe file systems:
On a PC or Mac, all the operating systems (Windows, Linux, Mac
OS, etc.)
use what are called bitwise file systems. The majority of z/OS uses what
is called a record-oriented file system. What's the difference? Well, in
a bitwise file system, files are just a collection of sequential streams
of bits, and there is a special character to tell the computer where a
line (or "record" in mainframe-speak) ends and the next one
starts.
In a record-oriented file system, instead of having a stream of bits,
files
are organized on the disk into separate records. Because of this property,
you define the sizes and attributes of your records so there is no need
for a special end line character, which helps to conserve system
resources.
(Mainframes can also support special bitwise file systems called HFSes
and ZFSes.)
What else makes z/OS different? z/OS has very rich support for
controlling
resources, and this spills over into its file system. When you make a new
data set, you have to define how big it can grow, as well as how its
records
are set up. You might think this seems cumbersome. "I don't need to
define every file on my PC," you might be thinking. But the reason
that z/OS needs to track each file is because the disk access speeds on
the mainframe are amazing. Suppose you have a rogue program that has some
flaw, and it just keeps writing out to disk. If we left this unchecked
on a mainframe, you could find terabytes of data written out, filling up
your disks. Before you realized what was happening, it would be too late.
Not a big deal if that happens while you're downloading music on your PC,
but if this happened to a bank or an airline while processing millions
of transactions, it could be crippling. That's why the mainframe works
the way it does. It's an important consideration in large systems
thinking!
Return to the top
Right now, most of your data sets (folders) are just empty containers.
We need to put something in them. A member (file) can be anything you'd
like it to be - flat text, executables, program output - just like the
files on your home computer. Let's create a simple flat text
member.
F3 all the way back to the ISPF Primary Option Menu. Select
option 2 (Edit).
Let's name the new member after the person who's going to create it - you.
Data sets are named with 1-8 character identifiers separated by periods,
like this: Z9#####.COMPETE.PARTONE. When you're creating or editing
new
members, the system automatically assumes that you want the first
identifier
(called the high level qualifier or HLQ) to be your user ID, unless you
put single quotes around the entire data set name.
Tab down until your cursor is on the Data Set Name field. The data
set we're going to populate is your Z9#####.COMPETE.PARTONE data set. Enter
COMPETE.PARTONE as the data set name, then put the member name in parentheses
directly
following the data set name. Let's use your first name (or the first eight
letters of your first name). Once your screen looks something like this
(though not exactly like this, unless your name is Vinnie):

press Ctrl to continue. The system creates a new member named your_name
in the data set Z9 #####.COMPETE.PARTONE and automatically opens it in an editor
session. (In case
you're curious, entering 'Z9 #####.COMPETE.PARTONE
( your_name)' also would have worked.)
Now you're ready to learn the ISPF editor!
Return to the top
You are now in the ISPF editor, looking at a blank
member:

Tab your cursor to
the first line of blank space (two lines under the
first "-" in "-Warning-"):

Now type in three lines worth of whatever you'd like to say. We
highly
recommend a haiku poem about the mainframe - five syllables on the first
line, seven on the second line, then five again on the third line.
The three lines of text can be whatever you want - you don't have to come
up with a haiku (we will post our favorite haikus on our contest Web page, though, so try to
come up with one if you can).
The important thing is that you type three lines of text here, using the
tab key to move to the second line when you're done with the first and
so on. When you are finished entering the text, press Ctrl. (If at any
point you mess up and would like a clean slate, enter CAN (short
for cancel) on the command line. Your work will not be saved, and you will
return to the previous screen. Press Ctrl on that screen, and
you will have
a fresh data set member again. You can also enter
HELP at any time on the command line for more information
about the ISPF editor.)
Once you're happy with your text, press Ctrl. Your screen
should
now look something like this:

The ISPF editor is
very careful to preserve system resources. It has made the
member exactly three lines
long and chopped off the excess blank lines. To save your work,
type SAVE on the command
line and press Ctrl.
Return to the top
Now let's practice some
simple ISPF editor commands - the basic tools for editing
and modifying members.
To insert more blank
lines, use the I command (for insert). Editor
commands go in the numbered field beside the lines of
text, right on top of the existing line numbers. Let's
insert two lines by putting the I2 command on the third
line (go ahead and type right over the line numbers
that are there):

Now press Ctrl. Two blank lines have been created:

Let's now copy your brilliant text forty times over. To do this,
put a
CC on the first line you want to copy, and a CC on the last
line you want to copy (the first and third lines of your text,
respectively). To tell the editor to paste the copied section forty times,
go to the last line, and put an A40 in the last line's command
field (the A stands for "paste After
this line."
A B would paste it before the line.)
Your screen should look
something like this:

Now press Ctrl. Your haiku (or whatever you typed) has now
repeated forty
times, off the bottom of the screen:

Notice that one blank line — ISPF doesn't like wasted
resources. Paging up and down using F7 and F8, respectively, will
automatically delete blank lines. You can also delete the blank line by putting a D to the
left of it and pressing enter, if you prefer. Delete the line now:

The line should now
be gone:

You can use DD the same way you used CC to delete sections of
text as well.
Now let's repeat the first line of text 5 times. To do this, use
the R
(repeat) command. Type R5 on the first line:

Now press Ctrl, and your first line repeats five times, with new
line numbers
to match:

On the command line, enter the command BOTTOM. This takes
you to the bottom of the member. Tab down and use the I command to insert one more
line after the last line of the member. On
the new line, enter your first and last name, followed by the school you
currently attend, and press Ctrl:

If you'd prefer that we didn't share your name or haiku on our
contest
Web pages, insert one more line, type the text "PLEASE DO NOT
SHARE"
and press Ctrl.
You've now learned how to log into a mainframe, to navigate the ISPF
panels
and to create and edit your own data set members. Not too shabby. Let's
save your work and move on.
F3 out of your data set member - it will save automatically (if you ever
want to quit without saving, remember that CAN for cancel will do the trick).
Now let's run an executable program against the member you just
created.
More
background to explore: Why do I have to keep pressing
page up (F7) and page down (F8)?
Probably the most unfamiliar
part of the ISPF editor is the fact that it doesn't
just automatically scroll up and down like most PC editors
do. There
is a good reason for this! It's for efficiency's sake. In the non
-mainframe world, when you are
using an editor that scrolls in real-time, going through
the network to a server, you are always sending data
back and forth to the server (for just about every keystroke).
With mainframes (and the emulator you're using),
data is only sent to the mainframe when you hit the Ctrl key or a
function (F#) key.
This saves a lot of traffic. When you have upwards of 10,000 or
more folks
working at the same time, those few bytes on the network
can mean a big savings, especially if it's over an expensive
wide area network (WAN) link!
Return to the top
From the ISPF Primary Option screen, select option 6:
Command.

This screen lets you enter TSO commands from ISPF. We need to
execute a
REXX program (REXX is a powerful, user-friendly programming language used
on the mainframe) that is stored in the member ZOS.CONTEST.REXX(COUNT)
against the member you created. You may remember looking at your own
personal
copy of the COUNT program earlier in the contest. Now let's put some REXX
to work!
"EX" is
the TSO command for "execute."
To execute the REXX program, enter on the command line:
EX 'ZOS.CONTEST.REXX(COUNT)' 'your_name' (where
your_name is either your first name or the first eight letters of your first name,
whichever you named the member where your haiku lives):

The program will begin running, giving you the following
message:

Remember, the *** means that the system is waiting for your
input. Press
Ctrl to continue executing the program.

Press Ctrl again to
clear the system output. The program has now executed. Let's go
see what it did! Instead of using F3 to back out to the
ISPF Primary Option Menu, let's use a shortcut. On the command
line, enter "=3.4":

This is the same as
choosing option 3 from the Primary Option Menu, then
choosing 4 on the next screen. You should recognize the screen
you are
now looking at:

Make sure your user ID is specified on the Dsname Level
field, and press Ctrl.
On the next screen, put an E for edit beside
the data set Z9#####.COMPETE.PARTONE:

Press Ctrl. There is a new member in your data set now,
named after your user ID. Put an E beside it and press Ctrl to
have
a look.

The REXX exec counted
each occurrence of the lines of your haiku (plus your name and
school), and generated
output to this new member accordingly.
IMPORTANT:
Type SAVE on the command line and press Ctrl. Doing this will
time-stamp the member so IBM
can tell when you completed this step. If you fail to do
this, your entry will
not be judged:

After you save the member, you can verify that it was saved
correctly by the white message in the upper right-hand corner, Member Z9#####
saved:

F3 back one screen. The prompt informs you that the member was
edited:

You've now completed all the steps for "Part 1: Breaking
the Ice," except for sending your work to IBM. Let's
do that now!
Return to the top
On the command line,
type =6, which is a short cut for going back to the ISPF
Primary Option Menu and selecting option 6: Command.

Now you need to submit
all your hard work to IBM, which, for this contest,
is using the user ID JUDGES. To transmit your REXX output
member to this
ID, type the following command on the command line
(where your_id is, you guessed it, your
Z9##### user ID):
XMIT N1.JUDGES DA(COMPETE.PARTONE(your_id))

The system will generate
a message to let you know that the member has been
submitted for processing:

Press Ctrl to continue. At the next set of messages, verify
that "0
WAS THE HIGHEST SEVERITY CODE":

You did it -- Congratulations!
In all the commotion, you might not have noticed how much you've just
accomplished.
Not only can you create and edit data sets and members, but you can run
programs, generate output and transmit data to other users on the
system.
You should consider putting the
completion of this part of the contest on your resume — hands-on mainframe experience
sets you apart from other job seekers. With the current generation of mainframe programmers
reaching retirement age, many large employers are actively seeking mainframe skills. That's
a major reason for the creation of this contest. And if you manage to complete Part 2 of the contest, you'll be
eligible to put your resume in the Student
Opportunity System, a recruiting tool accessible to all of IBM's clients and business
partners!
For more background and current
information on mainframes, and to see how
widely mainframes are used in the IT industry, check out the following
web sites:
If you were one of the first 500 contestants to correctly complete all
the steps above and XMIT your data set to the user ID JUDGES, IBM
will contact with you within 15 business days of your submission
to confirm that you have won a Master the Mainframe T-shirt.
You should now have enough mainframe experience to tackle the more
difficult challenges in "Part 2:
Practical experience."
Thanks for participating, and good luck if you choose to attempt Part 2!
Return to the top
|