c3270-3.2.tar.gz
archive in the
linux
subdirectory on the CD. This archive contains the full package, including the
documentation. It is strongly recommended that you read the documentation, as it is not necessarily
intuitive how c3270 is operated. A copy of the documentation is also in the
How To ... documentation../configureand then
makeNote, though, that installation of c3270 can easily be done by the setup script, thus building of c3270 is not normally required.
Note, that you need two tn3270 sessions for OS consoles, and one to n client sessions for TSO sessions. These must be started before you IPL the system.
When you installed the Tur(n)key sysgen system, a target directory (default mvs38j) was created with a few subdirectories in it. The directory structure is like this:
+ mvs88j installation directory ! +------ conf configuration and control files ! +------ dasd pregenerated dasd images ! +------ hercules binaries needed for Hercules execution ! +------ jcl contains the SYSGEN Job Control Files ! +------ log contains log files created during sysgen ! +------ scripts shell scripts used during installation ! +------ shadow directory for cckd shadow files ! +------ snapshot Snapshots made during sysgen ! +------ tapes Directory for tape files
When you need to run command files, you will find them in the "scripts" directory. The command files for windows have the extension ".BAT", while the Linux scripts have no extension at all. Actually, most of the Windows command files don't really do very much, except invoke the bash interpreter which in turn runs the Linux shell script
Note that the Hercules version must have support for compressed disks and tapes included, as all files used by this generation are compressed (using zlib)
If in doubt, use the Hercules version provided in this package, it has the necessary compression enabled
Now the real fun starts. You first have to build a starter system. Don't worry, this is really not difficult. Just run the Installation script
This scripts unpacks the starter system from an archive provided in the "snapshot" subdirectory of the CD-ROM. It then builds some more DASD images
You now should start a telnet client to connect to the Hercules instance. Switch to another Windows or Linux session and invoke the starttelnet script (which starts the telnet client).
If you want to invoke telnet directly make sure that your telnet client connects to port 3270 on the machine where Hercules is running. (Actually, the port number is set during the Tur(n)key installation. I am using the default (3270) here, but you could have chosen a different one. To start a telnet client, you could enter
telnet localhost 3270or, if the Hercules system is on another machine than your telnet client:
telnet hercbox 3456where hercbox is the name of the Hercules machine and 3456 is the portnumber that you selected during installation
Please note that "3270" has no relation to the device type of the console you want to connect to the Hercules engine, it is the port number you use for the connection. "3270" is as good as any other availble, non-reserved port number.
Once the Hercules engine is started, and the telnet client has connected to it, you can now IPL the stand alone init utility. On the Hercules console you enter
ipl 00aor, on the semi-graphical console that you reach by pressing the ESC key you enter
l bAfter a short while the system should enter an enabled wait. Switch over to the telnet console and press the [enter] key once You will see something like:
IBC105A DEFINE INPUT DEVICE. DASDI 7.92 HHC901I Enter input for console device 0009to which you answer (by typing at the telnet console):
input=1442,00cand again pressing the [ENTER] key once. The telnet console should now show:
MVSRES JOB 'INITIALIZE 3350 MVSRES VOLUME' MSG TODEV=1052,TOADDR=009 DADEF TODEV=3350,TOADDR=148,IPL=NO,VOLID=MVSRES,BYPASS=YES VLD NEWVOLID=MVSRES,OWNERID=Hercules VTOCD STRTADR=1,EXTENT=29 ENDand similar messages. Be patient, the system is now initializing the disk packs, and that will take a few minutes. When you see the message
IBC163A END OF JOB. LASTCARDthen the disks are initialized, and you can now terminate the Hercules engine and the telnet client
The Hercules engine is terminated either by typing
quiton the Hercules console, or, if you are using the semi-graphical console, by pressing
W(for poWer off) and replying to the prompt.
By the way, if you now check the scripts directory, you will see that the script ins0010 has disappeared - It relocates itself automatically into the subdirectory done. Why? Well, this makes it more difficult for you to run the script again accidentially, wiping out all the work done....
Invoking the command script ins0020 will now (again) start the Hercules emulator, but with a different configuration file. This time, after the telnet client has connected, you will want to start the MVS starter system by entering
ipl 150where 150 is the device (cuu) address. on the Hercules console!!.
l eto IPL off device E (where E is the device shortcut letter After a few seconds, the telnet session should show
IEA101A SPECIFY SYSTEM PARAMETERS FOR RELEASE 03.70.VS2 HHC901I Enter input for console device 001FNow you enter
r 00,clpabecause this is the first IPL of the starter system. If you start the system at some later time, you can just press the [ENTER] key as a CLPA is not generally required then
After about a minute or two you should see
IEF165I // START JES2 IEE351I SMF SYS1.MAN RECORDING NOT BEING USED *00 $HASP426 SPECIFY OPTIONS - HASP-II, VERSION JES2 4.0To which you reply
r 00,format,noreqAgain, this is only required because this is the first time that JES2 gets started, and the spool dataset SYS1.HASPACE needs to be formatted. If you start the system later, you would enter
r 00,,noreqBack to our IPL, though. A message will now be displayed
*01 $HASP436 REPLY Y OR N TO CONFIRM CHECKPOINT RECORD CHANGEto which your reply is
r 01,yAgain, you need to be patient, JES2 is now formatting the SPOOL0 volume. When everything has been formatted, you will see
IEE041I THE SYSTEM LOG IS NOW ACTIVE $HASP100 INIT ON STCINRDR $HASP100 INIT ON STCINRDR $HASP100 INIT ON STCINRDR $HASP373 INIT STARTED $HASP309 INIT 1 INACTIVE ******** C=A $HASP309 INIT 2 INACTIVE ******** C=BA $HASP309 INIT 3 INACTIVE ******** C=CBA $HASP373 INIT STARTED $HASP373 INIT STARTED $HASP099 ALL AVAILABLE FUNCTIONS COMPLETEAlso, Hercules will now feed a job with jobname sg0000 to the started JES.
You should now enter the following JES commands
$SPRT1 $SPUNCH1to enable printing/punching of job output.
After the job sg0000 has completed,
you will find the output in the prt
subdirectory with the name sg0000.lst
Expected RC |
---|
0 |
The JCL to be run for the system generation are in the jcl subdirectory. To submit a job in file sg1234 you have three possibilities:
Sometimes it is nice to see the JES2 assigned job numbers when diplaying MVS information via operator commands. You can achieve this by entering
$T OSC1,D=JIf you would also like to see a timestamp on every message, then enter
$T OSC1,D=Tinstead
You might also consider to issue the MVS command
mn jobnames,twhich tells MVS to monitor and report on start and end of jobs.
All jobs that need to be run on the starter system have names beginning with sg followed by a number. Other jobs in the jcl directory will be run from the generated MVS system later
The output of jobs run go to the printer device at address 00E. This device is usually connected to a file prt00e.prt in the prt subdirectory. Using one of the folllowing commands
Every jobstep generates a Return Code (RC), a number between 0 and 4095. Usually, a 0 (zero) means success, and if the RC gets larger, it means a more or less serious error. Unfortunately the RC messages get sometimes overlooked. Therefore I have provided a shell script (cond) that will extract only the Return code messages and display those. You should copy this script from the scripts directory into a directory of your path, like /usr/local/bin
The SMP4 that is distributed with MVS is unfortunately unfit for system generation!! Fortunately, a replacement is available. This job will copy it from a work file into the starter system's SYS1.LINKLIB.
While we are updating some system files, we also add a few procedures to the system procedure library
devinit 012 ../jcl/sg0010 eofAfter this job is run, an IPL is required before SMP4 can be used.
Expected RC |
---|
0 |
As already mentioned an IPL is now required. No, don't press ctrl-alt-del yet! At the telnet screen (which is the MVS master console) enter the commands
$p $pjes2 z eod quiesce
We don't really need it right now, but you should do it anyhow, just to learn about it: Terminate
the Hercules emulator (quit
on the Hercules console or poW
er on the
emi-graphical console. We can now
restart the starter system with a warm-start:
The script file ins0030 has a twin, called startstarter (easier to remember). It can be used to start the MVS starter system. Remember that you will have to start a telnet client on port 3270 (using the tn script or the starttelnet script)
When the message
IEA101A SPECIFY SYSTEM PARAMETERS FOR RELEASE 03.70.VS2 HHC901I Enter input for console device 001Fappears, you now (remember, this is a warm start) just press the [ENTER] key. After a few moments you will see
IEF165I // START JES2 IEE351I SMF SYS1.MAN RECORDING NOT BEING USED *00 $HASP426 SPECIFY OPTIONS - HASP-II, VERSION JES2 4.0To which you reply
r 00,,noreqShortly afterwards the warm start is complete.
Please note that the Reader is now set up as a socket device, with other words you can submit jcl streams via the sub shell script. You could copy the script sub into a directory in your path, like /usr/local/bin
Note that the script ins0030 does not move itself
to the done
subdirectory, as it will be needed more than once
The MVS system to be generated needs a mastercatalog. We will place it on the new system residence, and connect it to the starter system as a user catalog. Just run job sg0020 and see what happens...
Expected RC |
---|
0 |
The DLIB (=Distribution LIBrary files) contain the building parts out of which the target system (the MVS to be generated) will be built. We allocate empty DLIB files using job sg0030. Later, these files will be filled via SMP4. Therefore we need to initialize the SMP environment as well.
Expected RC |
---|
0 for all but last step |
8 for last step on first run |
0 for last step repeated |
Now we have to feed the product tape to SMP, which will unload the parts from the distribution tape and place it into temporary libraries on the MVSRES volume. (That is the volume that we specified on the TLIB parameter of the SMP4 procedure in job SG0010).
The distribution tape is in the file zdlib1.het, and you load the tape drive by entering
devinit 170 pathname/zdlib1.hetwhere pathname is the path to the directory containing the tape file. The file is usually in the tapes subdirectory of the CD-ROM. Now submit job sg0040. Be patient, this job has a lot to do, and it takes quite some time to complete!
Expected RC |
---|
0 |
Okay, so the long wait is over. What are we going to do now? Well, it is time for a snapshot.
You have invested quite a big amount of time and effort so far. Wouldn't it be a shame to loose it all, just because, like, by accident you reran command file ins0010? Better safe than sorry, thus let us create a backup.
First shut down MVS and end the Hercules engine. Then invoke command file ins0040 which will use TAR to create an archive in the directory snapshot. This archive contains the contents of the following subdirectories:
writsnap
shell script.
A volume can be recovered from a snapshot using command script restsnapvol. The syntax is
restsnapvol {snapshot} {volume} ! ! ! +--- volume of disk to restore +-------------- snapshot number (01, 02, etc) Example: restsnapvol 01 mvsres to restore volume MVSRES from snapshot # 1
A complete snapshot can be restored using the command script restsnap. The syntax is
restsnap {snapshot} ! +-------------- snapshot number (01, 02, etc) Example: restsnap 01 to restore the complete snapshot # 1After the snapshot is complete, you can now restart Hercules, the telnet client, and MVS
No software product is without bugs. This is (especially) true for MVS. In the course
of time fixpacks etc have been developed. IBM call the fixes PTFs. Ever wondered,
what PTF stands for? Well, PTF = Program Temporary Fix
Okay, some of the fixes are available to us. A tape with accumulated PTFS is
available, with the name of MVSPTF. Submit the jog sg0050, and a mount message
will promptly appear on the MVS console.
The emulated tape file has a filename of allptfs.het
and is in the
tapes
directory on the distribution CD-ROM.
You can now load the tape drive from
the Hercules console by entering
devinit 170 tapedir
/allptfs.het
The maintenance on the tape will now be received. This will take some time, as there are many hundreds of PTFs loaded into the system.
Expected RC |
---|
0 |
For some compelling, SMP related reason it is necessary to install one specific product before all the others. Install in this moment means: Load the information from the SMPPTS and the SMPTLIBS (where they have been placed by the RECEIVE commands in SG0040-SG0050) onto the DLIB files on MVSRES.
This will be done using the ACCEPT command of SMP. Usually, though, a SYSMOD will not be ACCEPed right away, but needs to be put into the Target Sytem for testing first, which would be done via an APPLY command. But we do not have a target system in the moment. Therefore the parameter NOAPPLY on the ACCEPT command is required to tell SMP that the FMID should be ACCEPTed even though it has not yet been APPLYed.
If you don't want your SMP jobs to run forever, use DIS(WRITE) as an additional option on the ACCEPT command. This keeps the directory of the highly used PDS SYS1.SMPACDS in memory, instead of incurring gazillions of disk I/O operations. If things go wrong, though, your SMPACDS might be seriously broken... Guess why we did a Snapshot in the previous step!
Expected RC |
---|
0 |
The next job will install the BCP (=Base Control Program) plus a lot of related FMIDs (Functions) needed by MVS. This is a rather big job, and on my system (500 MHz, 256MB) it took about 3hours 20 minutes. Thus, have a break, watch the blinkenlights, and be patient
I also ran the same job under Linux on a 150MHz, 80MB Thinkpad. It was not exactly fast.....
Last message from the processor speed contest: I just ran the job on a 1.7 GHz Pentium IV. Elasped time was 28 minutes. Quite impressive......
Expected RC |
---|
0 |
We now install the networking components of MVS. The job that needs to be run is sg0080.
Expected RC |
---|
0 |
We wil now install the processor support group. A few Load modules are created here via the linkage editor, and therefore we will have a return code of 4 instead of the usual zero return code.
Expected RC |
---|
4 |
The Job entry subsystem is straight forward in terms of installation. Just run job sg0100 and expect a return code of 0.
Expected RC |
---|
0 |
Sometimes the sysmod relationship entries in a PTF are not quite perfect. To fix this for two of our PTFs we need to run sg0110.
Expected RC |
---|
0 |
We need to create a few datasets that will be used during the Sysgen process. This is accomplished by running job sg0120
Expected RC |
---|
0 |
Sometimes the assembler provided by the starter system has the hiccups and randomly abends with S0C1 or S0C4. We have all the parts to build a new assembler, and that is exactly what SG0130 is doing. After this job has completed successfully (we expect RC=0) then you must shutdown MVS and Hercules! If you forget this, various abends (like S106-0E) may occurr.
Expected RC |
---|
0 |
As already mentiened, MVS needs to be shutdown now. Also, shutdown the Hercules engine. We need to run two scripts before we can start Hercules and MVS again:
The MVS system will need space for page datasets. We will place them on 3340 DASD. Those disks will be created using the script ins0050. We don't expect any errors from this script.
After such a massive change to our system it might be a good idea to take another Snapshot. Shutdown MVS and the Hercules engine, then run command script ins0060, which puts new files into the snapshot directory. Don't throw away the previous snapshot files - you never know....
The brightest and finest DASD type supported by MVS 3.8J was the 3350 DASD, which is perfect enough, usually. Now, there are quite a few libraries around (like on the CBT tape which were built for more modern DASD types, like the 3380 or the 3390 DASD types. Enter Jim Morrison(no, not the one who is permanently in Paris). He has done some marvellous work and retrofitted support for 3375, 3380, and 3390 DASD devices into MVS 3.8. While there might be still a few rough edges, these modifications allow us to use those larger DASD files for general purpose processing.
Why would we want/need those devices? Many of the CBT provided programs, utilities, etc come in XMIT format for 3380 and/or 3390 devices, and the blocksizes don't really work for 3350 devices.
For more information you might want to look at Jim's web page
Running job sg0140 will RECEIVE the modifications into our new system.
This job needs a the tape with the filename j90009.het
. It is located on the CD-Rom in the
tapes
subdirectory
Expected RC |
---|
0 |
No harm is done yet. In order to actually do the necessary modifications to system macros etc you need to run the job sg0150
The DASD support modifications are implemeted as USERMODs. What is the problem? Those USERMODS need
to be ACCEPTed, as they modify the system generation (SYSGEN) process. And IBM doesn't know
about those retrofitting USERMODs, with other words, PTFs that affect the same elements that
are modified by the USERMODs will get an ID check and cannot be installed, unless we do some
additional processing. Thus, if you are faint of heart, you might want to skip this step.
Remember, though, that in this case
Expected RC |
---|
4 |
HMA2471 BLDL FAILED IN LIBRARY AOSD0 FOR LOAD MODULE UTRK3390 IN SYSMOD M023000 HMA2471 BLDL FAILED IN LIBRARY AOSC5 FOR LOAD MODULE USRDDT00 IN SYSMOD M024001 HMA2471 BLDL FAILED IN LIBRARY AOSD0 FOR LOAD MODULE UTRKCALC IN SYSMOD M024001which indicate this fact. You can safely ignore these messages and RC=4
We have installed all the functions of MVS available to us. The service (PTFs) has only be RECEIVED, we will implement them at a later stage.
Finally! There are quite a few comments in the stage1 assembly deck, and I would recommend that you take a look at the deck before running job sg0160. One paramter might need to be adjusted: Around line 506 you will find an entry like
which controls the time setting for the Hercules machine. It is set to Germany (1 hour East of UTC). You might want to adjust it to your local time setting before running this job. Instead of editing sg0160 right awy you should first make a backup copy of the file, and call it sg0160.org
The IO Configuration is defined like this:
CUA | device | type | alternate |
---|---|---|---|
010 | 3277 | master | 011 |
011 | 3277 | secons | 010 |
009 | 3215 | secons | 01F |
01F | 3215 | secons | 009 |
30E | 1403 | hardcopy | ./. |
device | CUA | CUA | CUA | CUA |
---|---|---|---|---|
1403 | 00E-00E | 10E-10E | 20E-20E | 30E-30E |
3211 | 002-003 | 102-103 | 202-203 | 302-303 |
device | CUA | CUA | CUA | CUA |
---|---|---|---|---|
2540 | 00C-00D | 10C-10D | 20C-20D | 30C-30D |
device | CUA | CUA | CUA | CUA | CUA |
---|---|---|---|---|---|
3270 | 010-011 | 0C0-0C8 | 1C0-1C8 | 2C0-2C8 | 3C0-3C8 |
device | CUA | CUA | CUA |
---|---|---|---|
2314 | 130-13F | 230-23F | 330-33F |
3330 | 150-15F | 250-25F | 350-35F |
3350 | 140-14F | 240-24F | 340-34F |
3340 | 160-16F | 260-26F | 360-36F |
3375 | 170-17F | 270-27F | 370-37F |
3380 | 180-18F | 280-28F | 380-38F |
3390 | 190-19F | 290-29F | 390-39F |
device | CUA |
---|---|
3420 | 480-487 |
device | CUA | CUA | CUA | CUA |
---|---|---|---|---|
3088 | 500-507 | 510-517 | 600-607 | 610-617 |
The Stage 1 Assembly takes a while, don't get impatient. There should be no errors at all, with other word, we expect
Expected RC |
---|
0 |
The stage 1 of the previous job step has placed a large JCL stream into file SYS1.STAGE1.OUTPUT. Now go to the Hercules console and enter
devinit 13 ../jcl/stage2.pch asciibefore you run the job sg0170. This will place the JCL stream into file stage2.pch in the JCL subdirectory. In order to make this file available for editing, enter
devinit 13 ../pch/pch00d.txtafter the job has completed
Expected RC |
---|
0 |
Shutdown MVS now, and also the Hercules engine. We need to run a few scripts now. The first is
Some modifications need to be done before the stage2 jobs can run. The easiest way to do this is running the script ins0070 which does the changes for you. If you want to see which changes are being done, take a look at conf/stage1.sed
We might want to have one DASD volume of every type we will generate into the system. Running script ins0080 will create such volumes, and will updated the mvs.conf file accordingly.
When the script is complete, you will find that the following volumes have been added
Filename | Devicetype | Model | usage |
---|---|---|---|
sort01.131 | 2314 | n/a | Sort volume |
sort02.132 | 2314 | n/a | Sort volume |
sort03.133 | 2314 | n/a | Sort volume |
sort04.134 | 2314 | n/a | Sort volume |
sort05.135 | 2314 | n/a | Sort volume |
sort06.136 | 2314 | n/a | Sort volume |
hasp00.152 | 3330 | n/a | Spool Volume of target system |
work00.140 | 3350 | n/a | Scratch volume |
pub000.240 | 3350 | n/a | TSO volume |
work01.170 | 3375 | 1 | Scratch volume |
work02.180 | 3380 | 1 | Scratch volume |
pub002.280 | 3380 | 2 | TSO volume |
work03.190 | 3390 | 1 | Scratch volume |
pub003.290 | 3390 | 1 | TSO volume |
mvscat.191 | 3390 | 1 | MVS Catalog volume |
When we will run the STAGE2 we will do many many changes to our system. Just in case - let's backup the whole thing by running ins0090 which will create another snapshot
Finally, the real thing. THe SYSGEN Stage 2. This is a sequence of 6 jobs to build the various MVS target libraries.
Note: The Stage1 macros specify class C as the jobclass where the sysgen jobs are to run. The starter system has 3 started initiators, where only one has class C. This assures that the jobs run consecutively, not parallel
at the Hercules console enter the following command:
devinit 012 ../jcl/sg0180 trunc eof(don't forget the trunc). Then take a break, because it will take some time to run the sysgen jobs.
Expected RC |
---|
Copy steps: 0 |
Link steps: 0 or 4 |
SYSGEN6.SETPZ1: 8 |
Now everything is in place, nearly. We still have to build a JES system, but that is quite simple. Run the job sg0190, which Links JES2, sets up a JES2 procedure, and loads some simple JES2PARMS.
The job will also allocate a (rather small) spool dataset on MVSDLB. We will later expand the system by dedicating the better part of a full volume to the spool, but we will wait until we are certain that our generated system will start successfully.
Expected RC |
---|
0 |
A few changes are needed to SYS1.PARMLIB members. These changes will add SYS1.CMDLIB to LNKLST00, select a different IEAPAK00, etc. Run job sg0200 to implement the changes. After this job has completed, shutdown MVS and the Hercules engine.
Expected RC |
---|
0 |
on the Hercules onsole, enter the command
ipl 148to IPL MVS off the newly created MVSRES volume. This is the first time MVS 3.8 is IPLed, therefore an MVS CLPA is required, and later a spool formatting JES2 start.
During IPL with CLPA you will see the following messages:
IEA101A SPECIFY SYSTEM PARAMETERS FOR RELEASE 03.8 .VS2to which you reply
r 00,clpaYou may or may not see messages like this:
| IEA357I ERRORS IN IEAPAK00 LIST | IEA357I IGC0J05B INVALID - MODULE IGNORED | IEA357I IGG08101 INVALID - MODULE IGNORED | IEA357I IGG08102 INVALID - MODULE IGNORED | IEA357I IGG08103 INVALID - MODULE IGNORED | IEA357I IGG08104 INVALID - MODULE IGNORED | IEA357I IGC11110 INVALID - MODULE IGNORED | IEA357I IGC12110 INVALID - MODULE IGNOREDThese are no errors, just information, and you can safely ignore them.
After a short while the screen will clear, and you will see some more messages:
IEF165I // START JES2 IEE360I SMF NOW RECORDING ON SYS1.MANX ON MVSRES TIME=16.43.52 IGF992I MIH INIT COMPLETE, PRI=000300, SEC=000015 IEF677I WARNING MESSAGE(S) FOR JOB JES2 ISSUED *00 $HASP426 SPECIFY OPTIONS - HASP-II, VERSION JES2 4.1This is the first time that JES2 is started in the system, we therefore enter
r 00,format,noreqThe system will come up with another message
*01 $HASP479 UNABLE TO OBTAIN CKPT DATA SET LOCK - IO ERROR - * REPLY Y OR N TO CONTINUEto which you reply
r 01,yJES2 still is not happy. It issues message
*02 $HASP436 REPLY Y OR N TO CONFIRM CHECKPOINT RECORD CHANGEand again you reply with
r 02,yThe screen now fills to the bottom and shows
- $HASP493 JES2 COLD-START IS IN PROGRESS - $HASP423 MVSDLB IS BEING FORMATTED - $HASP412 MAXIMUM OF 1 READER(S) EXCEEDED - $HASP412 MAXIMUM OF 1 PUNCH(ES) EXCEEDED - $HASP412 MAXIMUM OF 2 PRINTER(S) EXCEEDED IEE041I THE SYSTEM LOG IS NOW ACTIVE $HASP160 PRINTER1 INACTIVE - CLASS=AJ $HASP160 PRINTER2 INACTIVE - CLASS=AJ $HASP160 PUNCH1 INACTIVE - CLASS=BK IEE152I ENTER CANCEL D C,K IEE159E MESSAGE WAITINGThis means the there are more messages waiting, but there is no room on the screen. To set the console into automatic Roll-Delete mode, enter the following command
K N,PFK=(11,CMD='K S,DEL=RD,SEG=15,CON=N,RNUM=19,RTME=001;K A,NONE')This would reprogram function key PFK11 in such a way that pressing it sets the console into Roll-Delete mode. Repeat this for the next console. The settings will be remembered until either changed or until a new sysgen
After you entered the above command, press PFK 11 (or any other function key that you specified in the above command. The highlighted IEE159E message should now disappear, and the botton of the screen should now look similar to
IEE152I ENTER CANCEL D C,K IEE163I MODE= RD
After MVS is started there are three printers in the the system, at addresses 00E, 00F, and 30E. 30E is generated as a hardcopy device while 00E and 00F are standard printers.
Issue the JES2 command
$T prt2,Q=Zto make the second printer serve the output queue Z. This might be handy sometimes later.
At some time during startup you will see a message similar to
*$HASP190 DUMMY SETUP -- PRINTER1 -- F = STD. -- C = 6 -- T = 0When this setup message appears, you must start the corresponding printer, in this case by entering
$S PRINTER1
Having fun with your MVS? Well, we have some more work to do!
For a first test of the system, enter the following commandd u,dasd,onlineto which the system responds with
00- d u,dasd,online IEE450I 17.27.10 UNIT STATUS 108 C UNIT TYPE STATUS VOLSER VOLSTATE UNIT TYPE STATUS VOLSER VOLSTATE 131 2314 O SORT01 /REMOV 132 2314 O SORT02 /REMOV 133 2314 O SORT03 /REMOV 134 2314 O SORT04 /REMOV 135 2314 O SORT05 /REMOV 136 2314 O SORT06 /REMOV 140 3350 O WORK00 PUB/RSDNT 148 3350 S MVSRES PUB/RSDNT 149 3350 O SMP001 PUB/RSDNT 14A 3350 O SMP002 PUB/RSDNT 14B 3350 O SMP003 PUB/RSDNT 14C 3350 O SMP004 PUB/RSDNT 150 3330 O START1 /REMOV 151 3330 O SPOOL0 /REMOV 152 3330 O HASP00 /REMOV 160 3340 A PAGE00 PUB/RSDNT 161 3340 A PAGE01 PUB/RSDNT 170 3375 O WORK01 /REMOV 180 3380 O WORK02 /REMOV 190 3390 O WORK03 /REMOV 191 3390 O MVSCAT /REMOV 240 3350 O PUB000 PUB/RSDNT 248 3350 A MVSDLB PUB/RSDNT 280 3380 O PUB002 /REMOV
Note that the script ins0100 does not move itself
to the done
subdirectory, as it will be needed more than once
We already built the DASD image files for our MVS system. We have included a mix of 2314, 3340, 3350, 3380 and 3390 devices. We will now incorporate those disks into our system, but creating new spool space, telling MVS which disks to use for work space, sort work, whatever:
VAT stands for Volume Attribute List and allows automatic mounting of new disk volumes. This control file specifies the automatic mount attributes for our DASD volumes. Just run job SG0210 to place a new VATLST00 into your SYS1.PARMLIB library.
You should read the comments in the JCL of job SG0210 to see what it is supposed to be
doing. BTW, a description of the SYS1.PARMLIB members can be found at
Expected RC |
---|
0 |
The next thing to do now is to increase the available spool space.
The spool space on MVSDLB is very small, and we would run into problems if we wanted to use it in "real" work. This is where SG0220 will help you - When this job is run, it will
Expected RC |
---|
0 |
$P $P JES2and, when JES2 has terminated, you enter
S JES2,,,PARM='FORMAT,NOREQ'You will see the following messages:
- $HASP493 JES2 COLD-START IS IN PROGRESS - $HASP423 HASP00 IS BEING FORMATTEDDon't worry, there is nothing wrong with your system. There are commands to start other componets, like VTAM and TSO, but we haven't actually setup those two components yet (but will do so shortly)
Which changes were implemented to JES2PARMS? You might want to look at the member in SYS1.PARMLIB. The main changes are:
Class | Description | |
---|---|---|
A | Print output on Printer1 - standard print class for batch | |
B | Punch output on Punch1 - standard punch output | |
L | SYSLOG output class | |
Z | Print output on Printer2 - standard print class for STC and TSU | |
0,8 | Dummy output class | |
all others | Held class |
Class | Description | TIME | REGION | Required JOB parms | BLP | OS cmds in JCL |
---|---|---|---|---|---|---|
A | Low priority Batch | 10 | 768K | none | no | no |
B | Standard Batch | 10 | 999K | none | no | no |
H | Hot Batch | 2 | 999K | Account Programmer name |
no | no |
S | Sysprog | 10 | 999K | Account Programmer name |
yes | yes |
The new spool is working, we now can remove the spool space from MSDLB. This is done by running job SG0230.
Expected RC |
---|
0 |
Shutdown and Restart MVS. After MVS has completely initialized, and JES2 was started, enter the MVS command
D U,DASD,ONLINEon the MVS master console. You should get a result similar to this:
00- d u,dasd,online IEE450I 22.50.17 UNIT STATUS 174 C UNIT TYPE STATUS VOLSER VOLSTATE UNIT TYPE STATUS VOLSER VOLSTATE 131 2314 O SORT01 PUB/RSDNT 132 2314 O SORT02 PUB/RSDNT 133 2314 O SORT03 PUB/RSDNT 134 2314 O SORT04 PUB/RSDNT 135 2314 O SORT05 PUB/RSDNT 136 2314 O SORT06 PUB/RSDNT 140 3350 O WORK00 PUB/RSDNT 148 3350 S MVSRES PRIV/RSDNT 149 3350 O SMP001 PUB/RSDNT 14A 3350 O SMP002 PUB/RSDNT 14B 3350 O SMP003 PUB/RSDNT 14C 3350 O SMP004 PUB/RSDNT 150 3330 O START1 PRIV/RSERV 151 3330 O SPOOL0 PUB/RSERV 152 3330 A HASP00 PUB/RSERV 160 3340 A PAGE00 PRIV/RSDNT 161 3340 A PAGE01 PRIV/RSDNT 170 3375 O WORK01 PUB/RSERV 180 3380 O WORK02 PUB/RSERV 190 3390 O WORK03 PUB/RSERV 191 3390 O MVSCAT STRG/RSERV 240 3350 O PUB000 STRG/RSDNT 248 3350 A MVSDLB PRIV/RSDNT 280 3380 O PUB002 STRG/RSERV IEE152I ENTER CANCEL D C,K IEE163I MODE= RDwhich shows you the accessible volumes and their mount attributes.
We are now ready to build VTAM and TSO:
Just run this job. When it is completed, some new files have been created, and some members in SYS1.PARMLIB have been updated. The following files were created:
SYS2.LINKLIB | Secondary linklist library, batch |
SYS2.CMDLIB | Secondary linklist library, TSO |
SYS2.HELP | Secondary help library, TSO |
SYS1.CMDPRC | System library for CLISTs |
SYS2.PROCLIB | Secondary procedure library |
The JES2 proc has been amended to reflect the new proclib, and the LNKLST00 has been updated to contain CMDLIBs and SYS2.LINKLIB.
Following procedures have been added to SYS2.PROCLIB:
COMPRESS | Compress a PDS |
CLEARERP | Clear SYS1.LOGREC |
CLEARDMPP | Clear SYS1.DUMPxx |
CLEARSMF | Clear SYS1.MANx |
DUMPSMF | Dump SYS1.MANx |
You need now to re-Ipl MVS. The CLPA option is not required.
Expected RC |
---|
0 |
A straight forward affair. Just run this job, and it will create Libraries and LOGON procedures for you:
SYS1.VTAMSRC | ASM source for VTAM tables |
SYS1.VTAMLST | VTAM Resource Definition |
SYS1.VTAMOBJ | Compiled VTAMLST members |
TSOLOGON | Standard LOGON procedure |
IKJACCNT | Emergency LOGON procedure for IBMUSER |
The LOGON Interpret table BSPLIN01 contains references to the users IBMUSER, HERC01, HERC02, HERC03 and HERC04. You will just have to enter these names to LOGON to TSO. Other TSO users will have to use the LOGON command, i.e. they will have to enter
logon someoneto logon to TSO using the userid "someone"
Expected RC |
---|
0 |
which will assemble a Logon Interpret Table and a Logmode Table.
Expected RC |
---|
0 |
Go to the MVS console, and enter
s net
IF TCAM was not included in the Stage1, you should see the messages
- STC 19 $HASP373 NET STARTED - STC 19 IEF403I NET - STARTED - TIME=17.44.23 STC 19 IST025I BLDL FAILED FOR ISTYTCM1 IN VTAMLIB STC 19 IST126I ISTYTCM1 MODE NOT SUPPORTED DUE TO LOADING FAILURE STC 19 IST025I BLDL FAILED FOR ISTYTCM2 IN VTAMLIB STC 19 IST126I ISTYTCM2 MODE NOT SUPPORTED DUE TO LOADING FAILURE STC 19 IST025I BLDL FAILED FOR ISTYTCM3 IN VTAMLIB STC 19 IST126I ISTYTCM3 MODE NOT SUPPORTED DUE TO LOADING FAILURE STC 19 IST110I NETWORK SOLICITOR STARTED STC 19 IST093I APPLTSO ACTIVE STC 19 IST093I APPLCICS ACTIVE 00 STC 19 IST093I LCLMAJ00 ACTIVE STC 19 IST020I VTAM INITIALIZATION COMPLETE
IF TCAM has been included, you will see:
- STC 19 $HASP373 NET STARTED - STC 19 IEF403I NET - STARTED - TIME=17.44.23 STC 19 IST025I BLDL FAILED FOR IEDIAE IN VTAMLIB STC 19 IST025I BLDL FAILED FOR IEDIAE IN VTAMLIB STC 19 IST025I BLDL FAILED FOR IEDIAE IN VTAMLIB STC 19 IST025I BLDL FAILED FOR IEDIAE IN VTAMLIB STC 19 IST025I BLDL FAILED FOR IEDIAK IN VTAMLIB STC 19 IST025I BLDL FAILED FOR IEDIAK IN VTAMLIB STC 19 IST110I NETWORK SOLICITOR STARTED STC 19 IST093I APPLTSO ACTIVE 00 STC 19 IST093I LCLMAJ00 ACTIVE STC 19 IST020I VTAM INITIALIZATION COMPLETEThese messages (IST025I) relate to TCAM, which wasn't installed or generated (yet), and can be ignored
You might also see messages like
STC 19 IEA000I 0C1,IOE,05,0E00,400000000001,,,,23.51.51 STC 19 IEA000I 0C2,IOE,05,0E00,400000000001,,,,23.51.51for the terminals that are defined, but not connected to Hercules right now
When VTAM is initialized, enter
s tsoto which the system should reply
- s tso STC 20 $HASP100 TSO ON STCINRDR - STC 20 $HASP373 TSO STARTED - STC 20 IEF403I TSO - STARTED - TIME=17.46.08 00- STC 20 IKT007I TCAS ACCEPTING LOGONS - STC 20 IKT005I TCAS IS INITIALIZEDAfter the message TCAS IS ACCEPTING LOGONS appears, you can now logon using the IBM supplied userid IBMUSER. How? Go to a 3270 session that displays
THIS TERMINAL IS LOGGED ON TO THE NETWORK SOLICITORand in the top row enter
ibmuser size(4096) THIS TERMINAL IS LOGGED ON TO THE NETWORK SOLICITORNote: The default size for IBMUSER is 44K, which is enough for running ACCOUNT, but not for running anything else. If LOGOFF worked, just enter LOGOFF again. We are going to create new TSO users in a minute
Note: When you are not sure about the Syntax of VTAM commands, take a look at the the VTAM 2 Commands Cheat Sheet
We do not want all the files for specific TSO users to be cataloged in the MVS master catalog. Therefore we build a user catalog on volume PUB000 for all the TSO related files. Run job SG0270
Expected RC |
---|
0 |
We need a file containing skeleton for commands to make certain tasks (like creating users) easier. Job SG0280 builds two files for use in a TSO environment:
SYS2.HELP | Secondary Help Files | ||||
SYS2.SYSINLIB | Control Cards
| ||||
SYS1.CMDPROC | CLISTs
|
Expected RC |
---|
0 |
You might want to modify SG0290 before running it to suit your needs. As written it will add four users to the system
Expected RC |
---|
0 |
One thing is dearly missing in our MVS system: SPF. Unfortunately, SPF is a licenced IBM software product, and there is little chance of legally getting a copy of it to run on MVS 3.8 and Hercules.
But there is a silver lining on the horizon: Rob Prins has written a full screen editor that is somewhat SPF alike.
There is a RPF User's Guide available, also, you can use PF1 to access the Help facility.
RPF is rather easy to implement: just run jobSG0300 This job will build some files (including the RPF source) on the PUB000 volume. Read the JCL and the comments and make all the changes needed for your system, then run the job. It will need the RPF product tape, which should be on the CD-Rom in tapes subdirectory with the name rpf142.het
Expected RC |
---|
0 |
We want to install a few TSO utilities before going online. Run job
SG0310 which will load the following utilites and their corresponding
help files. It will need a tape, which is again on the CDROM under the name tsoutils.het
.
The following utilities will be loaded:
Utility | Description | |
---|---|---|
PDSAA | PDS Version 8.5 | |
ASM | An Assembler Prompter | |
AUPGM | Run Authorized Programs | |
CDSCB | Change DSCB of a DASD file | |
COMPARE | File Compare Utilities | |
CONCAT and DECONCAT | Dynamic concatenation/Deconcatination | |
DENQ | Displays ENQ conflicts | |
DS, DISPAY | Displays MVS status info | |
DSAT | Displays data set attributes | |
DSPACE | Displays free space on volumes | |
DSN | Alias of DENQ | |
DSPACE | Displays space on DASD volumes | |
DSVC | Displays SVC table | |
DVOL | Displays mounted volumes | |
FREEALL | Frees all dynamically allcated files | |
HEL | Full Screen HELP command | |
IM | IMON/370 - System monitor by Grep Price | |
LISTCDS | Show info from SMPCDS | |
LISTLPA | Show info from LPA | |
LISTSPC | Show space info | |
LISTVTOC | Display a VTOC | |
MURPHY | A byte from the cookie jar | |
PDS | The famous PDS utility | |
PRINTO | The PRINTOFF utility | |
REVIEW | Full Screen BROWSE program | |
RLSE | Release empty space from data set | |
SHOWSS | Show System Statust | |
UNITS | Show unitnames in system | |
VTOC | VTOC display utility | |
ZAP | Fullscreen zap utility |
Help for all of these utilities is available through the online help facility. Just enter
help utilsto get a list of available utilities, and use
help utilnameto get info about program utilname
Expected RC |
---|
0 |
It is time for another snapshot. We need to shutdown MVS again, but this time we first have to stop tso and net.
At the MVS console enter the command
p tsoif there are still users active, you will see a message like
00- p tso *STC 22 *03 IKT010D 00001 USERS ACTIVE, REPLY 'SIC' OR 'FSTOP'to which you reply
r xx,SICif there are no (more) active users, you will see the message
*STC 22 *04 IKT012D TCAS TERMINATION IN PROGRESS - SPECIFY 'U' OR 'DUMP'to which you need to reply
r xx,uTSO will now terminate. You can now terminate VTAM with one out the the following three commands
z net z net,quick z net,cancelEventually, you will see the message
STC 21 IST102I VTAM IS NOW INACTIVE - STC 21 IEC223I IFG0200V,NET,NET,UNKNOWN 00- STC 21 $HASP395 NET ENDEDand now you can terminate JES in the usual way
$P $PJES2 Z EOD QUIESCE
We are going to modify our running system somewhat. Therefore we want to make another backup first. Run script ins0110 to create the next snapshot archive
When the snapshot is completed, restart the Hercules engine, and do an IPL of MVS with the CLPA option. The CLPA option is required because the previous job added SVC 244, an authorization SVC, to SYS1.LPALIB. When MVS is started, the network (VTAM) will be automatically started. For the moment TSO will not be automatically started. We will arrange for this later. For now, if you want to use TSO, you need to start TSO manually as soon as VTAM is up and running, as shown above
This jobs builds a few procedures in SYS1.PROCLIB for SMP4 processing:
Procname | Description |
---|---|
SMPREC | Used for RECEIVE and REJECT |
SMPAPP | Used for APPLY |
SMPACC | Used for ACCEPT and RESTORE |
SMPASM | Used to assemble a usermod |
SMPASML | Used to assemble and link a usermod |
Just run this job, no modifications are necessary, and no problems are expected.
Expected RC |
---|
0 |
In order to use SMP4 on the target system we need the SMP4 target libraries. The job SG0330 will allocate the files, and copy the contents of the DLIB SMP libraries into the newly created files.
Note: This job takes a long time, and uses quite a bit of CPU cycles. In order to avoid S322 abends on somewhat slower machines, I have added a TIME=1440 parameter to JOB and EXEC JCL statements
Expected RC |
---|
0 |
The stage2 job contains the building instructions for making our MVS system. Performing a JCLIN process as in SG0340 will feed these instructions into SMP4. SMP will then be able to rebuild elements of the MVS system
Expected RC |
---|
0 |
To test the SMP4 environment we will install a simple usermod which will authorize some external commands to TSO. We will install these commands later, for now we will be happy when the usermod gets correctly installed. Just run the job SG0350 and check that the module IKJEFTE2 gets linked correctly.
Expected RC |
---|
First time: 12 |
If repeated: 4 |
Why don't we get RC=0? Very simple, in order to make it possible to rerun this job, I put in a command to REJECT the usermod first. Obviously, there is nothing to reject, that gives the RC = 12. If the job is later rerun, then the REJECT will work, but gives a warning (RC=4) because the usermod being rejected has not been ACCEPTed.
Note: Don't ACCEPT this Usermod!!
We have installed all the functions of MVS that we have. Unfortunately, our install work isn't finished yet. Many, many bugs have been found in MVS over the years, and were fixed (more or less) by IBM. We have an accumulated tape of PTFs, that we already RECEIVED. We can now ACCEPT those PTFS to avoid known problems to happen later (preventive service). Another approach would be not to RECEIVE all PTFs, but only install those that fix a certain error situation we know does exist in our system (corrective service). Both approaches have their merits. I decided to use the first approach, and to install all PTFs that are currently available.
Actually, not really all PTFs. The PTF UY49086, for example, (at least on my system) breaks SVC94 (which is used for TPUT, TGET, GTSIZE et al) and makes part of TSO (like TEST) unuseable. It also breaks a SYSGEN macro. Fixes for this are only available in an additional product which we do not have available. Therefore we need to exclude UY49086 from our APPLY. Now, there are some PTFs that name UY49086 as a PRErequisite, and those need to be excluded those as well
The job SG0360 will remove those PTFs from the SYS1.SMPPTS. That we we are absolutely sure that they cannot be installed even accidentially. But - we don't want to loose those PTFs, either. Therefore we save them in a special dataset: SYS1.BADPTFS
Expected RC |
---|
0 |
Some PTF have incorrect element relationship entries (PRE, REQ, etc), others cannot be APPLYed because of out 3375/3380/3390 USERMODs. Why not? The USERMODs modify elements, which later would be modified again by the incoming PTFs. Of course those PTFs don't know anything about the USERMODs, and therefore don't name them in the PRErequisite chain. Thus - ID check processing SYSMOD ...... Does not PRE or SUP .......
We solve the problem by explicitly adding the correct PRE/SUP statements to the affected PTFS. We also supply new USERMODs that retrofit the 3375/80/90 modification to the new SYSMODS. All of this is done by running SG0370. The PTFs get saved first into SYS1.BADPTFS before being modified.
Expected RC |
---|
0 except for step UY41573: RC=8 step RECEIVE: RC=8 |
Before we are going to run a monster mass-apply job we make a backup again. Shutdown VTAM, JES2, MVS and Hercules, then run script ins0120 which will create snapshot # 5
Okay, it is time for the big showdown. We have nearly 1500 PTFs in our SMPPTS, and want to install them into the running system. This probably is going to take a while..... Start up Hercules, then MVS. Submit job SG0380. Sit back and relax
On my P IV with 1.7 GHz and high-speed SCSI disks this job took about 45 minutes
Expected RC |
---|
4 |
Okay, it is time for another big showdown. We have nearly 1500 PTFs in our SMPPTS, and want to install them into our distribution libraries. This probably is going to take a while..... Submit job SG0390. And wait
Expected RC |
---|
4 |
This job is optional, If run, it will
Expected RC |
---|
4 |
Before we proceed we make another snapshot by running script ins0130
After that, we take a deep breath
But ....
.....
we still have some customization to do. This is described in the document
MVS Customization.