Installing MVS 3.8

Performing a System Generation

 

First, you need to re-IPL the starter system, but this time you will be using a slightly different configuration.  The hardware environment defined in the Hercules' configuration file - sysgen.cnf - is:

 

This hardware configuration utilizes two additional 3350 DASD volumes - MVSRES and PAGE00 - which you have already built and initialized.  These two volumes, along with SPOOL1, will be the volumes on which the MVS 3.8 target system will be built.  Why have I omitted the SPOOL1 volume from the configuration?  During the IPL process, when JES2 is started, it allocates all online DASD volumes in which the volume serial begins with the characters SPOOL for its active spool files.  SPOOL1 is to become the spool volume for the target system and you don't want the starter system appropriating it for its own second spool volume.  So, later in the upcoming process, you will dynamically attach the volume to the starter system just before the volume is needed to allocate the JES2 datasets on it.

Open a console window (Linux) or an MS-DOS Command Prompt window (Windows) and start hercules from the /mvs directory:

In another window, start a telnet client and connect to localhost at port 3270.  This session will be used by the stand-alone disk initialization program as the console at device address 01f.  Remember: You must use a telnet client, not an x3270 client, to connect to the console port for the MVS starter system.

IPL from device 150 (the 3330 DASD containing the MVS starter system - dasd/start1.150).  In the Hercules command window, type the command:

ipl 0150

and press ENTER.  In the telnet window, you should see:

Again, it is not necessary to rebuild the Link Pack Area, so you should just press ENTER (in the telnet client window).  You should then see:

This message is from JES2 (Job Entry System 2).  The asterisk (*) preceding the message indicates that the system requires a reply and the 00 following the asterisk is the number that needs to be entered to allow the system to associate your reply with the outstanding message.  [The reply number that is displayed is incremented by the system each time a response is required, so the number displayed on your console may not always match the number I show in these instructions!]  You should type:

r 0,noreq

and press ENTER.  Note that there is a space between the r and the numeral zero in this response.  This reply tells JES2 to start operation without waiting for startup commands.  You should then see a number of messages, concluding with:

at which point the system is ready to process jobs and respond to operator commands.  Just as you reserved the SMP001 volume during the previous IPLs for private use, you need to reserve the MVSRES and PAGE00 volumes for private use.  On the telnet client window, type these two commands:

m 14a,vol=(sl,mvsres),use=private
m 14b,vol=(sl,page00),use=private 

and press ENTER after each.  Note that there is a space between the m and the numeral one in these commands.  After you enter each command, there will be some informational messages displayed as the MOUNT task is started, but none of the messages will require a response.  If you wish to verify that the mount completed successfully, open the file to which Hercules' is writing the output from MVS/JES2 PRINTER1 (the 1403 printer attached to address 00e in the Hercules' configuration file) with a text editor or text viewing program.  If you are following my directory structure, the file will be found in the /mvs directory and will be named prt00e.txt.  Be careful that you do not alter the contents of the file if you open it with an editor.  The completion code from each mount task should be 0000 and will appear in the prt00e.txt file as lines identical to:

IEF142I MOUNT 14A - STEP WAS EXECUTED - COND CODE 0000
IEF142I MOUNT 14B - STEP WAS EXECUTED - COND CODE 0000

or, if you use condcode.pl (search for Job Name mount):

Searching prt00e.txt for MVS Job Name mount

Step Name     Proc Step Name  Completion Code
---------     --------------  ---------------
14A                           0000
14B                           0000

It is not necessary to issue a mount command for the SMP001 volume.  The system will, by default, place the SMP001 volume in the public class, so it is certain to have some temporary datasets allocated on it during the following jobs.  That is acceptable, as you have already created the SMP datasets on the volume and the temporary datasets will not interfere in any way with the primary use of the volume.

 

If You Should Need to Restart the System Generation Process

This is a restart job.  Do not submit this job unless you have gotten further along in the System Generation process and, because of some problem you want to start over from this point.  If you are following along in the instructions for the first time, you should simply proceed to the next step - "Writing IPL Records onto MVSRES".

As you proceed with the following instructions to build the target MVS 3.8, if you find that you need to restart, you will first need to restore the DASD volumes MVSRES and PAGE00 to the state they are initially in - empty.  

First, if you elected to install the 3380 (or 3390) modifications, you must remove those by submitting the jobstream provided for that purpose - r3380.jcl (or r3390.jcl) - which is contained in the mod3380.tgz (or mod3380.tgz) archive.  This jobstream relies upon the presence of the user catalog on MVSRES that will be removed by the restart jobstream.

