The rationale for creating a single DASD volume with all of the language compilers and related tools includes several factors:
In order to be compatible with the largest number of Hercules/MVS users and also provide the maximum usable space, the type of DASD volume chosen was a 3350. The volume serial number is SYSCPK - SYStem Compiler PacK. The volume contains its own VSAM User Catalog: UCSYSCPK and is installed with an ALIAS in the VSAM Master Catalog of SYSC. All Non-VSAM datasets on the volume begin with the high level qualifier SYSC, so that they are automatically accessed via the ALIAS/User Catalog relationship. The volume also contains a Procedure Library, in which all the procedures to access the compilers/tools are cataloged. As I created the volume and populated it with the compilers, I attempted to include as much documentation as I could on the volume itself. You will find an index dataset - SYSC.$INDEX - that contains a one line description of all the other datasets on the volume. I have also included $INDEX members in those datasets where it was permissible to do so, and included one line descriptions of the contents of the individual members of the datasets. The dataset SYSC.SETUP.CNTL contains two jobstreams which will assist in the incorporation of the volume into your existing MVS system. It also contains the jobstreams I used to initially set up the volume - initializing the volume, building the User Catalog/ALIAS, and allocating the Partitioned Datasets for the Procedure Library and Load Library. All other datasets on the volume were created during the process of installing the compilers/tools listed on the prior page of this site. There were some modifications made to the target library names in order to fit the target environment, but the same basic installation jobs were used. A major difference is that, whenever possible, I installed from source code instead of reloading object libraries and I have left the source code intact in datasets on the SYSCPK volume.
Installation / IntegrationThe tasks necessary to install the volume into an existing Hercules/MVS system are:
1. Download the archive and unpack the volume.SYSCPK.tar.gz [10.3 mb MD5: 806c8185796595a99c60947a71f17766] contains a single file, the 3350 DASD volume image. Unpack it and place it in the same directory with your other DASD volume images. As provided, the volume is not compressed, but you can compress it using the dasdcopy utility included with Hercules by using the command:
where ofile is the name of the file to contain the compressed DASD image. You will probably wish to rename the image file in order to be consistent with the naming scheme for DASD volumes in your environment, so it would be appropriate to rename the volume image at the same time you are compressing it. If you do not utilize compressed DASD on your system, you may simply rename the volume image after it has been unpacked so that the name is consistent with your other volumes. A Volume Table of Contents listing of the SYSCPK volume may be seen at: SYSCPK Volume Table of Contents Listing. 2. Attach the volume and place it online to MVS.Because MVS will default to PUBLIC class for volumes auto-mounted at IPL, it is preferable to start Hercules and MVS without adding a reference to the SYSCPK volume to your Hercules' configuration file at this time. Let me restate that this is a 3350 DASD image, so you will need to determine an appropriate address in your MVS system to which the volume may be mounted. Use the Hercules' attach command to open the volume image to Hercules: Use the Vary and Mount commands on the MVS console to place the volume online:
3. Run the job to Import/Connect the User Catalog.As mentioned above, there are jobstreams included in the dataset SYSC.SETUP.CNTL on the volume that will integrate the volume into your existing MVS system. The first of these to be run is in the member IMPORT. This jobstream uses IDCAMS to connect the User Catalog on the SYSCPK volume to the VSAM Master Catalog and then defines an ALIAS so that the high level qualifier SYSC is related to the User Catalog. The contents of that jobstream are:
Submit the job; the single step should receive a return code of 0000. If your Master Catalog is password protected, you will be prompted on the MVS Operator's console for the password twice during the execution of this job - once when the User Catalog is imported and again when the Alias is created.
4. Run the job to modify the JES2 procedure and the SYS1.PARMLIB members.The catalogued procedure used to start JES2, which is contained in SYS1.PROCLIB, must be modified in order to search the Procedure Library on the SYSCPK volume. Also, two members of SYS1.PARMLIB must be updated - IEAAPF??, which controls from which load libraries authorized programs may be executed, and VATLST??, which determines the Class under which DASD volumes are automatically mounted during IPL. I have written a program and a jobstream to execute the program which reads the existing contents of the members to be changed and generates a second jobstream to apply the changes. The generated jobstream may be edited before it is submitted, or submitted directly to the internal reader. The source of the program is contained in SYSC.SETUP.CNTL(ISYSCPK); it has been compiled and the load module is contained in SYSC.LINKLIB, ready to execute. The jobstream to execute is contained in SYSC.SETUP.CNTL(IJSYSCPKJ):
You may submit it as it exists to produce a listing of the jobstream that will be generated. The SYSOUT DD will contain a progress log:
The actual member names for IEAAPF?? and VATLST?? may vary widely among systems; each name includes a two character suffix that is either specified in the IEASYS00 member of SYS1.PARMLIB or defaults to 00 if not specified. The generated jobstream will first copy the existing contents of the members to be modified, creating backups:
so they may be restored in case of major problems. If the JES2 procedure becomes damaged so that JES2 will not start, the previous procedure may be used by substituting JES2OLD for JES2 in the start command:
Here is a version of the generated jobstream executed on one version of MVS:
The statements that were inserted in the modified members are shown in color. Submit the job; the single step of the job should receive a return code of 0000. Note: The JES2 startup procedure will be modified to place the Procedure Library on SYSCPK - SYSC.PROCLIB - as the first library in the concatenation for PROC00. For personal preference, you may wish to modify the JES2 procedure to place SYSC.PROCLIB in another position in the concatenation. This is discussed a bit more in the section below - Executing the Compilers/Tools.
5. Shutdown MVS/Hercules.Shut down MVS and then Hercules.
6. Add the volume to your Hercules' configuration file.Edit the Hercules' configuration file used when Hercules is executed to run MVS (probably mvs.cnf, or turnkey_mvs.conf located in the conf subdirectory if you are running a version of the Turnkey system). You do not have to add the volume attached to the same address you used when you manually attached it above (in step 2), but be sure that the address you use has been generated as a 3350 DASD device. I do not run my system with any DASD volumes set to readonly, but I received feedback that if you set SYSCPK as readonly on the Turnkey system, you cannot access any members of any Partitioned Dataset on SYSCPK. If you are concerned about accidentally updating the SYSCPK volume image, you can use the fakewrite option, which will accept write operations to the volume image and report them as completed to MVS, but will not actually perform the write to the volume image file.
7. Restart Hercules/MVS.Restart Hercules and MVS normally. All of the compilers/tools on the SYSCPK volume are now usable in your system.
Executing the Compilers/ToolsWith very few exceptions, all of the load modules in SYSC.LINKLIB are executed using catalogued procedures, which are located in the Procedure Library on SYSCPK - SYSC.PROCLIB. Each of the procedures contains a STEPLIB DD card so that the system will search SYSC.LINKLIB for the load module rather than using any of the libraries named in the Linklist. The necessity for a STEPLIB rather than relying on the Linklist is that any library to be included in the Linklist must be catalogued in the Master Catalog, and part of the design was to have a completely contained volume with all of its objects catalogued in its own User Catalog. Here is the list of procedures contained in SYSC.PROCLIB (from the $INDEX member):
Some of these procedures duplicate similar procedures in SYS1.PROCLIB, and perhaps SYS2.PROCLIB also, if you have SYS2.PROCLIB defined in your system and have installed some of these compilers. The version in this library will be located first, because the modification of the JES2 procedure places the DD statement for this library first in the concatenation. If for any reason you still want to execute a similar procedure from the other library(s), you will need to modify the JES2 procedure to allow procedure library specification in JCL. That is not difficult to do and is described at: How can I execute catalogued procedures from a library other than SYS1.PROCLIB?
Updating to a later version of SYSCPKYes, I expect to continue to add compilers and related tools to the Language Compilers Available for MVS 3.8 page, and I will now be adding them to the SYSCPK image, at the same time. Whenever I make an addition, I will place an entry on Changes and update the version number and date in the heading of this page. If you want to update your copy of the SYSCPK volume image to the latest version, all you need to do is download the archive, extract the image, and (with Hercules/MVS not running, of course), use it to replace the previous version of the volume image pointed to in your Hercules' configuration file. I have also added a SYSC.$HISTORY dataset on the volume to track updates to the volume's contents. The entries in this dataset for the most recent updates are:
Of course, in order to prevent this type of update from impacting your system, you must not modify or add to the contents of the SYSCPK volume. If you do make modifications, you will need to maintain your own system to re-apply those modifications following an update of the volume image from this site. It is not an impossible task, but is probably one best avoided. I would especially elicit feedback if you have installed SYSCPK on your system and encountered any problems or see areas where clarification would be helpful. This was a major task that has taken me several weeks of effort to complete. It is certainly possible that there are minor problems that I have managed to miss, in spite of quite a bit of testing. I would be grateful for the notification of any problems or difficulties you encounter. Also, I believe that I have contemplated all possible issues in the design of the ISYSCPK program, but I do not have access to more than a few configurations of Hercules/MVS to test on and most of them are really quite similar. So if you have a particular configuration that causes unexpected behavior of ISYSCPK, please let me know. I hope that you have found my instructions useful. If you have questions that I can answer to help expand upon the information I have included here, please don't hesitate to send them to me:
This page was last updated on July 31, 2010. |