Installing MVS 3.8

Migrate System Datasets to 3390 DASD

May, 2024

 

Copying the system datasets from the 3350 DASD, where they have been created as you followed my previous instructions, to 3390 DASD, is a simple process.  I do not personally see a significant advantage in having the system datasets on 3390, and have in fact been using the system generated on 3350 DASD for decades, and will probably continue to do so.  But the option is now available and it can be easily accomplished.

Following these instructions will result in migrating all the system datasets from 3350 DASD volumes MVSRES, MVS000, and SMP000 onto 3390 DASD volumes VS2RES and VS2MNT.  It is still questionable if the page datasets and JES2 datasets can be migrated onto 3390.  Because of when the version of JES2 we have was written, and because of the in core mapping of the spool volumes, it seems best to avoid even an attempt at placing JES2 datasets on 3390.  So I have chosen to leave the paging and JES2 datasets on 3350 DASD.  I have taken this opportunity to expand the spool datasets from one 3350 to three 3350 volumes, which will solve JES2 spool shortage, if you have experienced that problem.  There are also adequate 3350 DASD generated into MVS to allow addition of more spool volumes, if required.

A major consideration in planning this process was that it is not possible to have two DASD volumes online with the same volume serial number.  Hence the reason for the volume IDs VS2RES, PAGES0, and JES2?? for the targets that correspond to MVSRES, PAGE00, and SPOOL1.

 

Prerequisites

To avoid being unnecessarily redundant, I am only going to list one item here -

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:

I am providing a new archive which contains the jobstreams, scripts, and Hercules configuration required to complete the migration and IPL MVS following the migration.  Do not download both of the files below.  It is only necessary to download the file below that is correct for your Operating System.

For Linux host Operating Systems, download ../archives/mvsMigrate3390.tar.gz (12  kB) [MD5: c88a5c8b26b84f636cc647bd7465c212].

For Windows host Operating Systems, download ../archives/mvsMigrate3390.zip (13 kB) [MD5: 2a5ca2a23ec2368fbb0b614e69545090].

This archive contains files only used for this set of instructions.  The six items in the archive are:

For Linux host Operating Systems, mvsMigrate3390.tar.gz:  

File Name

Extracted to Directory

Contains

create.dasd.sh mvs bash script that utilizes the dasdinit utility to create empty DASD volumes
mvs3390.cnf conf Hercules configuration file to execute Hercules/MVS 3.8j after migration of system datasets
migrate3390.script conf Hercules command script to add new DASD to configuration
initial.jcl
m096220.jcl
sys3390.jcl
jcl Jobstreams (Job Control Language statements) submitted to MVS to prepare DASD and migrate system datasets

For Windows host Operating Systems, mvsMigrate3390.zip:  

File Name

Extracted to Directory

Contains

create.dasd.bat mvs Windows bat script that utilizes the dasdinit utility to create empty DASD volumes
mvs3390.cnf conf Hercules configuration file to execute Hercules/MVS 3.8j after migration of system datasets
migrate3390.script conf Hercules command script to add new DASD to configuration
initial.jcl
m096220.jcl
sys3390.jcl
jcl Jobstreams (Job Control Language statements) submitted to MVS to prepare DASD and migrate system datasets

Unpack the archive into your mvs subdirectory.  The new create.dasd script will replace the existing one; all the prior functionality remains, there is simply one more group of DASD that may be created with the script.  The Hercules configuration file and the Hercules script will be added to the conf subdirectory.  The four jobstreams will be added to the jcl subdirectory.

 

The clock time required to complete the steps below should be approximately 15 minutes.  The sum of the clock time for the three batch jobs is 2.07 minutes, so I have included a generous amount of 'user' time in this estimate.

 

SYSCPK Verson 1.36 Required

The batch jobs which will copy the system datasets utilize programs contained on SYSCPK.  As I was developing the jobs, it became obvious that the version of ZZRELINK in SYSC.LINKLIB was not link edited as authorized, which is a requirement for moving some of the system libraries.  So version 1.36, dated 05/17/2024, is required.  If your version is not at that level, download the current version from ../downloads/archives/SYSCPK.tar.gz [24.5 mb MD5: d831ba6d7110bf9f775d538380ef36c0]; unpack the 3350 DASD image inside and install to your dasd subdirectory.

 

Shutting Down TSO and VTAM 

TSO and VTAM must not be running during the migration.

If an application is running, such as RPF or QUEUE, you must end those to return to the TSO READY prompt.  Then you should log off all TSO sessions you have running  with the TSO LOGOFF command:

 