There is a jobstream in the installmvs archive - sgnreset.jcl - that will first delete all the VSAM objects that have been created on PAGE00 and MVSRES, then delete the user catalog SYS1.AMASTCAT that was created on MVSRES, and will then scratch all non-VSAM datasets that have been created on MVSRES.  If you are certain that you need to restart from this point, and have removed the 3380 (or 3390) modifications (if you applied them), on the Hercules' console, type the command:

devinit 012 jcl/sgnreset.jcl eof

and press ENTER to submit the job.  The job will only take a few minutes to run.  The three steps of this job should complete with condition codes of 0000, 0012, and 0000, respectively.  The lines in the output which indicate this are:

IEF142I SGNRESET IDCAMS1 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SGNRESET IDCAMS2 - STEP WAS EXECUTED - COND CODE 0012
IEF142I SGNRESET IEHPROGM - STEP WAS EXECUTED - COND CODE 0000

or, if you use condcode.pl:

Searching prt00e.txt for MVS Job Name sgnreset

Step Name     Proc Step Name  Completion Code
---------     --------------  ---------------
IDCAMS1                       0000
IDCAMS2                       0012 <--
IEHPROGM                      0000

The printed output from an execution of this jobstream may be viewed at SGNRESET SYSOUT.  Once this job has completed, you may restart the System Generation process beginning with the step below.

 

Writing IPL Records onto MVSRES

Although the MVSRES volume has been initialized, in order to IPL an operating system from it, an IPL loader program must be written onto the first track of the volume.  The IPL loader program is provided in one of the distribution libraries - SYS1.ASAMPLIB - and the Device Support Facility utility - ICKDSF - that you built at the conclusion of the SMP process is the program that you will use to copy the IPL program onto the MVSRES volume.

On the Hercules' console, type the command:

devinit 012 jcl/writeipl.jcl eof

and press ENTER.  This job should take less than a minute to run.  The completion code from the single step should be 0000.  The line in the output which indicates this is:

IEF142I WRITEIPL WRITEIPL - STEP WAS EXECUTED - COND CODE 0000

or, if you use condcode.pl:

Searching prt00e.txt for MVS Job Name writeipl

Step Name     Proc Step Name  Completion Code
---------     --------------  ---------------
WRITEIPL                      0000

 

Catalog and Dataset Preparation

Prior to beginning the system generation, you must create a catalog on MVSRES and prepare some work datasets that must be pre-allocated in order to receive object modules during the system generation process.

A user catalog - SYS1.AMASTCAT - will be created on MVSRES and cataloged in the master catalog on the starter system.  This user catalog will be used to catalog and locate datasets during the system generation process.  It will then become the master catalog for the target MVS 3.8 system.

During the system generation process, object modules will be created from several jobs and then later will be linked together to build components of the target MVS 3.8 system.  The first step of the next job makes sure that there are no existing copies of these work datasets from a prior run, then creates and catalogs empty versions of the datasets ready to receive object modules.  

Also, a couple of datasets are prepared with dummy versions of LPA and SVC modules that will be used as input during the system generation.

The last function of this job is to catalog all of the SMP datasets that were created on SMP001 during the SMP process in the new user catalog.

On the Hercules' console, type the command:

devinit 012 jcl/sysgen00.jcl eof

and press ENTER.  This job should take about three minutes to run.  The completion codes from all six steps should be 0000.  The lines in the output which indicate this are:

IEF142I SYSGEN00 DELETE - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN00 DEFCAT - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN00 ALLOC - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN00 LINK1 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN00 LINK2 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN00 RECATLG - STEP WAS EXECUTED - COND CODE 0000

or, if you use condcode.pl:

Searching prt00e.txt for MVS Job Name sysgen00

Step Name     Proc Step Name  Completion Code
---------     --------------  ---------------
DELETE                        0000
DEFCAT                        0000
ALLOC                         0000
LINK1                         0000
LINK2                         0000
RECATLG                       0000

 

Adding 3380 and 3390 DASD Support

The original MVS 3.8j does not have support for 3380 DASD, but Jim Morrison has prepared and made available modifications that may be applied to the distribution libraries to provide this support.  If you think you would like to add 3380 devices to your MVS 3.8 system, you can find more information, including instructions and the modifications themselves here:  Adding 3380 and 3390 DASD Support.  Jim subsequently expanded his modifications to add 3390 support.  Those modifications are described, and available, at the same link.

If you apply the 3380 modifications - m3380.jcl - the job should run for less than two minutes and these are the completion codes that you should expect:

