BSP - Beratung, Schulung, Projekte


Table of Contents

Generating the MVS 3.8J Tur(n)key System

Software Requirements

Sysgen System directory structure

When you installed the Tur(n)key sysgen system, a target directory (default mvs38j) was created with a few subdirectories in it. The directory structure is like this:

+ mvs88j                 installation directory
!
+------ conf             configuration and control files
!
+------ dasd             pregenerated dasd images
!
+------ hercules         binaries needed for Hercules execution
!
+------ jcl              contains the SYSGEN Job Control Files
!
+------ log              contains log files created during sysgen
!
+------ scripts          shell scripts used during installation
!
+------ shadow           directory for cckd shadow files
!
+------ snapshot         Snapshots made during sysgen
!
+------ tapes            Directory for tape files

When you need to run command files, you will find them in the "scripts" directory. The command files for windows have the extension ".BAT", while the Linux scripts have no extension at all. Actually, most of the Windows command files don't really do very much, except invoke the bash interpreter which in turn runs the Linux shell script

Note that the Hercules version must have support for compressed disks and tapes included, as all files used by this generation are compressed (using zlib)

If in doubt, use the Hercules version provided in this package, it has the necessary compression enabled

Now the real fun starts. You first have to build a starter system. Don't worry, this is really not difficult. Just run the Installation script

Table of Contents

INS0010 - Build Starter System

This scripts unpacks the starter system from an archive provided in the "snapshot" subdirectory of the CD-ROM. It then builds some more DASD images

After the volumes have been built, the script now automagically runs Hercules for initializing the volumes.

You now should start a telnet client to connect to the Hercules instance. Switch to another Windows or Linux session and invoke the starttelnet script (which starts the telnet client).