When you log off of TSO the tn3270 client window will again display the Network Solicitor screen.

The MVS console will issue messages indicating your TSO User ID has logged off:

 

To shut down TSO, on the MVS console, type P TSO and press Enter:

 

If you have properly logged off all TSO user sessions, the shutdown will be quick and without fuss.

TSO will terminate.  Then to shut down VTAM  type Z NET,QUICK and press Enter:

 

VTAM will terminate.  At this point, the only program running on MVS should be JES2, which is the environment we require to proceed.

 

User Modification M096220

In spite of my best intentions to get all the User Modifications necessary for running MVS on 3390 DASD included in my recent revision of the MVS installation tutorial, one slipped by.  Without this modification, written by Kevin Leonard, during IPL from a system resident on 3390 DASD, the NIP catalog search for SYS1.LINKLIB will fail.  This is a very small modification and will take little time to apply.  Since we will be copying the system datasets from this running system onto the target 3390 DASD, we will simply apply it to this system before proceeding.

At the Hercules command prompt in the Hercules console, enter:  sh ./submit.sh jcl/m096220.jcl [on Windows: sh submit jcl\m096220.jcl] and press Enter.

There are no messages issued by the job that require response.  SY20ZR00, Kevin's name for the job, takes 0.03 minutes to run.  The expected completion codes are:

jay@Phoenix ~/mvs $ ./condcode.rexx prt00e.txt SY20ZR00

Searching prt00e.txt for MVS Job Name SY20ZR00
 
Job Name    Step Name    Proc Step Name    Completion Code
--------    ---------    --------------    ---------------
SY20ZR00    HMASMP       RECEIVE           0000
SY20ZR00    HMASMP       APPLYCK           0000
SY20ZR00    HMASMP       APPLY             0000
 
  3 steps executed in selected jobs
  3 steps received completion code = 0000
jay@Phoenix ~/mvs $ 

 

Create and Attach the New DASD Volumes to Hercules

The updated create.dasd script in the mvsMigrate3390 archive will create an additional group of DASD volumes:

On a Linux system, open a terminal window in the mvs directory and type the command: 

./create.dasd.sh migrate3390

and press Enter.  The argument 'migrate3390' instructs the script to produce the six DASD volumes required for this step.  The script will execute, creating the six DASD volumes.  The output of the script on my (Linux) system is shown below:

jay@Phoenix ~/mvs $ ./create.dasd.sh migrate3390 
This script creates DASD volumes for MVS 3.8j.
Do you want to create compressed DASD images? (y or n)y
Changed directory to: /home/jay/Hercules Virtual Machines/mvsNewBuild/this/dasd
dasdinit -a -z vs2res.3390 3390 111111
HHCDU044I Creating 3390 volume 111111: 1114 cyls, 15 trks/cyl, 56832 bytes/track
HHCDU041I 1114 cylinders successfully written to file vs2res.3390
HHCDI001I DASD initialization successfully completed.
dasdinit -a -z vs2mnt.3390 3390 222222
HHCDU044I Creating 3390 volume 222222: 1114 cyls, 15 trks/cyl, 56832 bytes/track
HHCDU041I 1114 cylinders successfully written to file vs2mnt.3390
HHCDI001I DASD initialization successfully completed.
dasdinit -a -z pages0.3350 3350 333333
HHCDU044I Creating 3350 volume 333333: 560 cyls, 30 trks/cyl, 19456 bytes/track
HHCDU041I 560 cylinders successfully written to file pages0.3350
HHCDI001I DASD initialization successfully completed.
dasdinit -a -z jes200.3350 3350 444444
HHCDU044I Creating 3350 volume 444444: 560 cyls, 30 trks/cyl, 19456 bytes/track
HHCDU041I 560 cylinders successfully written to file jes200.3350
HHCDI001I DASD initialization successfully completed.
dasdinit -a -z jes201.3350 3350 555555
HHCDU044I Creating 3350 volume 555555: 560 cyls, 30 trks/cyl, 19456 bytes/track
HHCDU041I 560 cylinders successfully written to file jes201.3350
HHCDI001I DASD initialization successfully completed.
dasdinit -a -z jes202.3350 3350 666666
HHCDU044I Creating 3350 volume 666666: 560 cyls, 30 trks/cyl, 19456 bytes/track
HHCDU041I 560 cylinders successfully written to file jes202.3350
HHCDI001I DASD initialization successfully completed.
Returning to parent directory
Script completed successfully!
jay@Phoenix ~/mvs $ 