IEF142I M3380 IEBCOPY1 - STEP WAS EXECUTED - COND CODE 0000
IEF142I M3380 ASMBLR1 - STEP WAS EXECUTED - COND CODE 0000
IEF142I M3380 LKED1 - STEP WAS EXECUTED - COND CODE 0004
IEF142I M3380 DUMPT - STEP WAS EXECUTED - COND CODE 0000
IEF142I M3380 IEBCOPY2 - STEP WAS EXECUTED - COND CODE 0000
IEF142I M3380 UPDTE1 - STEP WAS EXECUTED - COND CODE 0000
IEF142I M3380 ASMBLR2 - STEP WAS EXECUTED - COND CODE 0000
IEF142I M3380 LKED2 - STEP WAS EXECUTED - COND CODE 0000
IEF142I M3380 LKED3 - STEP WAS EXECUTED - COND CODE 0000
IEF142I M3380 ZAP - STEP WAS EXECUTED - COND CODE 0000
IEF142I M3380 IEBCOPY3 - STEP WAS EXECUTED - COND CODE 0000
IEF142I M3380 IEBCOPY4 - STEP WAS EXECUTED - COND CODE 0000
IEF142I M3380 UPDTE2 - STEP WAS EXECUTED - COND CODE 0000
IEF142I M3380 UPDTE3 - STEP WAS EXECUTED - COND CODE 0000

or, if you use condcode.pl:

Searching prt00e.txt for MVS Job Name m3380

Step Name     Proc Step Name  Completion Code
---------     --------------  ---------------
IEBCOPY1                      0000
ASMBLR1                       0000
LKED1                         0004 <--
DUMPT                         0000
IEBCOPY2                      0000
UPDTE1                        0000
ASMBLR2                       0000
LKED2                         0000
LKED3                         0000
ZAP                           0000
IEBCOPY3                      0000
IEBCOPY4                      0000
UPDTE2                        0000
UPDTE3                        0000

If you apply the 3390 modifications - m3390.jcl - the job should run for less than two minutes and these are the completion codes that you should expect:

IEF142I M3390 IEBCOPY1 - STEP WAS EXECUTED - COND CODE 0000
IEF142I M3390 IEBCOPY2 - STEP WAS EXECUTED - COND CODE 0000
IEF142I M3390 ASMBLR1 - STEP WAS EXECUTED - COND CODE 0000
IEF142I M3390 LKED1 - STEP WAS EXECUTED - COND CODE 0004
IEF142I M3390 UPDTE1 - STEP WAS EXECUTED - COND CODE 0000
IEF142I M3390 ASMBLR2 - STEP WAS EXECUTED - COND CODE 0000
IEF142I M3390 ASMBLR3 - STEP WAS EXECUTED - COND CODE 0000
IEF142I M3390 LKED2 - STEP WAS EXECUTED - COND CODE 0000
IEF142I M3390 LKED3 - STEP WAS EXECUTED - COND CODE 0000
IEF142I M3390 ZAP - STEP WAS EXECUTED - COND CODE 0000
IEF142I M3390 IEBCOPY3 - STEP WAS EXECUTED - COND CODE 0000
IEF142I M3390 IEBCOPY4 - STEP WAS EXECUTED - COND CODE 0000
IEF142I M3390 UPDTE2 - STEP WAS EXECUTED - COND CODE 0000
IEF142I M3390 UPDTE3 - STEP WAS EXECUTED - COND CODE 0000

or, if you use condcode.pl:

Searching prt00e.txt for MVS Job Name m3390

Step Name     Proc Step Name  Completion Code
---------     --------------  ---------------
IEBCOPY1                      0000
IEBCOPY2                      0000
ASMBLR1                       0000
LKED1                         0004 <--
UPDTE1                        0000
ASMBLR2                       0000
ASMBLR3                       0000
LKED2                         0000
LKED3                         0000
ZAP                           0000
IEBCOPY3                      0000
IEBCOPY4                      0000
UPDTE2                        0000
UPDTE3                        0000

A word about 3390 support - The only version of 3390 DASD that is supported in MVS 3.8j is 3390-1.  This will not be an easy limitation to overcome, as the limitation relates to maximum data value that may be stored in a halfword field in a control block.  The 3390-1 adds approximately 30% more storage than the 3380, so the increase in storage capacity is negligible.  Also, some important system administration utilities included with MVS 3.8j will not function with 3390 DASD.  Although this statement is also true of 3380 DASD, there are more compelling reasons to use 3380 DASD.

 

Stage 1

The Stage 1 job - sysgen01.jcl (from either installmvs, mod3380.tgz, or mod3390.tgz) - is processed by the assembler to produce the Stage 2 deck, which really does the work of building the target system.  This is the same process used in building MVT 21.8f, only for MVS 3.8 the process is more complex.

