Installing MVS 3.8Using SMP4 to Build the Distribution Libraries
First, you need to re-IPL the starter system, which now has the SMP4 load modules and procedures installed that you will be using to reload the MVS distribution libraries. The hardware environment will be the same as before, so you will be using the same configuration file. 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 starter system 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:
and press ENTER. In the telnet client window (which is the MVS console), you should see: 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:
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. As you did following the prior IPL, you need to reserve the volume SMP001 for private use. On the telnet client window, type the command:
and press ENTER Note that there is a space between the m and the numeral one in this response. There will be some informational messages displayed as the MOUNT task is started, but none of the messages should 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 the mount task should be 0000 and will appear in the prt00e.txt file as a line identical to: IEF142I MOUNT 148 - STEP WAS EXECUTED - COND CODE 0000 or, if you use condcode.pl (search for Job Name mount):
Now you are ready to submit the first job.
|
Searching prt00e.txt for MVS Job Name smpjob00 Step Name Proc Step Name Completion Code --------- -------------- --------------- IEHPROGM 0008 <-- |
The first job you will run allocates all of the datasets needed by SMP4. They will be placed on the SMP001 DASD volume and catalogued in the master catalog on the starter system. The DD statements for the datasets are contained in one of the procedures that was loaded into SYS1.PROCLIB from the AWS tape smp4b. The DD statement for one dataset - SYS1.AIMAGE - is missing from that procedure, and I have added it in the jobstream following the statement to invoke the procedure. On the Hercules' console, type the command:
devinit 012 jcl/smpjob01.jcl eof
and press ENTER to submit the job to MVS/JES2. The job will only take a few seconds to run. The single step of this job should complete with a condition code of zero. The line in the output which indicates this is:
IEF142I SMPJOB01 DLBALLOC DLBALLOC - STEP WAS EXECUTED - COND CODE 0000
or, if you use condcode.pl:
Searching prt00e.txt for MVS Job Name smpjob01 Step Name Proc Step Name Completion Code --------- -------------- --------------- DLBALLOC DLBALLOC 0000
The next job initializes the SMP environment. Information is written into the SMP datasets about the target system, processing options, and programs and parameters to be used during the SMP process. On the Hercules' console, type the command:
devinit 012 jcl/smpjob02.jcl eof
and press ENTER. Because the SMP4 statements include commands to delete any existing information in the datasets before initializing the contents (in event you needed to rerun this job), the condition code for the single step of this job may be either 0008 or 0000. If there is no information in the datasets to delete, the completion code of 0008 simply means that the delete functions did not find anything to delete. The line in the output which indicates this is:
IEF142I SMPJOB02 SMP DLBUCL - STEP WAS EXECUTED - COND CODE 0008
or, if you use condcode.pl:
Searching prt00e.txt for MVS Job Name smpjob02 Step Name Proc Step Name Completion Code --------- -------------- --------------- DLBUCL SMP 0008 <--
The report produced on my system from this job can be viewed at: SMPJOB01. Notice the error messages indicating that there was nothing for the delete commands to process.
The next job receives the MVS product tape - zdlib1 - into the SMP datasets. This tape is one of the files contained in the MVS 3.8J distribution you should have already downloaded (or obtained on CD-ROM) and should be located in your tape/ directory. Here is a directory of the contents of zdlib1:
Processing AWSTAPE file: ZDLIB1 Serial Number from VOLume 1 label: MVS38JFile MVT Dataset RECFM BLKSIZE LRECL BlocksExpected BlocksRead 0001 SMPMCS B 6,480 80 274 274 0002 EER1400.F1 S 6,480 6,476 373 373 0003 EER1400.F2 S 6,480 6,476 14 14 0004 ESY1400.F1 S 6,480 6,476 183 183 0005 ESY1400.F2 S 6,480 6,476 16 16 0006 EST1102.F1 S 6,480 6,476 31 31 0007 EST1102.F2 S 6,480 6,476 18 18 0008 FBB1221.F1 S 6,480 6,476 314 314 0009 FBB1221.F2 S 6,480 6,476 417 417 0010 FDS1133.F1 S 6,480 6,476 4 4 0011 FDM1133.F1 S 6,480 6,476 526 526 0012 FDM1133.F2 S 6,480 6,476 20 20 0013 EDM1102.F1 S 6,480 6,476 55 55 0014 EDM1102.F2 S 6,480 6,476 708 708 0015 EDM1102.F3 S 6,480 6,476 1,102 1,102 0016 EBB1102.F1 S 6,480 6,476 79 79 0017 EBB1102.F2 S 6,480 6,476 1,718 1,718 0018 EBB1102.F3 S 6,480 6,476 1,567 1,567 0019 ETV0108.F1 S 6,480 6,476 73 73 0020 ETV0108.F2 S 6,480 6,476 30 30 0021 EUT1102.F1 S 6,480 6,476 20 20 0022 EUT1102.F2 S 6,480 6,476 147 147 0023 ETI1106.F1 S 6,480 6,476 72 72 0024 ETI1106.F2 S 6,480 6,476 17 17 0025 FDZ1610.F1 S 6,480 6,476 4 4 0026 FDZ1610.F2 S 6,480 6,476 104 104 0027 FDZ1610.F3 S 6,480 6,476 59 59 0028 FDS1122.F1 S 6,480 6,476 134 134 0029 FDS1122.F2 S 6,480 6,476 4 4 0030 EXW1102.F1 S 6,480 6,476 16 16 0031 EXW1102.F2 S 6,480 6,476 8 8 0032 EVT0108.F1 S 6,480 6,476 651 651 0033 EVT0108.F2 S 6,480 6,476 293 293 0034 ETC0108.F1 S 6,480 6,476 309 309 0035 ETC0108.F2 S 6,480 6,476 572 572 0036 EMS1102.F1 S 6,480 6,476 368 368 0037 EMS1102.F2 S 6,480 6,476 24 24 0038 EJE1103.F1 S 6,480 6,476 1,331 1,331 0039 EJE1103.F2 S 6,480 6,476 69 69 0040 EJE1103.F3 S 6,480 6,476 9 9 0041 ESU1102.F1 S 6,480 6,476 109 109 0042 EPM1102.F1 S 6,480 6,476 49 49 0043 EPM1102.F2 S 6,480 6,476 14 14 0044 EMI1102.F1 S 6,480 6,476 99 99 0045 EMI1102.F2 S 6,480 6,476 61 61 0046 EIP1102.F1 S 6,480 6,476 365 365 0047 EIP1102.F2 S 6,480 6,476 63 63 0048 EGS1102.F1 S 6,480 6,476 15 15 0049 EGS1102.F2 S 6,480 6,476 73 73 0050 EGA1102.F1 S 6,480 6,476 110 110 0051 EGA1102.F2 S 6,480 6,476 43 43 0052 EDS1102.F1 S 6,480 6,476 278 278 0053 EDS1102.F2 S 6,480 6,476 140 140 0054 EDE1102.F1 S 6,480 6,476 52 52 0055 EDE1102.F2 S 6,480 6,476 101 101 0056 EBT1102.F1 S 6,480 6,476 149 149 0057 EBT1102.F2 S 6,480 6,476 120 120 0058 EAS1102.F1 S 6,480 6,476 11 11 0059 EAS1102.F2 S 6,480 6,476 45 45 0060 FUT1133.F1 S 6,480 6,160 12 12 0061 EML1102.F1 S 6,480 6,160 8 8 0062 EML1102.F2 S 6,500 6,496 249 249 0063 EMF1102.F1 S 6,480 6,476 62 62 0064 EMF1102.F2 S 6,480 6,476 5 5
As you can see, the tape contains a lot of data to be processed.
On the Hercules' console, type the command:
devinit 012 jcl/smpjob03.jcl eof
and press ENTER to submit the job to MVS for execution. A series of messages will be displayed as the job is read in and begins processing:
The asterisk in front of message IEF238D indicates operator decision and action is required by MVS. The particular message encountered here has changed as of release 3.01 of Hercules; in prior releases the tape drive at address 170 was detected during IPL as being online and the message issued was for a simple tape mount. This message is asking for a tape device to be made available (varied online) to the operating system; step SMP of the job SMPJOB03 is attempting to open an existing file on a tape with the volume serial number MVS38J (the MVS base product tape). So, in the Hercules command window, type the command:
devinit 170 tape/zdlib1.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 - zdlib1.het in the tape directory. Note: If you have a non-compressed tape, the extension will be .aws rather than .het.
The tape is now ready to be read by the starter system, so in the telnet window (on the MVS starter system console), type the command:
r 1,170
and press ENTER to instruct MVS to utilize the tape drive at address 170. Note that there is a space between the r and the numeral one in this response. The program will process the tape, creating a number of work datasets containing the data from the files on the tape. Because of the amount of data on the tape to process, this job will take a while to run (on my 1.0 gHz Athlon, the clock time is just under 10 minutes). At the conclusion of the job, the tape will be unloaded, and you will see another series of messages:
The single step of this job should complete with a condition code of zero. The line in the output (contained in the printer file prt00e.txt) which indicates this is:
IEF142I SMPJOB03 SMP DLBUCL - STEP WAS EXECUTED - COND CODE 0000
or, if you use condcode.pl:
Searching prt00e.txt for MVS Job Name smpjob03 Step Name Proc Step Name Completion Code --------- -------------- --------------- DLBUCL SMP 0000
There will be a huge volume of output from this job (nearly 40,000 lines), but to verify successful completion, search for 'RECEIVE SUMMARY REPORT' (note 2 spaces between each word), which occurs on page 454. This segment of the report should look like:
RECEIVE SUMMARY REPORTSYSMOD STATUS TYPE ------------------------EAS1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED EBB1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED EBT1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED EDE1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED EDM1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED EDS1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED EER1400 RECEIVED FUNCTION SMPTLIB DATASETS LOADED EGA1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED EGS1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED EIP1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED EJE1103 RECEIVED FUNCTION SMPTLIB DATASETS LOADED EMF1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED EMI1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED EML1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED EMS1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED EPM1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED EST1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED ESU1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED ESY1400 RECEIVED FUNCTION SMPTLIB DATASETS LOADED ETC0108 RECEIVED FUNCTION SMPTLIB DATASETS LOADED ETI1106 RECEIVED FUNCTION SMPTLIB DATASETS LOADED ETV0108 RECEIVED FUNCTION SMPTLIB DATASETS LOADED EUT1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED EVT0108 RECEIVED FUNCTION SMPTLIB DATASETS LOADED EXW1102 RECEIVED FUNCTION SMPTLIB DATASETS LOADED FBB1221 RECEIVED FUNCTION SMPTLIB DATASETS LOADED FDM1133 RECEIVED FUNCTION SMPTLIB DATASETS LOADED FDS1122 RECEIVED FUNCTION SMPTLIB DATASETS LOADED FDS1133 RECEIVED FUNCTION SMPTLIB DATASETS LOADED FDZ1610 RECEIVED FUNCTION SMPTLIB DATASETS LOADED FUT1133 RECEIVED FUNCTION SMPTLIB DATASETS LOADED
which indicates that the MVS product elements were all successfully copied from the tape into the SMP datasets. Note that this job also creates some work datasets on DASD volume WORK02.
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 all of them.
The next job receives a tape containing the PTFs that need to be applied (of those that we currently have) that will ensure the generated MVS 3.8 system is as stable as possible. I have extracted the PTFs that must be applied from a larger group that has been collected by the Hercules' community. There is another page on this site (MVS PTFs) that has most of the collection if you are interested in pursuing the elusive PTFs, but the tape I have included here is much smaller and will suffice for the almost everyone installing MVS under Hercules. (Be aware that the entire PTF collection is more than 20 megabytes on a single compressed AWS tape. Also, attempting to accept all of the PTFs will introduce additional problems, so unless you have experience resolving PTF interdependencies, you should stick with the minimum required set.)
Here is a directory of the contents of mvs38jptfs.het (which is included in my installmvs archive):
Serial Number from VOLume 1 label: 200801File MVT Dataset RECFM BLKSIZE LRECL BlocksExpected BlocksRead 0001 MVS38J.PTFS B 7,200 80 150 150
To mount the tape on the tape drive defined in the starter system, on the Hercules' console, type the command:
devinit 170 tape/mvs38jptfs.het
and press ENTER. On the Hercules' console, type the command:
devinit 012 jcl/smpjob04.jcl eof
and press ENTER. This job should take less than a minute to run. The single step of this job should complete with a condition code of 0000. The line in the output which indicate this is:
IEF142I SMPJOB04 SMP DLBUCL - STEP WAS EXECUTED - COND CODE 0000
or, if you use condcode.pl:
Searching prt00e.txt for MVS Job Name smpjob04 Step Name Proc Step Name Completion Code --------- -------------- --------------- DLBUCL SMP 0000
Because all of the cover letters and SMP directives are listed, this job produces a lot of information, but the section that indicates which PTFs were accepted should look like:
RECEIVE SUMMARY REPORTSYSMOD STATUS TYPE ------------------------UY10657 RECEIVED PTF UZ56759 RECEIVED PTF UZ57385 RECEIVED PTF UZ57919 RECEIVED PTF UZ59433 RECEIVED PTF UZ61200 RECEIVED PTF UZ61346 RECEIVED PTF UZ61349 RECEIVED PTF UZ61367 RECEIVED PTF UZ61637 RECEIVED PTF UZ61918 RECEIVED PTF UZ62088 RECEIVED PTF UZ62873 RECEIVED PTF UZ64216 RECEIVED PTF UZ66867 RECEIVED PTF UZ67122 RECEIVED PTF UZ67182 RECEIVED PTF UZ67485 RECEIVED PTF UZ68825 RECEIVED PTF UZ68882 RECEIVED PTF UZ69168 RECEIVED PTF UZ71054 RECEIVED PTF UZ71613 RECEIVED PTF UZ71903 RECEIVED PTF UZ72152 RECEIVED PTF UZ72384 RECEIVED PTF UZ74083 RECEIVED PTFHMA2050 RECEIVE PROCESSING COMPLETED - HIGHEST RETURN CODE IS 00
Now that all the product elements and required 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, from which the target MVS 3.8j system will be generated.
On the Hercules' console, type the command:
devinit 012 jcl/smpjob05.jcl eof
and press ENTER. On my system, this job takes just over 31 minutes clock time. On a slow system, this job could take significant time. The single step of this job should complete with a condition code of 0004, since it is necessary to use overrides because some corequisite/prerequisite PTFs are still missing. The line in the output which indicates this is:
IEF142I SMPJOB05 SMP DLBUCL - STEP WAS EXECUTED - COND CODE 0004
or, if you use condcode.pl:
Searching prt00e.txt for MVS Job Name smpjob05 Step Name Proc Step Name Completion Code --------- -------------- --------------- DLBUCL SMP 0004 <--
The report produced on my system from this job can be viewed at: SMPJOB05. 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 40,000 lines.
The final step of the SMP process is to clean up the system by deleting the work datasets that have been created on WORK02. On the Hercules' console, type the command:
devinit 012 jcl/smpjob06.jcl eof
and press ENTER. This job should take less than a minute to run. The single step of this job should complete with a condition code of 0004, because what you are doing in this step is REJECTing the modules you did not apply, and you didn't actually apply any of them -- you accepted them without applying, which is all that is required to build the MVS distribution libraries. The line in the output which indicates this is:
IEF142I SMPJOB06 SMP DLBUCL - STEP WAS EXECUTED - COND CODE 0004
or, if you use condcode.pl:
Searching prt00e.txt for MVS Job Name smpjob06 Step Name Proc Step Name Completion Code --------- -------------- --------------- DLBUCL SMP 0004 <--
The output produced on my system from this job can be viewed at: SMPJOB06.
A VTOCLIST of the completed SMP001 Volume on my system can be viewed at SMP001.
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, 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, so I have provided a jobstream to build it.
On the Hercules' console, type the command:
devinit 012 jcl/ickdsfg.jcl eof
and press ENTER. This job should take less than a minute to run. The return code from all four steps should be 0000. The lines in the output which indicate this are:
IEF142I ICKDSFG ASM - STEP WAS EXECUTED - COND CODE 0000 IEF142I ICKDSFG IDCAMS - STEP WAS EXECUTED - COND CODE 0000 IEF142I ICKDSFG IEBGENER - STEP WAS EXECUTED - COND CODE 0000 IEF142I ICKDSFG IEBCOPY - STEP WAS EXECUTED - COND CODE 0000
or, if you use condcode.pl:
Searching prt00e.txt for MVS Job Name ickdsfg Step Name Proc Step Name Completion Code --------- -------------- --------------- ASM 0000 IDCAMS 0000 IEBGENER 0000 IEBCOPY 0000
The first step uses a System Generation macro from the distribution library to generate the linkage editor statements required to link ICKDSF. The second step builds a complete jobstream by appending a JOB statement, an EXEC statement, and some DD statements to the generated statements from the first step. The third step submits this manufactured jobstream to the internal reader, and the resulting job - ICKDSFL - will begin execution concurrently with the fourth step of this job. The fourth step copies an SVC required by ICKDSF from the distribution library SYS1.AOSU0 into the starter system's SVC library.
The manufactured jobstream that link edits ICKDSF - ICKDSFL - should get a return code of 0000:
IEF142I ICKDSFL LK LINK - STEP WAS EXECUTED - COND CODE 0000
or, if you use condcode.pl:
Searching smp1.prt00e.txt for MVS Job Name ickdsfl Step Name Proc Step Name Completion Code --------- -------------- --------------- LINK LK 0000
The reason you are building ICKDSF here is that the starter system must be shut down and re-IPLed before you can execute the utility. If you will remember, you had to do the same thing when you built SMP4.
This would be an excellent place to back up the work you have done. Not only does it provide a safety line in case of an error during the complex phase coming up, you can later restore to this point if you have applied user modifications to the distribution libraries that you want to remove easily. Here is a backup (and restore) procedure I use that performs under MVS (either the starter or MVS 3.8): SMP Backup/Restore.
Of course, once you have shut down the starter system and Hercules (following step), you can use a host OS utility (xcopy, WinZip, or tar) to make a backup copy of the SMP001 DASD volume image.
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.
The next step is building a custom MVS 3.8 system using the distribution libraries you built in this step. 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:

This page was last updated on February 19, 2008 .