On a Windows system, open a command prompt window in the mvs directory and type the command:

create.dasd.bat migrate3390

and press Enter.  The argument 'migrate3390' instructs the script to produce the six DASD volumes required for this step.  The script will execute, creating the six DASD volumes.  The output of the script on a borrowed Windows 7 system is shown below:

This script creates empty DASD volumes building the MVS 3.8j system
Do you want to create compressed DASD images? 
(Y/N)?y
Changing to dasd subdirectdory.
Creating VS2RES 3390 volume.
dasdinit -a -z vs2res.3390 3390 111111
HHCDU044I Creating 3390 volume 111111: 1114 cyls, 15 trks/cyl, 56832 bytes/track
HHCDU041I 1114 cylinders successfully written to file vs2res.3390
HHCDI001I DASD initialization successfully completed.
Creating VS2MNT 3390 volume.
dasdinit -a -z vs2mnt.3390 3390 222222
HHCDU044I Creating 3390 volume 222222: 1114 cyls, 15 trks/cyl, 56832 bytes/track
HHCDU041I 1114 cylinders successfully written to file vs2mnt.3390
HHCDI001I DASD initialization successfully completed.
Creating PAGES0 3350 volume.
dasdinit -a -z pages0.3350 3350 333333
HHCDU044I Creating 3350 volume 333333: 560 cyls, 30 trks/cyl, 19456 bytes/track
HHCDU041I 560 cylinders successfully written to file pages0.3350
HHCDI001I DASD initialization successfully completed.
Creating JES200 3350 volume.
dasdinit -a -z jes200.3350 3350 444444
HHCDU044I Creating 3350 volume 444444: 560 cyls, 30 trks/cyl, 19456 bytes/track
HHCDU041I 560 cylinders successfully written to file jes200.3350
HHCDI001I DASD initialization successfully completed.
Creating JES201 3350 volume.
dasdinit -a -z jes201.3350 3350 555555
HHCDU044I Creating 3350 volume 555555: 560 cyls, 30 trks/cyl, 19456 bytes/track
HHCDU041I 560 cylinders successfully written to file jes201.3350
HHCDI001I DASD initialization successfully completed.
Creating JES202 3350 volume.
dasdinit -a -z jes202.3350 3350 666666
HHCDU044I Creating 3350 volume 666666: 560 cyls, 30 trks/cyl, 19456 bytes/track
HHCDU041I 560 cylinders successfully written to file jes202.3350
HHCDI001I DASD initialization successfully completed.
Returning to original subdirectory.
Script completed successfully!

Next the six new DASD volumes created above must be identified to Hercules.  I have provided a script to do that.  On the Hercules console, type script conf/migrate3390.script and press Enter.

 

Initialize New DASD Volumes and Create a User Catalog

As with all new DASD, the Hercules dasdinit utility only builds the DASD image.  The Volume Table of Contents and other structures are missing.  The ICKDSF13 utility is necessary to initialize 3390 DASD and the ICKDSF utility is necessary to initialize 3350 DASD.  The VS2RES 3390 volume also needs IPL bootstrap records written to it, which ICKDSF13 will do.

After the new DASD are initialized, they must be placed online to MVS (VARY command) and mounted as Private (MOUNT command), so that nothing will be written to the volumes other than datasets specifically targeted to them.

Finally, a User Catalog must be created on VS2RES which will become the Master Catalog when MVS 3.8j is IPLed from the volume.

I have supplied a single jobstream - initial.jcl - that will achieve all of these steps.  At the Hercules command prompt in the Hercules console, enter:  sh ./submit.sh jcl/initial.jcl [on Windows: sh submit jcl\initial.jcl] and press Enter.

As with earlier DASD initialization, you will be presented a message requiring a response for each volume (390, 391, 350, 351, 352, 353):

 

Respond to each of these six messages with R nn,U.  

After the volumes are initialized, a secondary job will be submitted to the internal reader that has the same name.  This job will Vary the six volumes online, Mount them as private, and create the User Catalog.

The User Catalog - SYS1.VS2RES.MASTER.CATALOG - is created in the Master Catalog of the running system on MVSRES, which is password protected, so you will receive a message requiring a response before this User Catalog will be created:

 

Respond to this message with R nn,sysprog.  

Both ICKDSF jobs take 0.28 minutes to run, which on your system may be longer or shorter, depending upon how long the system waits for response to outstanding console messages.  The expected completion codes are:

jay@Phoenix ~/mvs $ ./condcode.rexx prt00e.txt ickdsf