The contents of the Stage 1 deck I include here was derived from using the sample in the SYS1.PROCLIB of the starter system, the deck in the Bekker Distribution library, and suggestions from several individuals in the Hercules group.  I have attempted to include as many comments as possible to facilitate anyone's efforts to customize the configuration for their own needs and desires.  You may make changes and submit the Stage 1 job as many times as you need to until you are satisfied that you have an error-free run that meets your needs; each time you submit the deck it will clear the Stage 2 output (if any) from the prior submission.

On the Hercules' console, type the command:

devinit 012 jcl/sysgen01.jcl eof

and press ENTER.  This job should take only a few minutes to run.  The completion codes from the two steps should be: 

IEF142I SYSGEN01 DELETE - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN01 ASMBLR - STEP WAS EXECUTED - COND CODE 0000

or, if you use condcode.pl:

Searching prt00e.txt for MVS Job Name sysgen01

Step Name     Proc Step Name  Completion Code
---------     --------------  ---------------
DELETE                        0000
ASMBLR                        0000

In the diagnostics listing from the assembler, you should expect a couple of MNOTEs.  Using the Stage 1 deck modified for 3380 DASD, they occur in sequence numbers 1055 and 1193.  (If modified to also include 3390 support, they occur at sequence numbers 1156 and 1310.)  These are expected and normal; no corrective action needs to be taken to resolve these.  If errors occur during the assembly which must be corrected, the assembly will be terminated prematurely and a Stage 2 deck will not be created in the output file for you to retrieve in the next step.

After the errors have been eliminated, the output of this job - the Stage 2 jobstreams - needs to be transferred from the disk output file on SMP001 into punched card images.  That is the sole function of the next job.

On the Hercules' console, type the command:

devinit 012 jcl/sysgen02.jcl eof

and press ENTER.  This job should take only a few seconds to run.  When it ends, the host OS file assigned to the punch device (pch013.txt in the /mvs directory) will contain the card images produced from the assembly of the Stage 1 deck.  Copy the contents of this file into a new file - stage2.jcl - in your /jcl directory.

