Installing MVS 3.8

Using SMP4 to Build the Distribution Libraries


Prerequisites

To recap prior steps, in order to build the MVS distribution libraries, you should already have downloaded/installed on your computer -

Although not mandatory, this is the structure into which I have MVS related files and these instructions will show commands, output, etc. using this relative structure as a reference point:

The MVS 3.8j product tapes archive (item #2 in the prerequisites list above) contains two files:

product.het AWS tape image containing all product elements required to build MVS 3.8j distribution libraries
smp4b.het AWS tape image containing SMP4 load modules and procedures

The two tape image files above should be located in the tape directory.

The installmvs archive (item #3 in the prerequisites list above) contains nineteen files that are required for this step (I only include one each of the create.dasd and condcode scripts in this count):

create.dasd.bat or create.dasd.sh extracted to mvs directory Windows bat script that utilizes the dasdinit utility to create empty DASD volumes

bash script that utilitzes the dasdinit utility to create empty DASD volumes

condcode.pl
or
condcode.rexx
extracted to mvs directory PERL script to extract/display condition codes for jobs

REXX script to extract/display condition codes for jobs

dlibs.script extracted to conf directory Hercules command script to add new DASD to configuration
smp1.cnf extracted to conf directory Hercules configuration file to execute Hercules/MVS starter system to install SMP4
smp2.cnf extracted to conf directory Hercules configuraiton file to execute Hercules/MVS starter system to build distribution libraries
null.jcl
smp4p44.jcl
smpjob00.jcl
smpjob01.jcl
smpjob02.jcl
smpjob03.jcl
smpjob04.jcl
smpjob05.jcl
smpjob06.jcl
smpjob07.jcl
smpjob08.jcl
smpmount.jcl
extracted to jcl directory Jobstreams submitted to MVS starter system to build distribution libraries
j90009.het extracted to tape directory Jim Morrison's 3375/3380/3390 modifications
ptfs.het extracted to tape directory AWS tape image containing all know PTFs (program Temporary Fixes) for MVS 3.8j

 

The clock time required to complete the steps below should be approximately 30 minutes; the actual elapsed time for the jobs to execute was extracted from the jobs' SYSOUT logs, so I have added 15 minutes to this estimate for 'user' time.  All times given here should be taken as estimates.  The actual time reported for each job depend greatly upon the hardware and host Operating System (Linux/MAC/Windows) upon which Hercules is executing.  The time necessary for you to complete the steps may be longer if you have not already gathered all required files and have them restored to the appropriate locations before beginning.

 

Create additional DASD Volumes

The end result of building the starter system in the prior step was two 3330 DASD volumes, which are located in the dasd directory.

Now we will use the the create.dasd.bat (the same script we used before) to create three additional DASD volumes required for this step.  In this step you will:

  • change to the dasd subdirectory

  • if the three DASD volumes exist, delete them

  • utilize the dasdinit utility (included with Hercules) to create the three volumes

On a Windows system, open a Command Prompt window and type the command: 

create.dasd dlibs

and press Enter.  The script will execute, creating the three DASD images:  The console output of the script on my system is shown below:

M:\hercules\mvs>create.dasd dlibs
This script creates empty DASD volumes for building MVS 3.8j dlibs.
Changing to dasd subdirectory.
Creating WORK00 3350 volume.
HHCDU044I Creating 3350 volume 111111: 560 cyls, 30 trks/cyl, 19456 bytes/track
HHCDU041I 560 cylinders successfully written to file work00.3350
HHCDI001I DASD initialization successfully completed.
Creating WORK01 3350 volume.
HHCDU044I Creating 3350 volume 222222: 560 cyls, 30 trks/cyl, 19456 bytes/track
HHCDU041I 560 cylinders successfully written to file work01.3350
HHCDI001I DASD initialization successfully completed.
Creating SMP000 3350 volume.
HHCDU044I Creating 3350 volume 333333: 560 cyls, 30 trks/cyl, 19456 bytes/track
HHCDU041I 560 cylinders successfully written to file smp000.3350
HHCDI001I DASD initialization successfully completed.
Returning to original subdirectory.
Script completed successfully!

M:\hercules\mvs>

The DASD volumes that are created are simply raw emulated volumes; they have not been initialized for use by MVS and contain no VTOC or control structures.  They will be initialized in the next step.

On Linux systems:  I have also provided a bash version of this script (create.dasd.sh); on Linux systems, execute this script with the single argument 'dlibs' to create the three DASD images.

Alternately you may also issue the commands from a console prompt after changing to the dasd directory:

dasdinit -a work00.3350 3350 111111
dasdinit -a work01.3350 3350 222222
dasdinit -a smp000.3350 3350 333333

 

Checking MVS Completion Codes

Every batch job or started task that executes under MVS returns a completion code (also known as a condition code or return code) at the conclusion of each step (program executed).  The value of the completion code is printed in the Job Log section of the SYSOUT listing, following the Allocation messages for each step.  It is essential that you examine the output of each job to ensure that the codes you received for each step match those expected.  If you receive an unexpected code, it probably means an error has occurred during execution of the job that must be corrected, and the job rerun, before you proceed.  The SYSOUT listings can be found in the host Operating System file assigned to the printer device address as specified in the Hercules' configuration file.  If you use the configuration files included in the installmvs archive, the file will be located in the mvs directory and will be named prt00e.txt.  You can view this file with a text viewer or editor while Hercules is still running.  The current version of Hercules protects the files assigned to its emulated devices by making them read-only access.  The completion code is listed in a message with the prefix IEF142I, so you can find the completion code by searching for this string.  As an alternative, I have included a Perl program in the installmvs archive - condcode.pl - and a REXX program - condcode.rexx - either of which you may use to display the step completion codes for any job; their function is identical, I simply needed the REXX version for a computer on which I did not have PERL installed.  Of course you will need Perl or REXX installed on your system to use one of these.  The command line syntax for the program is:

{ condcode.pl | condcode.rexx } <print file name> <MVS job name>

If you are following the directory structure I have suggested, the program should be executed from the mvs directory.  The output can also be redirected to a file, a printer, or filtered to another program, such as more.  Any step with a completion code other than 0000 will be indicated by the inclusion of "<--" to the right of the completion code.  Remember that a non-zero completion code may be acceptable for a particular step; all acceptable and expected codes will be listed in these instructions.

 

Installing SMP4 on the Starter System

The program used to reload the MVS 3.8j product tape onto DASD is SMP4 (System Modification Program Release 4).  The AWS tape labeled smp4b.het contains version 4.22 of this program.  Unfortunately, version 4.24 is required to successfully reload MVS 3.8j.  So it is necessary to extract the components of SMP4 from the product distribution tape (product.het).  There are procedure library members on the smp4 tape that must be restored to the procedure library, so you will still need the smp4 tape image.  

 

The MVS Starter System

The MVS starter system is simply MVS 3.7, which is the release prior to MVS 3.8j.  The hardware configuration generated in the starter system is quite comprehensive and is illustrated on pages 25/26 in the OS/VS System Generation Reference; if you are interested in the details provided by this chart and do not have a copy of that manual, I provide those pages @ http://www.jaymoseley.com/hercules/downloads/pdf/GC26-3792-p25-26.pdf.  

It is not necessary to define all of the hardware generated for the system in order to use the system, so for the first step of this process, we will be using the configuration defined in the Hercules configuration file smp1.cnf, which is located in the conf directory.  The graphical representation of that configuration is:

Open a console window (Linux) or a Command Prompt window (Windows) and start hercules by typing the command hercules -f conf/smp1.cnf and pressing Enter:

Hercules will begin execution, load the configuration file, and display the following messages:

Hercules is waiting for a telnet client session to connect to the emulated device specified at address x'01f' in the configuration file.  The device is specified as a 3215 console, so you must use a telnet client on your host computer (Windows, Linux, etc.) to connect.  Start your telnet client program.  In the connection dialog for your client, specify the address as 'localhost' and the port number as 3270.  Make certain that your telnet client settings include 'local echo' so that when you type in the client window, what you type will also be displayed in the window.  When connected, the telnet window will display:

In the console window where Hercules was started, an additional line will be added to reiterate that the console has been connected to device 0:001f:

It is time to IPL the starter system.  On the command line in the console window where Hercules was started, type the command ipl 150 and press Enter.  This will instruct Hercules to load the MVS 3.7 operating system from the 3330 DASD volume at x'150':

In the telnet window you should see:

Since this is the first time the MVS starter system has been loaded, at message IEA101A you need to type (in the telnet client window):  r 0,clpa and press Enter.  Note that there is a space between the r and the numeral zero in this response.

This reply tells MVS that it needs to rebuild a set of load modules that it retains in the paging files from the system load library (the Link Pack Area).  It will take a few seconds and then you should 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!]  The leading zero of the reply number may be omitted when you type your responses.  

You should type r 0,format,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 format the spool area (since this is the first time JES2 has been started on this system, it has never been formatted), and that JES2 is to start operation without waiting for startup commands.  Next you should see:

This message is also the result of this being the first time JES2 has been started with these Spool files.  You should type r 1,y and press ENTER.  Note that there is a space between the r and the numeral one in this response.

JES2 will complete initialization and you will see:

As you can see at the bottom of the screen, there are three initiators started.  In will make things simpler for you to manage if there is only one job executing at a time, so we will stop two of the initiators.  On the MVS Starter System console (in the telnet client window), type the command $pi2-3 and press Enter.  Initiators 2 and 3 will end:

At this point the system is ready to process jobs and service operator commands.  However, before we submit the first job, we need to modify the hardware configuration.  

The three DASD volumes we created above are not defined in the smp1.cnf Hercules configuration file.  This is intentional, because the volumes must be offline to allow the job below to initialize them.  During IPL MVS will place all DASD volumes present online, so these new volumes are omitted from the configuration file.  I have provided a Hercules script to add the drives to the 'active' configuration.  On the command line in the console window where Hercules was started, type script conf/dlibs.script and press Enter.  Your Hercules command window should look like:

There is some preparatory work to be completed on the MVS Starter System before we can begin to build the Distribution Libraries:

  • The load modules for SMP4 must be placed into SYS1.LINKLIB on the START1 DASD volume,
  • JCL procedures must be placed into SYS1.PROCLIB on the START1 DASD volume, and
  • The three new DASD volumes must be initialized.

The SMP load modules and procedures are supplied by IBM on the tape contained in the file smp4b.het.  However, the load modules supplied on the tape are at a release level that is not up-to-date enough to properly function in building the MVS 3.8j Distribution Libraries.  So we will extract the object components needed to build the SMP load modules from the MVS 3.8j product tape.  And we will install the procedures contained on the smp4b.het tape to place into SYS1.PROCLIB; however, they also have some errors and omissions, so I have provided an alternate (corrected and enhanced) procedure which will also be installed in SYS1.PROCLIB.  The function of the final step of the job we will submit will initialize (build VTOC and file control structures on) and label the three DASD volumes we created at the beginning of this page.  The Job Control Language (JCL) for the job, SMP4P44, is contained in the file smp4p44.jcl located in the jcl directory.  

On the command line in the console window where Hercules was started, type the command devinit 12 jcl/smp4p44.jcl eof and press Enter:

This command causes Hercules to initialize device 012 (the 3505 card reader) to point to the file containing the jobstream - smp4p44.jcl in the jcl directory.  The eof parameter instructs Hercules to set the end of file indicator when the contents of the file have been completely read in.  Messages will be displayed on the MVS console (in the telnet client window) as the job begins execution:

The asterisk in front of message IEF238D indicates operator decision and action is required by MVS.  This message is asking for a tape device to be made available (varied online) to the operating system; step S1 of the job is attempting to open an existing file on a tape with the volume serial number MVS38J.  I know from the Base Program Directory that this is the product tape - product.het.  So, on the command line in the console window where Hercules was started, type the command  devinit 170 tape/product.het and press Enter.

This command causes Hercules to initialize device 170 (the 3420 tape drive) to point to the file containing the required AWS tape volume product.het in the tape directory.

The tape is now ready to be read by the starter system, so on the MVS starter system console (in the telnet client window) type the command:  r 2,170 and press Enter.  Note that there is a space between the r and the numeral two in this response.  

The program will process the tape, the tape will be unloaded, and you will see another series of messages: 

The IEC502E message is informing you that the program has finished with the tape on 170; it has been dismounted and is to be kept.  The IEC501A message is informing you that a new tape is required by the job - specifically, it is requesting that on the drive at address 170 the job requires an existing tape with the volume serial number T74172 to be mounted.  This time, the tape required is the one contained in the AWS image file smp4b.het contained in the tape directory.  On the command line in the console window where Hercules was started, type the command:  devinit 170 tape/smp4b.het and press Enter:

This command causes Hercules to initialize device 170 (the 3420 tape drive) to point to the file containing the required AWS tape volume.  The program will process the tape, the tape will be unloaded, and you will see another series of messages: 

The IEC507D message is informing you that a program is attempting to modify a dataset on the START1 3330 volume - SYS1.PROCLIB - however the expiration for the dataset has not occurred.  This is expected and acceptable, so you will reply 'U' to use the dataset.  In the telnet client window type the command r 3,U and press Enter.  Note that there is a space between the r and the numeral three in this response.   

You will receive the same message - IEC507D - three times in succession, twice for the dataset SYS1.PROCLIB and once for the dataset SYS1.LINKLIB; you should reply U to each of these messages:

Next you will see:

The IEH841D message is informing you that an offline volume at address 148 is to be initialized or labeled and the operator is requested to verify that the desired volume is currently mounted at the address.  This is expected and acceptable, so you will reply 'U' to proceed.  In the telnet client window type the command  r 6,U and press Enter.  Note that there is a space between the r and the numeral six in this response.   

You will receive the same message - IEH841D - three times in succession, once for each of the DASD mounted at addresses x'148', x'149', and x'14a' in sequence; you should reply U to each of these messages:

There will be a longer processing time following your response to this third IEH841D message than you have experienced before following a response to a MVS console message.  That is because there is quite a bit of processing to be done to scan the three DASD volumes, build the file control structures, and write the labels.  It should take several minutes to complete; then you will see messages:

Whenever the $HASP099 message appear, it indicates all job activity has completed, the printed output from the job has been processed and placed in the emulated printer file on the host operating system, and the system is essentially idle.  The first message above - $HASP160 -  indicates that the JES2 printer task associated with PRINTER1 has completed, which means that all output has been transferred to the emulated printer file.  The second message - $HASP250 - indicates that all output for the job SMP4P44 has been processed and removed from the system (JES2 queues).

You may open the host operating system (Windows, Linux, etc.) file attached to the emulated printer - prt00e.txt - and view the output if you wish.  For each step of every job processed by MVS there is a completion (or condition) code printed which indicates the success, or degree of errors, that occurred during the execution of the step.  I have provided two scripts - condcode.pl and condcode.rexx - written in PERL and REXX respectively, which will scan the prt00e.txt file and report the condition codes for any given job.  

To execute the script, in a console window from the mvs directory, type either the command condcode.rexx prt00e.txt smp4p44 or the command condcode.pl prt00e.txt smp4p44 and press Enter.  Either will produce nearly identical output:

condcode.rexx prt00e.txt smp4p44

Searching PRT00E.TXT for MVS Job Name SMP4P44

Step Name     Proc Step Name     Completion Code
---------     --------------     ---------------
S1                               0000
S2                               0000
LK            S3                 0000
S4                               0000
S5                               0000

As shown above, the expected and acceptable completion code for all five steps of this job are 0000.

If you receive a completion code other than what is expected, on this or any MVS job, you will need to determine the cause of the error(s), correct the condition causing the error, possibly back out partial modifications made by the failing job, and resubmit the job.  These steps must be repeated until acceptable completion codes indicate successful completion of a job.  If you proceed with subsequent jobs after a job which encountered errors, you are probably wasting your time.  The resulting system may be unstable or completely unusable.

Among the first set of messages printed for job SMP4P44, there was an informational message printed on the console from commands embedded in the JCL:

$HASP104 SMP4P44 ******************************************************
$HASP104 SMP4P44 * An IPL is required after this job has completed!!! *
$HASP104 SMP4P44 ******************************************************

In order to execute the load module for SMP4 which has been added to the system load library of the MVS starter system, it is necessary to shut down and re-IPL the starter 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:

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.  In the telnet client window type the command quiesce 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.  

On the command line in the console window where Hercules was started, type the command quit and press ENTER.

Hercules will close all the files for the emulated mainframe devices and terminate.  You may close your telnet client.

 

Building the MVS 3.8j Distribution Libraries

Now that the programs/procedures we need are installed onto the starter system, we will again IPL the starter system, this time using a slightly different hardware configuration:  

Open a console window (Linux) or a Command Prompt window (Windows) and start hercules by typing the command hercules -f conf/smp2.cnf and pressing Enter:

Note:  the name of the Hercules configuration file is smp2.cnf, whereas before we used smp1.cnf.

You should be beginning to be familiar with the output from both Hercules and MVS, so I will not include quite as many screen shots from this point forward, only those that provide significantly different information.  

Start your telnet client and connect to 'localhost', port number 3270; if your client does not store options, remember that you need 'local echo' set on.  On the command line in the console window where Hercules was started, type the command ipl 150 and press Enter.  Since this is not the first time we have IPLed the starter system, we do not need to rebuild the Link Pack Area, so for the first prompt - IEA101A SPECIFY SYSTEM PARAMETERS FOR RELEASE 03.70.VS2 - simply press Enter in the telnet client window.  

Next your telnet client window will display:

We do not need to format the JES2 queue this time, so type r 0,noreq and press Enter.  There will be no message about the checkpoint, but there is a new message this time:

The Hercules configuration file - smp2.cnf - was set up to feed a job to MVS from the emulated reader at address x'012' as soon as JES2 became active.  That job contains a single MVS command to mount the 3350 DASD volume at address x'148', which now has the Volume Serial number SMP000, and set the attribute for the volume as PRIVATE.  The reason for this is that by default MVS will mount DASD volumes as STORAGE, which makes them eligible for allocation of any dataset that was not specifically directed to a particular volume.  Since we will be building the MVS 3.8j Distribution Libraries on this volume, we do not want any other datasets created on it.  

The MVS Starter System will not automatically execute console commands read from a card reader, so the IEF166D message is asking for confirmation from the operator before executing the command.  In the telnet client window, type r 01,Y and press Enter.  On the telnet client window, you will see messages regarding this job, and you can even utilize the condcode.rexx script to check that the command executed successfully.  To do that, in a host operating system window, in the mvs directory, type the command condcode.rexx prt00e.txt mount and press Enter.  You should see:

condcode.rexx prt00e.txt mount

Searching PRT00E.TXT for MVS Job Name MOUNT

Step Name     Proc Step Name     Completion Code
---------     --------------     ---------------
148                              0000

 

Initializing the SMP Environment

SMP requires several datasets to be initialized before the MVS 3.8j elements may be loaded into them.  This includes both loading basic information into several SMP control datasets and pre-allocating datasets that will constitute the MVS 3.8j Distribution Libraries at the conclusion of the steps on this page.  The first job to be run - SMPJOB00 - will first delete any of these datasets that exist and then allocate and initialize all the required datasets.  Therefore, this job may be run to 'restart' from this point if there are serious errors in the subsequent steps.  

To submit the job to MVS, on the command line in the console window where Hercules was started, type the command devinit 12 jcl/smpjob00.jcl eof and press Enter. 

This job takes less than a minute to complete (actually, 0.01 minutes from the SYSLOG).  The expected return codes for the job are:

condcode.rexx prt00e.txt smpjob00

Searching PRT00E.TXT for MVS Job Name SMPJOB00

Step Name     Proc Step Name     Completion Code
---------     --------------     ---------------
IEHPROGM                         0008 <--
IEFBR14                          0000
SMP           DLBUCL             0008 <--

The first step - IEHPROGM - receives a condition code of 0008 because it is attempting to delete datasets that are not present.  If you run this job again, either right now or later to 'restart' from this point, the condition code for this step will be 0000.  You will not harm anything if you wish to try that, so if you wish, submit the job again to see for yourself.

The second step - IEFBR14 - is pre-allocating datasets.

The third step - SMP - is initializing control information in several of the SMP datasets.  One of the first tasks it attempts is to delete a target that is not there (remember the datasets were just allocated and are empty), so it gets a condition code of 0008.  It will always get that code, so it is expected and acceptable.  If you examine the output from SMP4 (which is near the end of the prt00e.txt file), you will see that all the subsequent operations receive a return code of 00.

 

Receive the MVS Product Elements

The next job to be run - SMPJOB01 - will load all of the MVS 3.8j product elements into the SMP datasets.

To submit the job to MVS, on the command line in the console window where Hercules was started, type the command devinit 12 jcl/smpjob01.jcl eof and press Enter.  This job requires a tape, so on the telnet client window you will see:

You may remember that you receive this type of message for the first job requiring a tape after MVS has been IPLed.  On the command line in the console window where Hercules was started, type the command devinit 170 tape/product.het and press Enter.

This is a good time to interject a comment about the MVS 3.8j product tape contained on the AWS image product.het (and provided in my installmvs archive).  Other sources for this material have the various product elements divided up onto five separate AWS tape images.  My prior version of these instructions utilized these 'divided' tapes also.  But it was obvious to me from the file header labels that the five tapes were originally a single physical tape, so I have combined the five tapes back into a single image, as they would have been received from IBM.  There are three of the datasets that are not relevant to the system we are building, but they add an insignificant amount of content to the overall size of the file and it is just as simple to process the tape as a single tape image.

On the telnet client window, type r 02,170 and press Enter. SMPJOB01 will complete.  

This job takes 2.01 minutes to complete.  The expected return code for the single step of this job is:

condcode.rexx prt00e.txt smpjob01

Searching PRT00E.TXT for MVS Job Name SMPJOB01

Step Name     Proc Step Name     Completion Code
---------     --------------     ---------------
SMP           DLBUCL             0000

There will be a huge volume of output from this job (over 40,000 lines), but there is a summary report that lists the elements that were received.  Here are the pages that contain this summary report, extracted from the entire output:

======================================================================================================================
DATE 14.350 TIME 20:39:49 HMASMP LVL 04.44 MESSAGES AND CONTROL STATEMENTS PAGE 0454

                   RECEIVE SUMMARY REPORT


     SYSMOD  STATUS   TYPE     ------------------------

     EAS1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   System assembler
     EBB1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   Base control pgm
     EBT1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   BTAM
     EDE1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   Display Exception Monitor Facility
     EDM1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   Data Management
     EDS1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   DM Support
     EER1400 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   EREP
     EGA1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   GAM
     EGS1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   GAM Subroutines
     EIP1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   IPCS
     EJE1103 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   JES2 + 3800 enhancements
     EMF1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   MF/1
     EMI1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   MICR/OCR
     EML1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   Multi-Leaving Work Station
     EMS1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   MSS
     EPM1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   Program Management
     EST1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   System Support
     ESU1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   SU Bit String
     ESY1400 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   SMP4
     ETC0108 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   TCAM
     ETI1106 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   TIOC
     ETV0108 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   TSS/VTAM
     EUT1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   Utilities
     EVT0108 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   VTAM
     EXW1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   External Writer
     FBB1221 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   MVS Processor Support
     FDM1133 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   3800 enhancements - Data Management Utilities
     FDS1122 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   MVS Processor Support
     FDS1133 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   3800 enhancements - Data Management Utilities
     FDZ1610 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   Device Support Facilities
     FUT1133 RECEIVED FUNCTION SMPTLIB DATASETS LOADED   3800 enhancements - Data Management Utilities

======================================================================================================================
DATE 14.350 TIME 20:39:49 HMASMP LVL 04.44 MESSAGES AND CONTROL STATEMENTS PAGE 0455

HMA2050 RECEIVE PROCESSING COMPLETED - HIGHEST RETURN CODE IS 00


HMA2050 HMASMP PROCESSING COMPLETED - HIGHEST RETURN CODE IS 00

I have added annotation (in magenta) identifying what element is installed with each SYSMOD.

 

Receive the MVS PTFs

Subsequent to the release of any version of an Operating System by IBM, when problems are discovered in the code, Program Temporary Fixes (PTFs) are issued by IBM to correct the problems.  There has been an ongoing attempt to recover all the applicable PTFs for MVS 3.8j since early 2000, and there may yet be success in recovering more.  The AWS tape image - ptfs.het - located in the tape directory contains a merged set of all the PTFs that I know about.  The next job to be run - SMPJOB02 - loads all those PTFs into the SMP datasets.

To submit the job to MVS, on the command line in the console window where Hercules was started, type the command devinit 12 jcl/smpjob02.jcl eof and press Enter.  This job requires a tape, so on the telnet client window you will see:

On the command line in the console window where Hercules was started, type the command devinit 170 tape/ptfs.het and press Enter.

This job takes 0.62 minute to complete.  The expected return code for the single step of this job is:

condcode.rexx prt00e.txt smpjob02

Searching PRT00E.TXT for MVS Job Name SMPJOB02

Step Name    Proc Step Name    Completion Code
---------    --------------    ---------------
SMP          DLBUCL            0000

 

Accept the MVS Product Elements and PTFs

Now that all the product elements and PTFs have been loaded into the SMP datasets, the next job will accept them and the result will be the MVS 3.8j distribution libraries.  The next job to be run - SMPJOB03 - does this. 

To submit the job to MVS, on the command line in the console window where Hercules was started, type the command devinit 12 jcl/smpjob03.jcl eof and press Enter.  

This job takes 7.26 minutes to complete.  The expected return codes for the job are:

condcode.rexx prt00e.txt smpjob03

Searching PRT00E.TXT for MVS Job Name SMPJOB03

Step Name    Proc Step Name    Completion Code
---------    --------------    ---------------
SMP          DLBUCL1           0000
SMP          DLBUCL2           0000
SMP          DLBUCL3           0000
SMP          DLBUCL4           0004 <--
SMP          DLBUCL5           0000

Step 4 is expected to receive a completion code of 0004, because some of the link-edit steps will receive IEW0461 errors, because some links could not be resolved at this time.

Portions of the report produced on my system from this job can be viewed at: SMPJOB03.  Note that I have deleted some output from this listing in order to conserve space and show only the most relevant information.  The complete SYSOUT listing is more than 77,000 lines

 

Clean Up Following SMP

We are not quite finished, but before we continue, we are going to REJECT all the SYSMODS we have ACCEPTed.  This will clean up the SMP environment and remove the work datasets created that are no longer needed.  The job to run is SMPJOB04.

To submit the job to MVS, on the command line in the console window where Hercules was started, type the command devinit 12 jcl/smpjob04.jcl eof and press Enter.  

This job takes 0.03 minute to complete.  The expected return code for the single step of this job is:

condcode.rexx prt00e.txt smpjob04

Searching PRT00E.TXT for MVS Job Name SMPJOB04

Step Name    Proc Step Name    Completion Code
---------    --------------    ---------------
SMP          DLBUCL            0004 <--

The completion code of 0004 is expected, because SMP4 is not happy that we are deleting elements that have not been applied.  This is correct and expected.

The output produced on my system from this job can be viewed at: SMPJOB04.

 

Adding 3375, 3380 and 3390 DASD Support

The original MVS 3.8j does not have support for any DASD device type later than 3350.  Jim Morrison has prepared and made available modifications that may be applied to the distribution libraries to provide this support.  In past versions of these instructions, I left this as an optional step, and that step occurred much later in the instructions.  In April 2002 Jim released this version of his USERMODs (version 00.09) and placed it into the public domain.  Since that time many people have utilized them to add support for the later DASD types in their MVS 3.8j systems.  With the additional use these modifications have received, I feel confident that we should go ahead and make them an integral, non-optional part of the Distribution Libraries.

The job to load the USERMODs into the SMP datasets is SMPJOB05.

To submit the job to MVS, on the command line in the console window where Hercules was started, type the command devinit 12 jcl/smpjob05.jcl eof and press Enter.  This job requires a tape, so on the telnet client window you will see:

 On the command line in the console window where Hercules was started, type the command devinit 170 tape/j90009.het and press Enter.

This job takes 1.46 minute to complete.  The expected return code for the single step of this job is:

condcode.rexx prt00e.txt smpjob05

Searching PRT00E.TXT for MVS Job Name SMPJOB05

Step Name    Proc Step Name    Completion Code
---------    --------------    ---------------
SMP          DLBUCL            0000

The report produced on my system from this job can be viewed at: SMPJOB05.  Note that I have only included output from SMP4 in this listing in order to conserve space and show only the most relevant information.

 

As with the product tape and PTFs, the USERMODs must be ACCEPTed to produce the modifications to the Distribution Libraries.  The job to accomplish that is SMPJOB06.

To submit the job to MVS, on the command line in the console window where Hercules was started, type the command devinit 12 jcl/smpjob06.jcl eof and press Enter.  

This job takes 0.23 minute to complete.  The expected return code for the single step of this job is:

condcode.rexx prt00e.txt smpjob06

Searching PRT00E.TXT for MVS Job Name SMPJOB06

Step Name    Proc Step Name    Completion Code
---------    --------------    ---------------
SMP          DLBUCL            0004 <--

As with the product/PTF ACCEPT job, the completion code of 0004 is expected; some of the link-edit steps will receive IEW0461 errors, because some links could not be resolved at this time.

The report produced on my system from this job can be viewed at: SMPJOB06.  Note that I have only included output from SMP4 in this listing in order to conserve space and show only the most relevant information.

 

Now we need to clean up following the loading and ACCEPTing of the USERMODs.  The job to accomplish that is SMPJOB07.

To submit the job to MVS, on the command line in the console window where Hercules was started, type the command devinit 12 jcl/smpjob07.jcl eof and press Enter.  

This job takes 0.03 minute to complete.  The expected return code for the single step of this job is:

condcode.rexx prt00e.txt smpjob07

Searching PRT00E.TXT for MVS Job Name SMPJOB07

Step Name    Proc Step Name    Completion Code
---------    --------------    ---------------
SMP          DLBUCL            0004 <--

As with the product/PTF REJECT job, the completion code of 0004 is expected, because SMP4 is again not happy that we are deleting elements that have not been applied.

The output produced on my system from this job can be viewed at: SMPJOB07.

 

Build ICKDSF Utility and Re-Link IFOX00

The ICKDSF (Device Support Facility) utility is not present in the starter system, but having it available is the easiest way to write IPL records onto the target MVS 3.8 System Residence DASD volume, which you will be doing in the next phase.  All the component parts required to add ICKDSF to the starter system are present in the Distribution Libraries.  

For unknown reasons, the system assembler (IFOX00) installed on the MVS Starter System will get occasional 0C1 and 0C4 abends during the System Generation.  Like the ICKDSF utility, we have all the components available in the Distribution Libraries to rebuild IFOX00, so we will do that also in this job.

The job to re-link these programs is SMPJOB08.  To submit the job to MVS, on the command line in the console window where Hercules was started, type the command devinit 12 jcl/smpjob08.jcl eof and press Enter.  

This job completes two tasks.  First it extracts information from the distribution libraries needed to build a load module to add to SYS1.LINKLIB on the START1 3330 volume.  Using this information, it builds the jobstream for another job - SMPJOB09 - which will use the Link Editor to build ICKDSF and rebuild IFOX00.  SMPJOB09 will be submitted to the internal reader.  

The second task SMPJOB08 completes is to copy another module from the distribution libraries into SYS1.SVCLIB on the START1 volume; this module is an SVC that is required by ICKDSF when it is executing..  Both of these target libraries on the MVS Starter System that are to be modified contain expiration dates which have not been reached, so the IEC507D message will be presented for each library.  You will receive IEC507D messages before the libraries are to be modified:

Respond U to each of these messages on the MVS console (in the telnet client window).  

SMPJOB08 takes .32 minutes to complete, and SMPJOB09 takes .07 minutes to complete.  The expected return codes for the two jobs are:

condcode.rexx prt00e.txt smpjob08

Searching PRT00E.TXT for MVS Job Name SMPJOB08

Step Name    Proc Step Name    Completion Code
---------    --------------    ---------------
ASM                            0000
IDCAMS                         0000
IEBGENER                       0000
IEBCOPY                        0000
Searching PRT00E.TXT for MVS Job Name SMPJOB09

Step Name    Proc Step Name    Completion Code
---------    --------------    ---------------
LK           LINK              0000
LK           LINK              0000

 

Among the first set of messages printed for job SMPJOB08, there was an informational message printed on the console from commands embedded in the JCL:

$HASP104 SMPJOB08 ************************************************************
$HASP104 SMPJOB08 * AN IPL IS REQUIRED AFTER THIS JOB HAS COMPLETED          *
$HASP104 SMPJOB08 ************************************************************

In order to execute the load module for ICKDSF which has been added to the system load library of the MVS starter system, it is necessary to shut down and re-IPL the starter system.  This is a good time, because we need to create some additional DASD volumes and it would be a great time to take a snapshot backup.  There are now five DASD volumes in the dasd directory.  After you have shut down MVS and Hercules, simply make a copy of them with your favorite archive program - WinZip, PKZIP, tar - or copy them onto a CD-rom blank.  Then if you encounter a catastrophic error, it is simple to come back to this point by restoring your backup copy.

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:

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.  In the telnet client window type the command quiesce 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.  

On the command line in the console window where Hercules was started, type the command quit and press ENTER.

Hercules will close all the files for the emulated mainframe devices and terminate.  You may close your telnet client.

I strongly suggest that you save the SYSOUT listings from this process, which you have been examining to verify completion codes for each step.
When you proceed with the next step and restart Hercules, the contents of this file will be overwritten.  If there were errors that you did not catch
that prevent a successful System Generation from completing, having the output from building the Distribution Libraries will greatly assist you in
determining the problem and reaching a successful resolution.  Simply use the command appropriate for your host Operating System to rename
the file 'prt00e.txt' to some other name, such as 'DistributionLibrarySYSOUT.txt'.

And now you may proceed to the next step, Performing a System Generation.  So, when you are ready, proceed to the next step - Performing a System Generation


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:


Return to Site Home Page Frequently Asked Questions


This page was last updated on March 27, 2017 .