Searching prt00e.txt for MVS Job Name ickdsf
 
Job Name    Step Name    Proc Step Name    Completion Code
--------    ---------    --------------    ---------------
ICKDSF      ICKDSF                         0000
ICKDSF      ICKDSF                         0000
ICKDSF      IEBGENER                       0000
ICKDSF      IEFBR14                        0000
ICKDSF      IDCAMS                         0000
 
  5 steps executed in selected jobs
  5 steps received completion code = 0000
jay@Phoenix ~/mvs $ 

 

Migrating (Copying) All System Datasets

There is only a single job left to run ... it does everything else.  At the Hercules command prompt in the Hercules console, enter:  sh ./submit.sh jcl/sys3390.jcl [on Windows: sh submit jcl\sys3390.jcl] and press Enter.

The job completes a lot of work and I heavily annotated the JCL with comments as I was writing it, so if you are interested, you can read through the JCL.  But you probably won't have time to read through the entire job before it completes.

As I put this job together, I decided to return to IBM's design and included expiration dates on most of the system datasets.  The date of 99/365 should ensure no unintentional deletion or modification of the datasets until long after any of us cares.  But it does mean that during the job's execution you will receive some messages requiring a response to proceed whenever a modification is about to be made to one of these system datasets. 

For all of these messages, the response is R nn,U.

This message is issued when the SYSCATLG member of the SYS1.NUCLEUS dataset is being updated to reflect the name of the Master Catalog and volume serial:

 

 

This message is issued when the SMFDUMP member of the SYS1.PROCLIB dataset is being updated to reflect the target volume:

 

You may also notice just above this message is the message issued by IFCDIP00 as the SYS1.LOGREC dataset is initialized.

This message is issued when the IEAAPF00 member of the SYS1.PARMLIB dataset is being updated to change the volume serial for three system datasets:

 

This message is issued when the JES2PM00 member of the SYS1.PARMLIB dataset is being updated to change the volume serial for the JES2 checkpoint and spool datasets, and to update the number of spool volumes:

 

This message is issued when the VATLST00 member of the SYS1.PARMLIB dataset is being updated to change the volume serial and device type for several system volumes:

 

Also, some volumes that are no longer being used are removed from VATLST00.

The SYS3390 job takes 1.76 minutes to run, which on your system may be longer or shorter, depending upon how long the system waits for response to outstanding console messages.  The expected completion codes are:

jay@Phoenix ~/mvs $ ./condcode.rexx prt00e.txt sys3390

Searching prt00e.txt for MVS Job Name ickdsf
 
Job Name    Step Name    Proc Step Name    Completion Code
--------    ---------    --------------    ---------------
SYS3390     S1                             0000
SYS3390     S2                             0000
SYS3390     ZZRELINK     S3                0004 <--
SYS3390     ZZRELINK     S4                0004 <--
SYS3390     ZZRELINK     S5                0004 <--
SYS3390     ZZRELINK     S6                0004 <--
SYS3390     ZZRELINK     S7                0004 <--
SYS3390     ZZRELINK     S8                0004 <--
SYS3390     ZZRELINK     S9                0004 <--
SYS3390     ZZRELINK     S10               0004 <--
SYS3390     ZZRELINK     S11               0004 <--
SYS3390     ZZRELINK     S12               0004 <--
SYS3390     ZZRELINK     S13               0004 <--
SYS3390     ZZRELINK     S14               0004 <--
SYS3390     ZZRELINK     S15               0000
SYS3390     ZZRELINK     S16               0004 <--
SYS3390     ZZRELINK     S17               0004 <--
SYS3390     ZZRELINK     S18               0004 <--
SYS3390     ZZRELINK     S19               0004 <--
SYS3390     ZZRELINK     S20               0000
SYS3390     ZZRELINK     S21               0004 <--
SYS3390     ZZRELINK     S22               0004 <--
SYS3390     ZZRELINK     S23               0000
SYS3390     ZZRELINK     S24               0004 <--
SYS3390     ZZRELINK     S25               0004 <--
SYS3390     ZZRELINK     S26               0004 <--
SYS3390     ZZRELINK     S27               0000
SYS3390     ZZRELINK     S28               0004 <--
SYS3390     ZZRELINK     S29               0004 <--
SYS3390     ZZRELINK     S30               0004 <--
SYS3390     ZZRELINK     S31               0004 <--
SYS3390     ZZRELINK     S32               0004 <--
SYS3390     ZZRELINK     S33               0000
SYS3390     ZZRELINK     S34               0000
SYS3390     ZZRELINK     S35               0004 <--
SYS3390     ZZRELINK     S36               0004 <--
SYS3390     ZZRELINK     S37               0004 <--
SYS3390     ZZRELINK     S38               0004 <--
SYS3390     ZZRELINK     S39               0000
SYS3390     ZZRELINK     S40               0000
SYS3390     ZZRELINK     S41               0000
SYS3390     ZZRELINK     S42               0004 <--
SYS3390     ZZRELINK     S43               0004 <--
SYS3390     ZZRELINK     S44               0004 <--
SYS3390     ZZRELINK     S45               0000
SYS3390     ZZRELINK     S46               0004 <--
SYS3390     ZZRELINK     S47               0000
SYS3390     ZZRELINK     S48               0000
SYS3390     ZZRELINK     S49               0000
SYS3390     ZZRELINK     S50               0000
SYS3390     S51                            0000
SYS3390     S52                            0000
SYS3390     S53                            0000
SYS3390     S54                            0000
SYS3390     S55                            0000
SYS3390     S56                            0000
SYS3390     S57                            0000
SYS3390     S58                            0000
SYS3390     S59                            0000
SYS3390     S60                            0000
SYS3390     S61                            0000
SYS3390     S62                            0000
SYS3390     S63                            0000
SYS3390     S64                            0000
 
 64 steps executed in selected jobs
 30 steps received completion code = 0000
 34 steps received completion code = 0004