Edit the stage2.jcl file with a text editor you are familiar with.  The first two images in the punched deck, and the last image in the deck, are job separator cards and should be deleted.  The remainder of the file contains the six jobstreams which generate the MVS 3.8 system, each preceded by a JOB card generated during the Stage 1 processing.  The following changes need to be made to the jobs before the may be submitted for processing:

  1. For jobs 1 through 5, add a continuation card immediately after the JOB card (add a comma onto the rightmost end of the JOB card and insert a card following the JOB card with // in the first 2 columns).  Note that job 6 already has a continuation card for the JOB card.

  2. For jobs 1 through 5, add TYPRUN=HOLD on the newly added continuation card of the JOB card beginning anywhere in columns 2 through 16.  Note that job 6 already has TYPRUN=HOLD on the continuation card.

  3. For all jobs, add a comma and TIME=1439 following the TYPRUN=HOLD on the continuation of the JOB card.

  4. For all 6 jobs, insert a new card immediately after the continuation card of the JOB card.  Beginning in column 1 of this inserted blank card, enter 

                    /*JOBPARM  LINES=100

  5. For jobs 1 through 5, insert another new card immediately after the card just inserted (the JOBPARM card).  Beginning in column 1 of this inserted blank card, enter

                    //JOBCAT  DD  DSN=SYS1.AMASTCAT,DISP=SHR

  6. In job 6, locate STEPY (which is the third from the final step in the deck) and change the program executed from IDCAMS to IEFBR14:

                    //STEPY      EXEC PGM=IEFBR14,REGION=512K

  7. Throughout the jobstreams, where ever there is an EXPDT=99350 parameter on a DD statement, change it to EXPDT=yy001 where yy is the year to which your starter system's clock is set.

  8. Depending upon your personal preference, you may add a job terminator statement (//) at the end of the generated deck.

The reasons for these changes are:

the TYPRUN=HOLD on jobs 1 through 6 prevent the jobs from executing until specifically released by you.  Each job in the Stage 2 deck must be executed sequentially, one after the other.  You must verify that all steps of each job have executed correctly before releasing the next job to run.

On slower computer systems, the lack of TIME=1439 may cause one or more of the jobs to abnormally terminate because the default job time limit is reached before the job has had time to complete.  The TIME=1439 eliminates this time restriction.

The JOBPARM card is purely cosmetic.  It eliminates messages displayed on the MVS console by JES2 for jobs which generate excessive printed output.  The LINES=100 parameter tells JES2 to expect at least 100,000 lines of output from the job.

The JOBCAT card is required because the datasets the jobs are expecting to find catalogued in the starter system's Master Catalog are in fact catalogued in the User Catalog: SYS1.AMASTCAT.  Adding this card allows the datasets to be found.

STEPY in job 6 exports (deletes from) the User Catalog (in which all the datasets you have been operating on during the System Generation are cataloged) from the Master Catalog of the starter system.  This is totally unnecessary for the generated system's correct operation.  If you allow this step to run and later need convenient access to the datasets from the starter system, you will have to build and run a job to re-connect the catalog.  It is far better to just leave the catalog connected.

The EXPDT=99350, which was generated by the Stage 1 processing, creates all libraries on the target system to be un-expired until the date 99350 (way in the future at the time MVS 3.8 was in commercial use).  There is nothing intrinsically wrong with this, except that you will have to reply to about 200 prompts to allow the Stage 2 jobs to write into the datasets as they build the system.  Changing the EXPDT to a value that has already passed eliminates these prompts and will make life much simpler for you.

Since there has been some confusion about these instructions to those unfamiliar with Job Control Language, I have added a "before" and "after" comparison viewable at:  Stage 2 Modifications.  If you are unfamiliar with Job Control Language, I strongly recommend that you locate a good reference/textbook, since a thorough understanding of JCL is required to successfully utilize MVS.  My recommendation would be System/370 Job Control Language by Gary DeWard Brown, preferably an edition prior to the fourth, which concentrates far too much on modern facilities and drops discussion of some of the features which are required on MVS 3.8j.  You can find this and other JCL books at larger university libraries.  You local library may be able to acquire books for you through WorldCat/Interlibrary Loan.  You might also check for used copies reasonably priced at ABE books.

I also have a simple awk script that will make these changes - stage2.awk - although if you intend to do anything with MVS after your system is generated you will need to understand JCL and I recommend you start learning by making the changes in a text editor.  If you use the awk script, delete the original file containing the Stage 2 deck - stage2.jcl - and rename the output of the awk script to stage2.jcl.

 

Stage 2

Submit the Stage 2 jobstreams to the reader - on the Hercules' console, type the command:

devinit 012 jcl/stage2.jcl eof

and press ENTER.  The jobs will be read in and placed on hold:

To release the first job for processing, on the telnet client window enter the command:

$a'sysgen1'

and press ENTER.  After each job is completed, check the output to ensure that there are no significant errors and the completion codes received are those expected.  Then release the next job in sequence - sysgen2, sysgen3, sysgen4, sysgen5, and sysgen6 - using the $a command shown above.  Since the output from one or more steps in each job is usually required as input in the succeeding job, it is imperative that only one job be processed at a time, that all steps of each job are run, and that there are no unexpected completion codes.  You may notice that the job class on all six jobs is C (CLASS=C on the JOB card statement) and that the jobs are selected for processing by initiator three (INIT 3) on the starter system.  This is another means of ensuring that the jobs are run serially (one after the other) as only one initiator on the starter system is set to process jobs in class C.

Here are the completion codes I received on the jobs:

IEF142I SYSGEN1 LPA1 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 A SG2 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 A SG3 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 A SG4 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 A SG5 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 A SG6 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 A SG7 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 A SG8 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 A SG9 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 A SG10 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 LPA11 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 LK SG12 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 LK SG13 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 LK SG14 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 LK SG15 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 LK SG16 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 LK SG17 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 LK SG18 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 LK SG19 - STEP WAS EXECUTED - COND CODE 0004
IEF142I SYSGEN1 LK SG20 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 LK SG21 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 LK SG22 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 LK SG23 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 LK SG24 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 LK SG25 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 LK SG26 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 LK SG27 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 LK SG28 - STEP WAS EXECUTED - COND CODE 0004
IEF142I SYSGEN1 LK SG29 - STEP WAS EXECUTED - COND CODE 0004
IEF142I SYSGEN1 LK SG30 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 LK SG31 - STEP WAS EXECUTED - COND CODE 0004
IEF142I SYSGEN1 LK SG32 - STEP WAS EXECUTED - COND CODE 0004
IEF142I SYSGEN1 LK SG33 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 LK SG34 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 LK SG35 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 LK SG36 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 LK SG37 - STEP WAS EXECUTED - COND CODE 0004
IEF142I SYSGEN1 LK SG38 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 LK SG39 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN1 LK SG40 - STEP WAS EXECUTED - COND CODE 0000

IEF142I SYSGEN2 LNK1 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 A SG2 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 A SG3 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 A SG4 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 A SG5 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LNK6 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG7 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG8 - STEP WAS EXECUTED - COND CODE 0004
IEF142I SYSGEN2 LK SG9 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG10 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG11 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG12 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG13 - STEP WAS EXECUTED - COND CODE 0004
IEF142I SYSGEN2 LK SG14 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG15 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG16 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG17 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG18 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG19 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG20 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG21 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG22 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG23 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG24 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG25 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG26 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG27 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG28 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG29 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG30 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG31 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG32 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG33 - STEP WAS EXECUTED - COND CODE 0004
IEF142I SYSGEN2 LK SG34 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG35 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG36 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG37 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG38 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG39 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG40 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG41 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG42 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG43 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG44 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN2 LK SG45 - STEP WAS EXECUTED - COND CODE 0000

IEF142I SYSGEN3 SVC1 - STEP WAS EXECUTED - COND CODE 0000 
IEF142I SYSGEN3 SVC2 - STEP WAS EXECUTED - COND CODE 0000 
IEF142I SYSGEN3 SVC3 - STEP WAS EXECUTED - COND CODE 0000

IEF142I SYSGEN4 NUC1 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN4 A SG2 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN4 A SG3 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN4 A SG4 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN4 A SG5 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN4 A SG6 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN4 A SG7 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN4 A SG8 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN4 A SG9 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN4 A SG10 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN4 A SG11 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN4 A SG12 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN4 NUC13 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN4 LK NUC14 - STEP WAS EXECUTED - COND CODE 0004
IEF142I SYSGEN4 LK SG15 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN4 LK SG16 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN4 LK SG17 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN4 LK SG18 - STEP WAS EXECUTED - COND CODE 0000

IEF142I SYSGEN5 MISC1 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN5 SG2 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN5 SG3 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN5 A SG4 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN5 A SG5 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN5 MISC6 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN5 LK SG7 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN5 LK SG8 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN5 LK SG9 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN5 LK SG10 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN5 LK SG11 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN5 LK SG12 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN5 LK SG13 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN5 LK SG14 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN5 LK SG15 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN5 LK SG16 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN5 LK SG17 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN5 SG18 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN5 SG19 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN5 SG20 - STEP WAS EXECUTED - COND CODE 0000

IEF142I SYSGEN6 LIST1 - STEP WAS EXECUTED - COND CODE 0000 
IEF142I SYSGEN6 LIST2 - STEP WAS EXECUTED - COND CODE 0000 
IEF142I SYSGEN6 STEPY - STEP WAS EXECUTED - COND CODE 0000 
IEF142I SYSGEN6 STEPZ1 - STEP WAS EXECUTED - COND CODE 0008 
IEF142I SYSGEN6 STEPZ2 - STEP WAS EXECUTED - COND CODE 0000

or, if you use condcode.pl:

Searching prt00e.txt for MVS Job Name sysgen1
Step Name     Proc Step Name  Completion Code
---------     --------------  ---------------
LPA1                          0000
SG2           A               0000
SG3           A               0000
SG4           A               0000
SG5           A               0000
SG6           A               0000
SG7           A               0000
SG8           A               0000
SG9           A               0000
SG10          A               0000
LPA11                         0000
SG12          LK              0000
SG13          LK              0000
SG14          LK              0000
SG15          LK              0000
SG16          LK              0000
SG17          LK              0000
SG18          LK              0000
SG19          LK              0004 <-- 
SG20          LK              0000
SG21          LK              0000
SG22          LK              0000
SG23          LK              0000
SG24          LK              0000
SG25          LK              0000
SG26          LK              0000
SG27          LK              0000
SG28          LK              0004 <-- 
SG29          LK              0004 <-- 
SG30          LK              0000
SG31          LK              0004 <-- 
SG32          LK              0004 <-- 
SG33          LK              0000
SG34          LK              0000
SG35          LK              0000
SG36          LK              0000
SG37          LK              0004 <-- 
SG38          LK              0000
SG39          LK              0000
SG40          LK              0000

Searching prt00e.txt for MVS Job Name sysgen2
Step Name     Proc Step Name  Completion Code
---------     --------------  ---------------
LNK1                          0000
SG2           A               0000
SG3           A               0000
SG4           A               0000
SG5           A               0000
LNK6                          0000
SG7           LK              0000
SG8           LK              0004 <-- 
SG9           LK              0000
SG10          LK              0000
SG11          LK              0000
SG12          LK              0000
SG13          LK              0004 <-- 
SG14          LK              0000
SG15          LK              0000
SG16          LK              0000
SG17          LK              0000
SG18          LK              0000
SG19          LK              0000
SG20          LK              0000
SG21          LK              0000
SG22          LK              0000
SG23          LK              0000
SG24          LK              0000
SG25          LK              0000
SG26          LK              0000
SG27          LK              0000
SG28          LK              0000
SG29          LK              0000
SG30          LK              0000
SG31          LK              0000
SG32          LK              0000
SG33          LK              0004 <-- 
SG34          LK              0000
SG35          LK              0000
SG36          LK              0000
SG37          LK              0000
SG38          LK              0000
SG39          LK              0000
SG40          LK              0000
SG41          LK              0000
SG42          LK              0000
SG43          LK              0000
SG44          LK              0000
SG45          LK              0000

Searching prt00e.txt for MVS Job Name sysgen3
Step Name     Proc Step Name  Completion Code
---------     --------------  ---------------
SVC1                          0000
SVC2                          0000
SVC3                          0000

Searching prt00e.txt for MVS Job Name sysgen4
Step Name     Proc Step Name  Completion Code
---------     --------------  ---------------
NUC1                          0000
SG2           A               0000
SG3           A               0000
SG4           A               0000
SG5           A               0000
SG6           A               0000
SG7           A               0000
SG8           A               0000
SG9           A               0000
SG10          A               0000
SG12          A               0000
NUC13                         0000
NUC14         LK              0004 <-- 
SG15          LK              0000
SG16          LK              0000
SG17          LK              0000
SG18          LK              0000

Searching prt00e.txt for MVS Job Name sysgen5
Step Name     Proc Step Name  Completion Code
---------     --------------  ---------------
MISC1                         0000
SG2                           0000
SG3                           0000
SG4           A               0000
SG5           A               0000
MISC6                         0000
SG7           LK              0000
SG8           LK              0000
SG9           LK              0000
SG10          LK              0000
SG11          LK              0000
SG12          LK              0000
SG13          LK              0000
SG14          LK              0000
SG15          LK              0000
SG16          LK              0000
SG17          LK              0000
SG18                          0000
SG19                          0000
SG20                          0000

Searching prt00e.txt for MVS Job Name sysgen6
Step Name     Proc Step Name  Completion Code
---------     --------------  ---------------
LIST1                         0000
LIST2                         0000
STEPY                         0000
STEPZ1                        0008 <-- 
STEPZ2                        0000

With the exception of STEPZ1 in SYSGEN6, all of the 0004 completion codes indicate warning messages.  These are expected warnings, which you may notice are specified by the comments in the generated jobstreams.  STEPZ1 is attempting to delete a member from a dataset that doesn't exist and therefore receives the 0008 completion code.  

In the second step of SYSGEN5 you will see a message on the console similar to:

+IFC001I D=3350 N=0B F=00010001 L=00010018 S=0001000102 DIP COMPLETE

which is issued when SYS1.LOGREC is initialized.  This does not indicate an error has occurred.

Completion of the set of six jobs takes about 15 minutes on my system.

 

JES2 Generation

During SMP, the elements of JES2 are loaded into libraries, but it is necessary to use the link editor to build the JES2 load modules.  Also, the parameters required for JES2 operation need to be set up in SYS1.PARMLIB and a procedure to execute JES2 must be created in SYS1.PROCLIB.

The jobstream to link JES2 is included in the Base Program Directory document.  Volker Bandke posted a combined jobstream to the group that includes the two link steps for JES2 from this document, and also sets up both the parmlib and proclib members.  Over time I have incorporated changes suggested on the group into the options included in the SYS1.PARMLIB member.  

Tommy Sprinkle has made available the JES2 parameters (and other SYS1.PARMLIB members) he used in a production system.  For more information and to download a copy of his parameters, see http://www.tommysprinkle.com/mvs/parmlib.html

On the Hercules' console, type the command:

devinit 012 jcl/sysgen03.jcl eof

and press ENTER.  This job should take only a few minutes to run.  The completion codes from the four steps should be: 

IEF142I SYSGEN03 JES2 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN03 SSSM - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN03 JES2PARM - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN03 JES2PRC - STEP WAS EXECUTED - COND CODE 0000

or, if you use condcode.pl:

Searching prt00e.txt for MVS Job Name sysgen03

Step Name     Proc Step Name  Completion Code
---------     --------------  ---------------
JES2                          0000
SSSM                          0000
JES2PARM                      0000
JES2PRC                       0000

 

Post Gen Jobstream

There are several members of SYS1.PARMLIB that need to be created (or modified) in order to make the target system operate smoothly.  An excellent reference text for MVS Systems Programming (in general) and specifically the SYS1.PARMLIB members is MVS Systems Programming by Dave Elder-Vass (view the contents or order a printed copy at: iUniverse.COM).

The next jobstream consists of several steps modifying SYS1.PARMLIB.  It also allocates:

  • a user link library (SYS2.LINKLIB) so you can add load modules without contaminating SYS1.LINKLIB

  • a user TSO command library (SYS2.CMDLIB) so you can add TSO command load modules without contaminating SYS1.CMDLIB

  • a user TSO Help library (SYS2.HELP) so you can add TSO command help information without contaminating SYS1.HELP

  • and a user control statement library (SYS2.CONTROL)

It deletes a couple of datasets that were created and used during Stage 2 that won't be needed again, and allocates the PAGE datasets on the PAGE00 volume.  This job also allocates the JES2 datasets on the SPOOL1 DASD volume, so before submitting the jobstream, you must attach the volume to Hercules and issue the MVS commands to mount it for use.  On the Hercules' console, enter the command:

attach 14c 3350 dasd/spool1.3350

and press ENTER.  Hercules should respond:

HHCDA020I dasd\spool1.3350 cyls=560 heads=30 tracks=16800 trklen=19456

On the telnet client window, enter the command:

v 14c,online

and press ENTER.  MVS should respond:

IEE302I 14C ONLINE 

On the telnet client window, enter the command:

m 14c,vol=(sl,spool1),use=private

and press ENTER.  Note that there is a space between the m and the numeral one in this command.  After you enter the command, there will be some informational messages displayed as the MOUNT task is started, but none of the messages will require a response.  If you wish to verify that the mount completed successfully, the line in the printer output file indicating the completion code for the mount is:

IEF142I MOUNT 14C - STEP WAS EXECUTED - COND CODE 0000

or, if you use condcode.pl (using the job name mount):

Searching prt00e.txt for MVS Job Name mount

Step Name     Proc Step Name  Completion Code
---------     --------------  ---------------
14A                           0000
14B                           0000
14C                           0000

Note that the condcode PERL program will also display the completion codes for the earlier mount messages, for addresses 14a and 14b, but you are interested in the result of the 14c mount at this time.

On the Hercules' console, type the command:

devinit 012 jcl/sysgen04.jcl eof

and press ENTER.  This job should take only a few minutes to run.  The completion codes from the ten steps should be: 

IEF142I SYSGEN04 UPDTE1 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN04 UPDTE2 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN04 UPDTE4 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN04 PROGM5 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN04 UPDTE6 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN04 UPDTE7 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN04 UPDTE8 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN04 UPDTE9 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN04 IDCAMS10 - STEP WAS EXECUTED - COND CODE 0000
IEF142I SYSGEN04 IEFBR14 - STEP WAS EXECUTED - COND CODE 0000

or, if you use condcode.pl:

Searching prt00e.txt for MVS Job Name sysgen04

Step Name     Proc Step Name  Completion Code
---------     --------------  ---------------
UPDTE1                        0000
UPDTE2                        0000
UPDTE4                        0000
UPDTE5                        0000
PROGM6                        0000
UPDTE7                        0000
UPDTE8                        0000
UPDTE9                        0000
IDCAMS10                      0000
IEFBR14                       0000

 

Shut Down the Starter System

You have completed the System Generation and are ready to shut down the starter system so you can IPL the new MVS 3.8 system.  In the telnet client window, type the command:

$p jes2

and press ENTER.  This command instructs JES2 to shut down normally.  The following messages will be displayed:

which are issued by JES2 and MVS as JES2 terminates.  In the telnet client window, type the command:

z eod

and press ENTER.  This command instructs the MVS operating system to shut down normally.  The following message will be displayed:

IEE334I HALT EOD SUCCESSFUL

which indicates the MVS system has reached a point where power down is possible.  Note that MVS is still running and additional operator commands might be entered and jobs submitted.  But, the object of the "z eod" command is to close all the system files and prepare for an orderly shutdown.  Type the command:

quiesce

in the telnet client window and press ENTER.  This command instructs the MVS operating system to write any buffers to the DASD devices.  This ensures that when you shut down Hercules any information held in memory by MVS is written to the DASD images.  In the Hercules command window, type the command:

quit

and press ENTER.  Hercules will close all the files for the emulated mainframe devices and terminate.

 

Make a Checkpoint Backup

This would be another excellent place to back up the work you have done.  Although there are still some changes to be made to your generated MVS 3.8j system, the basic system is completed.  If you take a snapshot of this point, you can always start with a basic system and reapply the tailoring modifications if you decide that you want to try something different.

The quickest, and simplest, method is to make a copy of the host OS (Linux, Windows/??, etc) files containing your MVS DASD images, using a utility such as tar, zip, xcopy, or WinZip.  The DASD images you should copy are:

MVSRES  dasd\mvsres.3350
PAGE00   dasd\page00.3350
SPOOL1 dasd\spool1.3350

If you applied the 3380 or 3390 modifications, you should also include SMP001 (dasd\smp001.3350) in your backup.  The WORK02 volume has been modified, but any datasets contained on it are temporary and do not need to be preserved.

 

The next step is to IPL the newly built MVS system for the first time and do some post system generation housekeeping that will make the system more usable.  So, when you are ready, proceed to the next step - IPL the Target MVS 3.8 System.


I hope that you have found my instructions useful.  If you have questions that I can answer to help expand upon my explanations and examples shown here, please don't hesitate to send them to me:



This page was last updated on March 24, 2009 .