If you want to invoke telnet directly make sure that your telnet client connects to port 3270 on the machine where Hercules is running. (Actually, the port number is set during the Tur(n)key installation. I am using the default (3270) here, but you could have chosen a different one. To start a telnet client, you could enter

telnet localhost 3270
or, if the Hercules system is on another machine than your telnet client:
telnet hercbox 3456
where hercbox is the name of the Hercules machine and 3456 is the portnumber that you selected during installation

Please note that "3270" has no relation to the device type of the console you want to connect to the Hercules engine, it is the port number you use for the connection. "3270" is as good as any other availble, non-reserved port number.

Once the Hercules engine is started, and the telnet client has connected to it, you can now IPL the stand alone init utility. On the Hercules console you enter

ipl 00a
or, on the semi-graphical console that you reach by pressing the ESC key you enter
l b
After a short while the system should enter an enabled wait. Switch over to the telnet console and press the [enter] key once You will see something like:
IBC105A  DEFINE INPUT DEVICE. DASDI  7.92
HHC901I Enter input for console device 0009
to which you answer (by typing at the telnet console):
input=1442,00c
and again pressing the [ENTER] key once. The telnet console should now show:
MVSRES JOB   'INITIALIZE 3350 MVSRES VOLUME'
       MSG   TODEV=1052,TOADDR=009
       DADEF TODEV=3350,TOADDR=148,IPL=NO,VOLID=MVSRES,BYPASS=YES
       VLD   NEWVOLID=MVSRES,OWNERID=Hercules
       VTOCD STRTADR=1,EXTENT=29
       END
and similar messages. Be patient, the system is now initializing the disk packs, and that will take a few minutes. When you see the message
IBC163A  END OF JOB.
       LASTCARD
then the disks are initialized, and you can now terminate the Hercules engine and the telnet client

The Hercules engine is terminated either by typing

quit
on the Hercules console, or, if you are using the semi-graphical console, by pressing
W
(for poWer off) and replying to the prompt.

By the way, if you now check the scripts directory, you will see that the script ins0010 has disappeared - It relocates itself automatically into the subdirectory done. Why? Well, this makes it more difficult for you to run the script again accidentially, wiping out all the work done....

Table of Contents

INS0020 - Write IPL Text to MVSRES

Invoking the command script ins0020 will now (again) start the Hercules emulator, but with a different configuration file. This time, after the telnet client has connected, you will want to start the MVS starter system by entering


ipl 150

where 150 is the device (cuu) address. on the Hercules console!!.
Alternatively, you can switch to the semi-graphical console and press

l e

to IPL off device E (where E is the device shortcut letter After a few seconds, the telnet session should show

IEA101A SPECIFY SYSTEM PARAMETERS FOR RELEASE 03.70.VS2
HHC901I Enter input for console device 001F

Now you enter

r 00,clpa

because this is the first IPL of the starter system. If you start the system at some later time, you can just press the [ENTER] key as a CLPA is not generally required then

After about a minute or two you should see

 IEF165I // START JES2
 IEE351I SMF SYS1.MAN RECORDING NOT BEING USED
*00 $HASP426 SPECIFY OPTIONS - HASP-II, VERSION JES2 4.0
To which you reply
r 00,format,noreq
Again, this is only required because this is the first time that JES2 gets started, and the spool dataset SYS1.HASPACE needs to be formatted. If you start the system later, you would enter
 r 00,,noreq
Back to our IPL, though. A message will now be displayed
*01 $HASP436 REPLY Y OR N TO CONFIRM CHECKPOINT RECORD CHANGE
to which your reply is
r 01,y
Again, you need to be patient, JES2 is now formatting the SPOOL0 volume. When everything has been formatted, you will see
 IEE041I THE SYSTEM LOG IS NOW ACTIVE
 $HASP100 INIT     ON STCINRDR
 $HASP100 INIT     ON STCINRDR
 $HASP100 INIT     ON STCINRDR
 $HASP373 INIT     STARTED
 $HASP309    INIT  1 INACTIVE ******** C=A
 $HASP309    INIT  2 INACTIVE ******** C=BA
 $HASP309    INIT  3 INACTIVE ******** C=CBA
 $HASP373 INIT     STARTED
 $HASP373 INIT     STARTED
 $HASP099 ALL AVAILABLE FUNCTIONS COMPLETE
Also, Hercules will now feed a job with jobname sg0000 to the started JES.

You should now enter the following JES commands

$SPRT1
$SPUNCH1
to enable printing/punching of job output.

After the job sg0000 has completed, you will find the output in the prt subdirectory with the name sg0000.lst

Expected RC
0

Table of Contents

Running Sysgen Jobs

The JCL to be run for the system generation are in the jcl subdirectory. To submit a job in file sg1234 you have three possibilities:

  1. devinit 012 ../jcl/sg1234 eof
    on the Hercules console
  2. n b ../jcl/sg1234 eof
    on the semi-graphical Hercules console
  3. via the socket device reader. On a standard Linux screen enter sub sg1234

Sometimes it is nice to see the JES2 assigned job numbers when diplaying MVS information via operator commands. You can achieve this by entering

$T OSC1,D=J
If you would also like to see a timestamp on every message, then enter
$T OSC1,D=T
instead

You might also consider to issue the MVS command

mn jobnames,t
which tells MVS to monitor and report on start and end of jobs.

All jobs that need to be run on the starter system have names beginning with sg followed by a number. Other jobs in the jcl directory will be run from the generated MVS system later

The output of jobs run go to the printer device at address 00E. This device is usually connected to a file prt00e.prt in the prt subdirectory. Using one of the folllowing commands

redirects the output to the specified file.

Every jobstep generates a Return Code (RC), a number between 0 and 4095. Usually, a 0 (zero) means success, and if the RC gets larger, it means a more or less serious error. Unfortunately the RC messages get sometimes overlooked. Therefore I have provided a shell script (cond) that will extract only the Return code messages and display those. You should copy this script from the scripts directory into a directory of your path, like /usr/local/bin

Table of Contents

SG0010 - Prepare for Sysgen

The SMP4 that is distributed with MVS is unfortunately unfit for system generation!! Fortunately, a replacement is available. This job will copy it from a work file into the starter system's SYS1.LINKLIB.

While we are updating some system files, we also add a few procedures to the system procedure library

Please note that you cannot read the socket reader device (sub command) right now, as the reader was not set up to bind to a port. You should use the command
devinit 012 ../jcl/sg0010 eof
After this job is run, an IPL is required before SMP4 can be used.

Expected RC
0

IPL - Pick up the new SMP4

As already mentioned an IPL is now required. No, don't press ctrl-alt-del yet! At the telnet screen (which is the MVS master console) enter the commands

$p
$pjes2
z eod
quiesce

We don't really need it right now, but you should do it anyhow, just to learn about it: Terminate the Hercules emulator (quit on the Hercules console or poWer on the emi-graphical console. We can now restart the starter system with a warm-start:

Table of Contents

STARTSTARTER or INS0030 - Start the Starter System

The script file ins0030 has a twin, called startstarter (easier to remember). It can be used to start the MVS starter system. Remember that you will have to start a telnet client on port 3270 (using the tn script or the starttelnet script)

When the message

IEA101A SPECIFY SYSTEM PARAMETERS FOR RELEASE 03.70.VS2
HHC901I Enter input for console device 001F
appears, you now (remember, this is a warm start) just press the [ENTER] key. After a few moments you will see
 IEF165I // START JES2
 IEE351I SMF SYS1.MAN RECORDING NOT BEING USED
*00 $HASP426 SPECIFY OPTIONS - HASP-II, VERSION JES2 4.0
To which you reply
r 00,,noreq
Shortly afterwards the warm start is complete.

Please note that the Reader is now set up as a socket device, with other words you can submit jcl streams via the sub shell script. You could copy the script sub into a directory in your path, like /usr/local/bin

Note that the script ins0030 does not move itself to the done subdirectory, as it will be needed more than once

Table of Contents

SG0020 - Create Master Catalog

The MVS system to be generated needs a mastercatalog. We will place it on the new system residence, and connect it to the starter system as a user catalog. Just run job sg0020 and see what happens...

Expected RC
0

Table of Contents

SG0030 - Allocate DLIB files

The DLIB (=Distribution LIBrary files) contain the building parts out of which the target system (the MVS to be generated) will be built. We allocate empty DLIB files using job sg0030. Later, these files will be filled via SMP4. Therefore we need to initialize the SMP environment as well.

Expected RC
0 for all but last step
8 for last step on first run
0 for last step repeated

Table of Contents

SG0040 - Receive product tape

Now we have to feed the product tape to SMP, which will unload the parts from the distribution tape and place it into temporary libraries on the MVSRES volume. (That is the volume that we specified on the TLIB parameter of the SMP4 procedure in job SG0010).

The distribution tape is in the file zdlib1.het, and you load the tape drive by entering

devinit 170 pathname/zdlib1.het
where pathname is the path to the directory containing the tape file. The file is usually in the tapes subdirectory of the CD-ROM. Now submit job sg0040. Be patient, this job has a lot to do, and it takes quite some time to complete!

Expected RC
0

Okay, so the long wait is over. What are we going to do now? Well, it is time for a snapshot.

Table of Contents

INS0040 - Write Snapshot # 1

You have invested quite a big amount of time and effort so far. Wouldn't it be a shame to loose it all, just because, like, by accident you reran command file ins0010? Better safe than sorry, thus let us create a backup.

First shut down MVS and end the Hercules engine. Then invoke command file ins0040 which will use TAR to create an archive in the directory snapshot. This archive contains the contents of the following subdirectories:

If you want to change what is written to the archive, you need to modify the writsnap shell script.

A volume can be recovered from a snapshot using command script restsnapvol. The syntax is

       restsnapvol {snapshot} {volume}
                   !          !
                   !          +--- volume of disk to restore
                   +-------------- snapshot number (01, 02, etc)


Example:  restsnapvol 01 mvsres

to restore volume MVSRES from snapshot # 1

A complete snapshot can be restored using the command script restsnap. The syntax is

       restsnap {snapshot}
                !
                +-------------- snapshot number (01, 02, etc)

Example:  restsnap 01

to restore the complete snapshot # 1
After the snapshot is complete, you can now restart Hercules, the telnet client, and MVS

Table of Contents

SG0050 - Receive product maintenance

No software product is without bugs. This is (especially) true for MVS. In the course of time fixpacks etc have been developed. IBM call the fixes PTFs. Ever wondered, what PTF stands for? Well, PTF = Program Temporary Fix . This tells you a lot about software maintence, doesn't it?

Okay, some of the fixes are available to us. A tape with accumulated PTFS is available, with the name of MVSPTF. Submit the jog sg0050, and a mount message will promptly appear on the MVS console. The emulated tape file has a filename of allptfs.het and is in the tapes directory on the distribution CD-ROM. You can now load the tape drive from the Hercules console by entering

devinit 170 tapedir/allptfs.het

The maintenance on the tape will now be received. This will take some time, as there are many hundreds of PTFs loaded into the system.

Expected RC
0

Table of Contents

SG0060 - Install BTAM

For some compelling, SMP related reason it is necessary to install one specific product before all the others. Install in this moment means: Load the information from the SMPPTS and the SMPTLIBS (where they have been placed by the RECEIVE commands in SG0040-SG0050) onto the DLIB files on MVSRES.

This will be done using the ACCEPT command of SMP. Usually, though, a SYSMOD will not be ACCEPed right away, but needs to be put into the Target Sytem for testing first, which would be done via an APPLY command. But we do not have a target system in the moment. Therefore the parameter NOAPPLY on the ACCEPT command is required to tell SMP that the FMID should be ACCEPTed even though it has not yet been APPLYed.

If you don't want your SMP jobs to run forever, use DIS(WRITE) as an additional option on the ACCEPT command. This keeps the directory of the highly used PDS SYS1.SMPACDS in memory, instead of incurring gazillions of disk I/O operations. If things go wrong, though, your SMPACDS might be seriously broken... Guess why we did a Snapshot in the previous step!

Expected RC
0

Table of Contents

SG0070 - Install BCP

The next job will install the BCP (=Base Control Program) plus a lot of related FMIDs (Functions) needed by MVS. This is a rather big job, and on my system (500 MHz, 256MB) it took about 3hours 20 minutes. Thus, have a break, watch the blinkenlights, and be patient

I also ran the same job under Linux on a 150MHz, 80MB Thinkpad. It was not exactly fast.....

Last message from the processor speed contest: I just ran the job on a 1.7 GHz Pentium IV. Elasped time was 28 minutes. Quite impressive......

Expected RC
0

Table of Contents

SG0080 - Install Networking

We now install the networking components of MVS. The job that needs to be run is sg0080.

Expected RC
0

Table of Contents

SG0090 - Install processor support

We wil now install the processor support group. A few Load modules are created here via the linkage editor, and therefore we will have a return code of 4 instead of the usual zero return code.

Expected RC
4

Table of Contents

SG0100 - Install JES2

The Job entry subsystem is straight forward in terms of installation. Just run job sg0100 and expect a return code of 0.

Expected RC
0

Table of Contents

SG0110 - Change PTF install instructions

Sometimes the sysmod relationship entries in a PTF are not quite perfect. To fix this for two of our PTFs we need to run sg0110.

Expected RC
0

SG0120 - Allocate Sysgen files

We need to create a few datasets that will be used during the Sysgen process. This is accomplished by running job sg0120

Expected RC
0

Table of Contents

SG0130 - Rebuild IFOX00

Sometimes the assembler provided by the starter system has the hiccups and randomly abends with S0C1 or S0C4. We have all the parts to build a new assembler, and that is exactly what SG0130 is doing. After this job has completed successfully (we expect RC=0) then you must shutdown MVS and Hercules! If you forget this, various abends (like S106-0E) may occurr.

Expected RC
0

Table of Contents

INS0050 - Build Page Volumes

As already mentiened, MVS needs to be shutdown now. Also, shutdown the Hercules engine. We need to run two scripts before we can start Hercules and MVS again:

The MVS system will need space for page datasets. We will place them on 3340 DASD. Those disks will be created using the script ins0050. We don't expect any errors from this script.

Table of Contents

INS0060 - Another Snapshot

After such a massive change to our system it might be a good idea to take another Snapshot. Shutdown MVS and the Hercules engine, then run command script ins0060, which puts new files into the snapshot directory. Don't throw away the previous snapshot files - you never know....

Table of Contents

SG0140 - Implement Support for new DASD devices, part 1

The brightest and finest DASD type supported by MVS 3.8J was the 3350 DASD, which is perfect enough, usually. Now, there are quite a few libraries around (like on the CBT tape which were built for more modern DASD types, like the 3380 or the 3390 DASD types. Enter Jim Morrison(no, not the one who is permanently in Paris). He has done some marvellous work and retrofitted support for 3375, 3380, and 3390 DASD devices into MVS 3.8. While there might be still a few rough edges, these modifications allow us to use those larger DASD files for general purpose processing.

Why would we want/need those devices? Many of the CBT provided programs, utilities, etc come in XMIT format for 3380 and/or 3390 devices, and the blocksizes don't really work for 3350 devices.

Running job sg0140 will RECEIVE the modifications into our new system.

This job needs a the tape with the filename j90009.het. It is located on the CD-Rom in the tapes subdirectory

Expected RC
0

Table of Contents

SG0150 - Implement Support for new DASD devices, part 2

No harm is done yet. In order to actually do the necessary modifications to system macros etc you need to run the job sg0150

The DASD support modifications are implemeted as USERMODs. What is the problem? Those USERMODS need to be ACCEPTed, as they modify the system generation (SYSGEN) process. And IBM doesn't know about those retrofitting USERMODs, with other words, PTFs that affect the same elements that are modified by the USERMODs will get an ID check and cannot be installed, unless we do some additional processing. Thus, if you are faint of heart, you might want to skip this step. Remember, though, that in this case

Expected RC
4

The reason for RC=4 is that new modules get introduced into the DLIB system that SMP4 does not yet know about. You will see messages like
HMA2471 BLDL FAILED IN LIBRARY AOSD0 FOR LOAD MODULE UTRK3390 IN SYSMOD M023000
HMA2471 BLDL FAILED IN LIBRARY AOSC5 FOR LOAD MODULE USRDDT00 IN SYSMOD M024001
HMA2471 BLDL FAILED IN LIBRARY AOSD0 FOR LOAD MODULE UTRKCALC IN SYSMOD M024001
which indicate this fact. You can safely ignore these messages and RC=4

We have installed all the functions of MVS available to us. The service (PTFs) has only be RECEIVED, we will implement them at a later stage.

Table of Contents

SG0160 - Sysgen, Stage 1

Finally! There are quite a few comments in the stage1 assembly deck, and I would recommend that you take a look at the deck before running job sg0160. One paramter might need to be adjusted: Around line 506 you will find an entry like


which controls the time setting for the Hercules machine. It is set to Germany (1 hour East of UTC). You might want to adjust it to your local time setting before running this job. Instead of editing sg0160 right awy you should first make a backup copy of the file, and call it sg0160.org

The IO Configuration is defined like this:

Consoles
CUA device type alternate
010 3277 master 011
011 3277 secons 010
009 3215 secons 01F
01F 3215 secons 009
30E 1403 hardcopy ./.

Printers
device CUA CUA CUA CUA
1403 00E-00E 10E-10E 20E-20E 30E-30E
3211 002-003 102-103 202-203 302-303

Card Readers/Punchers
device CUA CUA CUA CUA
2540 00C-00D 10C-10D 20C-20D 30C-30D

Display Terminals (incl. consoles)
device CUA CUA CUA CUA CUA
3270 010-011 0C0-0C8 1C0-1C8 2C0-2C8 3C0-3C8

DASD Devices
device CUA CUA CUA
2314 130-13F 230-23F 330-33F
3330 150-15F 250-25F 350-35F
3350 140-14F 240-24F 340-34F
3340 160-16F 260-26F 360-36F
3375 170-17F 270-27F 370-37F
3380 180-18F 280-28F 380-38F
3390 190-19F 290-29F 390-39F

Tape Devices
device CUA
3420 480-487

Channel to Channel adapter
device CUA CUA CUA CUA
3088 500-507 510-517 600-607 610-617

The Stage 1 Assembly takes a while, don't get impatient. There should be no errors at all, with other word, we expect

Expected RC
0

Table of Contents

SG0170 - Get STAGE1 output

The stage 1 of the previous job step has placed a large JCL stream into file SYS1.STAGE1.OUTPUT. Now go to the Hercules console and enter

devinit 13 ../jcl/stage2.pch ascii
before you run the job sg0170. This will place the JCL stream into file stage2.pch in the JCL subdirectory. In order to make this file available for editing, enter
devinit 13 ../pch/pch00d.txt
after the job has completed

Expected RC
0

Shutdown MVS now, and also the Hercules engine. We need to run a few scripts now. The first is

Table of Contents

INS0070 - Build STAGE2 Jobstream

Some modifications need to be done before the stage2 jobs can run. The easiest way to do this is running the script ins0070 which does the changes for you. If you want to see which changes are being done, take a look at conf/stage1.sed

Table of Contents

INS0080 - Build additional DASD Volumes

We might want to have one DASD volume of every type we will generate into the system. Running script ins0080 will create such volumes, and will updated the mvs.conf file accordingly.

When the script is complete, you will find that the following volumes have been added

FilenameDevicetypeModelusage
sort01.1312314n/aSort volume
sort02.1322314n/aSort volume
sort03.1332314n/aSort volume
sort04.1342314n/aSort volume
sort05.1352314n/aSort volume
sort06.1362314n/aSort volume
hasp00.1523330n/aSpool Volume of target system
work00.1403350n/aScratch volume
pub000.2403350n/aTSO volume
work01.17033751Scratch volume
work02.18033801Scratch volume
pub002.28033802TSO volume
work03.19033901Scratch volume
pub003.29033901TSO volume
mvscat.19133901MVS Catalog volume

Table of Contents

INS0090 - Snapshot #3

When we will run the STAGE2 we will do many many changes to our system. Just in case - let's backup the whole thing by running ins0090 which will create another snapshot

Table of Contents

SG0180 - Stage 2

Finally, the real thing. THe SYSGEN Stage 2. This is a sequence of 6 jobs to build the various MVS target libraries.

Note: The Stage1 macros specify class C as the jobclass where the sysgen jobs are to run. The starter system has 3 started initiators, where only one has class C. This assures that the jobs run consecutively, not parallel

at the Hercules console enter the following command:

devinit 012 ../jcl/sg0180 trunc eof
(don't forget the trunc). Then take a break, because it will take some time to run the sysgen jobs.

Expected RC
Copy steps: 0
Link steps: 0 or 4
SYSGEN6.SETPZ1: 8

Table of Contents

SG0190 - Build JES2

Now everything is in place, nearly. We still have to build a JES system, but that is quite simple. Run the job sg0190, which Links JES2, sets up a JES2 procedure, and loads some simple JES2PARMS.

The job will also allocate a (rather small) spool dataset on MVSDLB. We will later expand the system by dedicating the better part of a full volume to the spool, but we will wait until we are certain that our generated system will start successfully.

Expected RC
0

Table of Contents

SG0200 - Update SYS1.PARMLIB

A few changes are needed to SYS1.PARMLIB members. These changes will add SYS1.CMDLIB to LNKLST00, select a different IEAPAK00, etc. Run job sg0200 to implement the changes. After this job has completed, shutdown MVS and the Hercules engine.

Expected RC
0

Table of Contents

STARTMVS or INS0100 - Start the new MVS

Edit the script startmvs or its twin ins0100 to start the 3270 client you want to use. You will at least need 3 sessions, 2 for console support, 1 for TSO. You will also need one telnet client. You should not IPL MVS until these clients have connected to Hercules

on the Hercules onsole, enter the command

ipl 148
to IPL MVS off the newly created MVSRES volume. This is the first time MVS 3.8 is IPLed, therefore an MVS CLPA is required, and later a spool formatting JES2 start.

During IPL with CLPA you will see the following messages:

  IEA101A SPECIFY SYSTEM PARAMETERS FOR RELEASE 03.8 .VS2
to which you reply
r 00,clpa
You may or may not see messages like this:

| IEA357I ERRORS IN IEAPAK00 LIST
| IEA357I IGC0J05B INVALID - MODULE IGNORED
| IEA357I IGG08101 INVALID - MODULE IGNORED
| IEA357I IGG08102 INVALID - MODULE IGNORED
| IEA357I IGG08103 INVALID - MODULE IGNORED
| IEA357I IGG08104 INVALID - MODULE IGNORED
| IEA357I IGC11110 INVALID - MODULE IGNORED
| IEA357I IGC12110 INVALID - MODULE IGNORED

These are no errors, just information, and you can safely ignore them.

After a short while the screen will clear, and you will see some more messages:


 IEF165I // START JES2
 IEE360I SMF NOW RECORDING ON SYS1.MANX ON MVSRES TIME=16.43.52
 IGF992I  MIH INIT COMPLETE, PRI=000300, SEC=000015
 IEF677I WARNING MESSAGE(S) FOR JOB JES2     ISSUED
*00 $HASP426 SPECIFY OPTIONS - HASP-II, VERSION JES2 4.1

This is the first time that JES2 is started in the system, we therefore enter

r 00,format,noreq

The system will come up with another message

 *01 $HASP479 UNABLE TO OBTAIN CKPT DATA SET LOCK - IO ERROR           -
 * REPLY Y OR N TO CONTINUE

to which you reply

r 01,y

JES2 still is not happy. It issues message

  *02 $HASP436 REPLY Y OR N TO CONFIRM CHECKPOINT RECORD CHANGE

and again you reply with

r 02,y

The screen now fills to the bottom and shows

   - $HASP493 JES2 COLD-START IS IN PROGRESS
   - $HASP423 MVSDLB IS BEING FORMATTED
   - $HASP412 MAXIMUM OF 1   READER(S)  EXCEEDED
   - $HASP412 MAXIMUM OF 1   PUNCH(ES)  EXCEEDED
   - $HASP412 MAXIMUM OF 2   PRINTER(S) EXCEEDED
     IEE041I THE SYSTEM LOG IS NOW ACTIVE
     $HASP160 PRINTER1 INACTIVE - CLASS=AJ
     $HASP160 PRINTER2 INACTIVE - CLASS=AJ
     $HASP160 PUNCH1   INACTIVE - CLASS=BK

 IEE152I     ENTER     CANCEL     D C,K


                                                        IEE159E MESSAGE WAITING

This means the there are more messages waiting, but there is no room on the screen. To set the console into automatic Roll-Delete mode, enter the following command

 K N,PFK=(11,CMD='K S,DEL=RD,SEG=15,CON=N,RNUM=19,RTME=001;K A,NONE')

This would reprogram function key PFK11 in such a way that pressing it sets the console into Roll-Delete mode. Repeat this for the next console. The settings will be remembered until either changed or until a new sysgen

After you entered the above command, press PFK 11 (or any other function key that you specified in the above command. The highlighted IEE159E message should now disappear, and the botton of the screen should now look similar to



 IEE152I     ENTER     CANCEL     D C,K


 IEE163I MODE= RD

After MVS is started there are three printers in the the system, at addresses 00E, 00F, and 30E. 30E is generated as a hardcopy device while 00E and 00F are standard printers.

Issue the JES2 command

$T prt2,Q=Z
to make the second printer serve the output queue Z. This might be handy sometimes later.

At some time during startup you will see a message similar to

*$HASP190 DUMMY    SETUP -- PRINTER1 -- F = STD. -- C = 6    -- T = 0
When this setup message appears, you must start the corresponding printer, in this case by entering
$S PRINTER1

Having fun with your MVS? Well, we have some more work to do!

For a first test of the system, enter the following command

d u,dasd,online

to which the system responds with

 00- d u,dasd,online
     IEE450I 17.27.10 UNIT STATUS 108                             C
     UNIT TYPE STATUS  VOLSER VOLSTATE   UNIT TYPE STATUS  VOLSER VOLSTATE
     131  2314 O       SORT01     /REMOV 132  2314 O       SORT02     /REMOV
     133  2314 O       SORT03     /REMOV 134  2314 O       SORT04     /REMOV
     135  2314 O       SORT05     /REMOV 136  2314 O       SORT06     /REMOV
     140  3350 O       WORK00  PUB/RSDNT 148  3350 S       MVSRES  PUB/RSDNT
     149  3350 O       SMP001  PUB/RSDNT 14A  3350 O       SMP002  PUB/RSDNT
     14B  3350 O       SMP003  PUB/RSDNT 14C  3350 O       SMP004  PUB/RSDNT
     150  3330 O       START1     /REMOV 151  3330 O       SPOOL0     /REMOV
     152  3330 O       HASP00     /REMOV 160  3340 A       PAGE00  PUB/RSDNT
     161  3340 A       PAGE01  PUB/RSDNT 170  3375 O       WORK01     /REMOV
     180  3380 O       WORK02     /REMOV 190  3390 O       WORK03     /REMOV
     191  3390 O       MVSCAT     /REMOV 240  3350 O       PUB000  PUB/RSDNT
     248  3350 A       MVSDLB  PUB/RSDNT 280  3380 O       PUB002     /REMOV

Note that the script ins0100 does not move itself to the done subdirectory, as it will be needed more than once

Using additional Volumes

We already built the DASD image files for our MVS system. We have included a mix of 2314, 3340, 3350, 3380 and 3390 devices. We will now incorporate those disks into our system, but creating new spool space, telling MVS which disks to use for work space, sort work, whatever:

Table of Contents

SG0210 - Add VATLST00 to SYS1.PARMLIB

VAT stands for Volume Attribute List and allows automatic mounting of new disk volumes. This control file specifies the automatic mount attributes for our DASD volumes. Just run job SG0210 to place a new VATLST00 into your SYS1.PARMLIB library.

You should read the comments in the JCL of job SG0210 to see what it is supposed to be doing. BTW, a description of the SYS1.PARMLIB members can be found at Tom Sprinkle's site

Expected RC
0

The next thing to do now is to increase the available spool space.

Table of Contents

SG0220 - Build a Spool Volume

The spool space on MVSDLB is very small, and we would run into problems if we wanted to use it in "real" work. This is where SG0220 will help you - When this job is run, it will

Expected RC
0

When the job has completed, you need to stop JES2, and then restart it with the FORMAT option. With other words, you need to enter
$P
$P JES2
and, when JES2 has terminated, you enter
S JES2,,,PARM='FORMAT,NOREQ'
You will see the following messages:
    -           $HASP493 JES2 COLD-START IS IN PROGRESS
    -           $HASP423 HASP00 IS BEING FORMATTED
Don't worry, there is nothing wrong with your system. There are commands to start other componets, like VTAM and TSO, but we haven't actually setup those two components yet (but will do so shortly)

Which changes were implemented to JES2PARMS? You might want to look at the member in SYS1.PARMLIB. The main changes are:

Table of Contents
Output Queues
Class Description
A Print output on Printer1 - standard print class for batch
B Punch output on Punch1 - standard punch output
L SYSLOG output class
Z Print output on Printer2 - standard print class for STC and TSU
0,8 Dummy output class
all others Held class
Table of Contents
Input Queues
Class Description TIME REGION Required JOB parms BLP OS cmds in JCL
A Low priority Batch 10 768K none no no
B Standard Batch 10 999K none no no
H Hot Batch 2 999K Account
Programmer name
no no
S Sysprog 10 999K Account
Programmer name
yes yes
Table of Contents

SG0230 - Remove spool from MVSDLB

The new spool is working, we now can remove the spool space from MSDLB. This is done by running job SG0230.

Expected RC
0

Shutdown and Restart MVS. After MVS has completely initialized, and JES2 was started, enter the MVS command

D U,DASD,ONLINE
on the MVS master console. You should get a result similar to this:
00-           d u,dasd,online
              IEE450I 22.50.17 UNIT STATUS 174                   C
    UNIT TYPE STATUS  VOLSER VOLSTATE   UNIT TYPE STATUS  VOLSER VOLSTATE
    131  2314 O       SORT01  PUB/RSDNT 132  2314 O       SORT02  PUB/RSDNT
    133  2314 O       SORT03  PUB/RSDNT 134  2314 O       SORT04  PUB/RSDNT
    135  2314 O       SORT05  PUB/RSDNT 136  2314 O       SORT06  PUB/RSDNT
    140  3350 O       WORK00  PUB/RSDNT 148  3350 S       MVSRES PRIV/RSDNT
    149  3350 O       SMP001  PUB/RSDNT 14A  3350 O       SMP002  PUB/RSDNT
    14B  3350 O       SMP003  PUB/RSDNT 14C  3350 O       SMP004  PUB/RSDNT
    150  3330 O       START1 PRIV/RSERV 151  3330 O       SPOOL0  PUB/RSERV
    152  3330 A       HASP00  PUB/RSERV 160  3340 A       PAGE00 PRIV/RSDNT
    161  3340 A       PAGE01 PRIV/RSDNT 170  3375 O       WORK01  PUB/RSERV
    180  3380 O       WORK02  PUB/RSERV 190  3390 O       WORK03  PUB/RSERV
    191  3390 O       MVSCAT STRG/RSERV 240  3350 O       PUB000 STRG/RSDNT
    248  3350 A       MVSDLB PRIV/RSDNT 280  3380 O       PUB002 STRG/RSERV

IEE152I     ENTER     CANCEL     D C,K


IEE163I MODE= RD
which shows you the accessible volumes and their mount attributes.

We are now ready to build VTAM and TSO:

VTAM and TSO

Table of Contents

SG0240 - Allocate VTAM and TSO files

Just run this job. When it is completed, some new files have been created, and some members in SYS1.PARMLIB have been updated. The following files were created:

SYS2.LINKLIBSecondary linklist library, batch
SYS2.CMDLIBSecondary linklist library, TSO
SYS2.HELPSecondary help library, TSO
SYS1.CMDPRCSystem library for CLISTs
SYS2.PROCLIBSecondary procedure library

The JES2 proc has been amended to reflect the new proclib, and the LNKLST00 has been updated to contain CMDLIBs and SYS2.LINKLIB.

Following procedures have been added to SYS2.PROCLIB:

COMPRESSCompress a PDS
CLEARERPClear SYS1.LOGREC
CLEARDMPPClear SYS1.DUMPxx
CLEARSMFClear SYS1.MANx
DUMPSMFDump SYS1.MANx

You need now to re-Ipl MVS. The CLPA option is not required.

Expected RC
0

Table of Contents

SG0250 - Build VTAM and TSO Libraries and Procs

A straight forward affair. Just run this job, and it will create Libraries and LOGON procedures for you:

Libraries
SYS1.VTAMSRCASM source for VTAM tables
SYS1.VTAMLSTVTAM Resource Definition
SYS1.VTAMOBJCompiled VTAMLST members

Logon Procedures
TSOLOGONStandard LOGON procedure
IKJACCNTEmergency LOGON procedure for IBMUSER

The LOGON Interpret table BSPLIN01 contains references to the users IBMUSER, HERC01, HERC02, HERC03 and HERC04. You will just have to enter these names to LOGON to TSO. Other TSO users will have to use the LOGON command, i.e. they will have to enter

logon someone
to logon to TSO using the userid "someone"

Expected RC
0

Table of Contents

SG0260 - Assemble VTAM Tables

which will assemble a Logon Interpret Table and a Logmode Table.

Expected RC
0

Table of Contents
After this is done, you will want to

Start VTAM

Go to the MVS console, and enter

s net

IF TCAM was not included in the Stage1, you should see the messages

    - STC   19  $HASP373 NET      STARTED
    - STC   19  IEF403I NET - STARTED - TIME=17.44.23
      STC   19  IST025I  BLDL FAILED FOR ISTYTCM1 IN VTAMLIB
      STC   19  IST126I  ISTYTCM1 MODE NOT SUPPORTED DUE TO LOADING FAILURE
      STC   19  IST025I  BLDL FAILED FOR ISTYTCM2 IN VTAMLIB
      STC   19  IST126I  ISTYTCM2 MODE NOT SUPPORTED DUE TO LOADING FAILURE
      STC   19  IST025I  BLDL FAILED FOR ISTYTCM3 IN VTAMLIB
      STC   19  IST126I  ISTYTCM3 MODE NOT SUPPORTED DUE TO LOADING FAILURE
      STC   19  IST110I  NETWORK SOLICITOR STARTED
      STC   19  IST093I  APPLTSO  ACTIVE
      STC   19  IST093I  APPLCICS ACTIVE
  00  STC   19  IST093I  LCLMAJ00 ACTIVE
      STC   19  IST020I  VTAM INITIALIZATION COMPLETE

IF TCAM has been included, you will see:

    - STC   19  $HASP373 NET      STARTED
    - STC   19  IEF403I NET - STARTED - TIME=17.44.23
      STC   19  IST025I  BLDL FAILED FOR IEDIAE   IN VTAMLIB
      STC   19  IST025I  BLDL FAILED FOR IEDIAE   IN VTAMLIB
      STC   19  IST025I  BLDL FAILED FOR IEDIAE   IN VTAMLIB
      STC   19  IST025I  BLDL FAILED FOR IEDIAE   IN VTAMLIB
      STC   19  IST025I  BLDL FAILED FOR IEDIAK   IN VTAMLIB
      STC   19  IST025I  BLDL FAILED FOR IEDIAK   IN VTAMLIB
      STC   19  IST110I  NETWORK SOLICITOR STARTED
      STC   19  IST093I  APPLTSO  ACTIVE
  00  STC   19  IST093I  LCLMAJ00 ACTIVE
      STC   19  IST020I  VTAM INITIALIZATION COMPLETE
These messages (IST025I) relate to TCAM, which wasn't installed or generated (yet), and can be ignored

You might also see messages like

      STC   19  IEA000I 0C1,IOE,05,0E00,400000000001,,,,23.51.51
      STC   19  IEA000I 0C2,IOE,05,0E00,400000000001,,,,23.51.51
for the terminals that are defined, but not connected to Hercules right now

Table of Contents

When VTAM is initialized, enter

s tso
to which the system should reply
    -           s tso
      STC   20  $HASP100 TSO      ON STCINRDR
    - STC   20  $HASP373 TSO      STARTED
    - STC   20  IEF403I TSO - STARTED - TIME=17.46.08
  00- STC   20  IKT007I TCAS ACCEPTING LOGONS
    - STC   20  IKT005I TCAS IS INITIALIZED
After the message TCAS IS ACCEPTING LOGONS appears, you can now logon using the IBM supplied userid IBMUSER. How? Go to a 3270 session that displays


THIS TERMINAL IS LOGGED ON TO THE NETWORK SOLICITOR

and in the top row enter
ibmuser size(4096)

THIS TERMINAL IS LOGGED ON TO THE NETWORK SOLICITOR

Note: The default size for IBMUSER is 44K, which is enough for running ACCOUNT, but not for running anything else. If LOGOFF worked, just enter LOGOFF again. We are going to create new TSO users in a minute

Note: When you are not sure about the Syntax of VTAM commands, take a look at the the VTAM 2 Commands Cheat Sheet

Table of Contents

SG0270 - Build Usercat for TSO Users

We do not want all the files for specific TSO users to be cataloged in the MVS master catalog. Therefore we build a user catalog on volume PUB000 for all the TSO related files. Run job SG0270

Expected RC
0

Table of Contents

SG0280 - Build Control Datasets etc

We need a file containing skeleton for commands to make certain tasks (like creating users) easier. Job SG0280 builds two files for use in a TSO environment:

SYS2.HELPSecondary Help Files
SYS2.SYSINLIBControl Cards
ADDUSERAdd standard TSO user
ADDSYSPAdd sysprog type TSO user
SYS1.CMDPROCCLISTs
STDLOGONStandard LOGON CLIST unless overridden by private CLIST
USRLOGONInvoked by TSOLOGON procedure
Invokes private &SYSUID..CMDPROC(STDLOGON) if it exists
Invokes public STDLOGON (see above) if no private CLIST exists

Expected RC
0

Table of Contents

SG0290 - Add TSO Users

You might want to modify SG0290 before running it to suit your needs. As written it will add four users to the system

Your userids are now defined, and ready to use.

Expected RC
0

Table of Contents

SG0300 - Install Rob's Programming Facility (RPF)

One thing is dearly missing in our MVS system: SPF. Unfortunately, SPF is a licenced IBM software product, and there is little chance of legally getting a copy of it to run on MVS 3.8 and Hercules.

But there is a silver lining on the horizon: Rob Prins has written a full screen editor that is somewhat SPF alike.

There is a RPF User's Guide available, also, you can use PF1 to access the Help facility.

RPF is rather easy to implement: just run jobSG0300 This job will build some files (including the RPF source) on the PUB000 volume. Read the JCL and the comments and make all the changes needed for your system, then run the job. It will need the RPF product tape, which should be on the CD-Rom in tapes subdirectory with the name rpf142.het

Expected RC
0

Table of Contents

SG0310 - Install TSO Utilities

We want to install a few TSO utilities before going online. Run job SG0310 which will load the following utilites and their corresponding help files. It will need a tape, which is again on the CDROM under the name tsoutils.het. The following utilities will be loaded:
Utility Description
PDSAA PDS Version 8.5
ASM An Assembler Prompter
AUPGM Run Authorized Programs
CDSCB Change DSCB of a DASD file
COMPAREFile Compare Utilities
CONCAT and DECONCAT Dynamic concatenation/Deconcatination
DENQ Displays ENQ conflicts
DS, DISPAY Displays MVS status info
DSAT Displays data set attributes
DSPACE Displays free space on volumes
DSN Alias of DENQ
DSPACE Displays space on DASD volumes
DSVC Displays SVC table
DVOL Displays mounted volumes
FREEALL Frees all dynamically allcated files
HEL Full Screen HELP command
IM IMON/370 - System monitor by Grep Price
LISTCDS Show info from SMPCDS
LISTLPA Show info from LPA
LISTSPC Show space info
LISTVTOC Display a VTOC
MURPHY A byte from the cookie jar
PDS The famous PDS utility
PRINTO The PRINTOFF utility
REVIEW Full Screen BROWSE program
RLSE Release empty space from data set
SHOWSS Show System Statust
UNITS Show unitnames in system
VTOC VTOC display utility
ZAP Fullscreen zap utility

Help for all of these utilities is available through the online help facility. Just enter


help utils

to get a list of available utilities, and use

help utilname

to get info about program utilname

Expected RC
0

Some of the utilities need to run authorized. In order to achieve authorization, they take the easy way: They issue an authorization SVC (244). This SVC is also assembled and linked in the above job, and placed into SYS1.LPALIB. The next IPL will need the CLPA option in order to pick up this new SVC.
Table of Contents

Shutting down for Snapshot # 4

It is time for another snapshot. We need to shutdown MVS again, but this time we first have to stop tso and net.

At the MVS console enter the command

p tso
if there are still users active, you will see a message like
  00-           p tso
     *STC   22 *03 IKT010D 00001 USERS ACTIVE, REPLY 'SIC' OR 'FSTOP'
to which you reply
r xx,SIC
if there are no (more) active users, you will see the message
    *STC   22 *04 IKT012D TCAS TERMINATION IN PROGRESS - SPECIFY 'U' OR 'DUMP'
to which you need to reply
r xx,u
TSO will now terminate. You can now terminate VTAM with one out the the following three commands
z net
z net,quick
z net,cancel
Eventually, you will see the message
      STC   21  IST102I  VTAM IS NOW INACTIVE
    - STC   21  IEC223I IFG0200V,NET,NET,UNKNOWN
  00- STC   21  $HASP395 NET      ENDED
and now you can terminate JES in the usual way
$P
$PJES2
Z EOD
QUIESCE
Table of Contents

INS0110 - Take Snapshot # 4

We are going to modify our running system somewhat. Therefore we want to make another backup first. Run script ins0110 to create the next snapshot archive

When the snapshot is completed, restart the Hercules engine, and do an IPL of MVS with the CLPA option. The CLPA option is required because the previous job added SVC 244, an authorization SVC, to SYS1.LPALIB. When MVS is started, the network (VTAM) will be automatically started. For the moment TSO will not be automatically started. We will arrange for this later. For now, if you want to use TSO, you need to start TSO manually as soon as VTAM is up and running, as shown above

Table of Contents

Complete the SMP4 Environment

SG0320 - Build SMP Procedures

This jobs builds a few procedures in SYS1.PROCLIB for SMP4 processing:

ProcnameDescription
SMPRECUsed for RECEIVE and REJECT
SMPAPPUsed for APPLY
SMPACCUsed for ACCEPT and RESTORE
SMPASMUsed to assemble a usermod
SMPASMLUsed to assemble and link a usermod

Just run this job, no modifications are necessary, and no problems are expected.

Expected RC
0

Table of Contents

SG0330 - Build SMP Target Libraries

In order to use SMP4 on the target system we need the SMP4 target libraries. The job SG0330 will allocate the files, and copy the contents of the DLIB SMP libraries into the newly created files.

Note: This job takes a long time, and uses quite a bit of CPU cycles. In order to avoid S322 abends on somewhat slower machines, I have added a TIME=1440 parameter to JOB and EXEC JCL statements

Expected RC
0

Table of Contents

SG0340 - JCLIN: Update SMP4 Target System Datasets

The stage2 job contains the building instructions for making our MVS system. Performing a JCLIN process as in SG0340 will feed these instructions into SMP4. SMP will then be able to rebuild elements of the MVS system

Expected RC
0

Table of Contents

SG0350 - Install A Usermod

To test the SMP4 environment we will install a simple usermod which will authorize some external commands to TSO. We will install these commands later, for now we will be happy when the usermod gets correctly installed. Just run the job SG0350 and check that the module IKJEFTE2 gets linked correctly.

Expected RC
First time: 12
If repeated: 4

Why don't we get RC=0? Very simple, in order to make it possible to rerun this job, I put in a command to REJECT the usermod first. Obviously, there is nothing to reject, that gives the RC = 12. If the job is later rerun, then the REJECT will work, but gives a warning (RC=4) because the usermod being rejected has not been ACCEPTed.

Note: Don't ACCEPT this Usermod!!

Table of Contents

SG0360 - Exclude broken PTFs

We have installed all the functions of MVS that we have. Unfortunately, our install work isn't finished yet. Many, many bugs have been found in MVS over the years, and were fixed (more or less) by IBM. We have an accumulated tape of PTFs, that we already RECEIVED. We can now ACCEPT those PTFS to avoid known problems to happen later (preventive service). Another approach would be not to RECEIVE all PTFs, but only install those that fix a certain error situation we know does exist in our system (corrective service). Both approaches have their merits. I decided to use the first approach, and to install all PTFs that are currently available.

Actually, not really all PTFs. The PTF UY49086, for example, (at least on my system) breaks SVC94 (which is used for TPUT, TGET, GTSIZE et al) and makes part of TSO (like TEST) unuseable. It also breaks a SYSGEN macro. Fixes for this are only available in an additional product which we do not have available. Therefore we need to exclude UY49086 from our APPLY. Now, there are some PTFs that name UY49086 as a PRErequisite, and those need to be excluded those as well

The job SG0360 will remove those PTFs from the SYS1.SMPPTS. That we we are absolutely sure that they cannot be installed even accidentially. But - we don't want to loose those PTFs, either. Therefore we save them in a special dataset: SYS1.BADPTFS

Expected RC
0

Table of Contents

SG0370 - Fix PTFs

Some PTF have incorrect element relationship entries (PRE, REQ, etc), others cannot be APPLYed because of out 3375/3380/3390 USERMODs. Why not? The USERMODs modify elements, which later would be modified again by the incoming PTFs. Of course those PTFs don't know anything about the USERMODs, and therefore don't name them in the PRErequisite chain. Thus - ID check processing SYSMOD ...... Does not PRE or SUP .......

We solve the problem by explicitly adding the correct PRE/SUP statements to the affected PTFS. We also supply new USERMODs that retrofit the 3375/80/90 modification to the new SYSMODS. All of this is done by running SG0370. The PTFs get saved first into SYS1.BADPTFS before being modified.

Expected RC
0
except for
step UY41573: RC=8
step RECEIVE: RC=8

Table of Contents

INS0120 - Shutdown and create snapshot # 5

Before we are going to run a monster mass-apply job we make a backup again. Shutdown VTAM, JES2, MVS and Hercules, then run script ins0120 which will create snapshot # 5

Table of Contents

SG0380 - Mass Mode APPLY of all SYSMODs

Okay, it is time for the big showdown. We have nearly 1500 PTFs in our SMPPTS, and want to install them into the running system. This probably is going to take a while..... Start up Hercules, then MVS. Submit job SG0380. Sit back and relax

and watch the blinkenlights

On my P IV with 1.7 GHz and high-speed SCSI disks this job took about 45 minutes

Expected RC
4

Table of Contents

SG0390 - Mass Mode ACCEPT of all PTFs

Okay, it is time for another big showdown. We have nearly 1500 PTFs in our SMPPTS, and want to install them into our distribution libraries. This probably is going to take a while..... Submit job SG0390. And wait

Expected RC
4

Table of Contents

SG0400 - Reject/Purge of accepted Sysmods

This job is optional, If run, it will

In a space constrained environment one would run this job. Not running the job keeps a lot of dasd space used, but, on the other hand, you have the cover letter text for all PTFs easily available by just browsing the SYS1.SMPPTS. With other words, it is a matter of taste, and de gustibus non est disputandem

Expected RC
4

Table of Contents

INS0130 - Shutdown and create snapshot # 6

Before we proceed we make another snapshot by running script ins0130

After that, we take a deep breath

MVS System Generation Is Complete

But ....
..... we still have some customization to do. This is described in the document MVS Customization.

and watch the blinkenlights