jay@Phoenix ~/mvs $ 

As with previous jobsteps where system library members are being processed by the Link Editor, a 0004 return code is sometimes expected.

Note:  When I ran the job from which these return codes were captured, it was against a newly generated MVS 3.8j system.  If you run sys3390.jcl against a system that has been running for some time, you may receive addtional 0004 return codes in addition to those shown above.  This is normal and to be expected.

That is all there is to the migration, so it is time to ...

 

Shut the Running MVS System Down

On the MVS console, issue the commands:

$pjes2 to begin termination of JES2.  Allow it time to drain its processes and shut down.

z eod to write records to open datasets.

quiesce to finalize shutdown and place system in wait state.

On the Hercules console, issue the command:

quit to terminate Hercules.

Close tn3270 client windows.

 

IPL the 3390 MVS

You are ready to IPL the MVS 3.8j system that now resides on 3390 DASD.  I have supplied a new Hercules configuration file - mvs3390.cnf - which creates an emulated system that represented graphically looks like this:

Start Hercules from a host command window with the command:  hercules -f conf/mvs3390.cnf.

In another host command window, start a tn3270 client and connect to localhost, port 3270, group name is console.  The command I use on my Linux system is:

x3270 -model 3279-2 -efont terminus-20 console@localhost:3270 &

This will be the MVS console.

In another host command window, start a tn3270 client and connect to localhost, port 3270, gorup name is tso.  The command I use on my Linux system is:

x3270 -model 3279-2 -efont terminus-32 tso@localhost:3270 &

At the Hercules command prompt in the Hercules console, enter:  ipl 190 and press Enter:   [Careful not to make the mistake to ipl from x'150'!!!]

 

Because this is the first time this system has been IPLed, specify R 0,clpa:

 

Also, for the first JES2 prompt, specify R 1,format,noreq:

 

You may notice that there are now three spool datasets being formatted.  You have a lot of spool space available.

Since the checkpoint dataset is also brand new, you will have to respond Y to the two messages regarding checkpoint dataset lock and checkpoint record change.

And, just like that, you have an MVS 3.8j system residing mostly on 3390 DASD.

All of the datasets are exactly as they were on the 3350 DASD, except that libraries have been created at optimum blocking for 3390 DASD. 

 

If you plan to continue using this configuration, you may delete the old volumes from the dasd subdirectory: MVSRES.3350, MVS000.3350, SMP000.3350, SPOOL1.3350, PAGE00.3350.

 

Update 05-29-2024:  It is early for the first update, but Marco Verpelli reported that SYS1.UMODLIB was not allocated on VS2MNT.  The reason is that the library contained no members, so ZZRELINK just refused to create an empty library.  This library is only used for applying modifications to the system, and only modifications written to specifically use this library during the application.  To allocate the library, grab the jobstream: alloc.umodlib.jcl (output from the job: alloc.pdf).

 

Return To the Page That Got You Here

As promised, this link will return you to IPL the Newly Created MVS 3.8 at exactly the place you left from to come here.


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 May 29, 2024 .