Keyboard Shortcuts
Likes
Search
I wonder if there is a standard approved way to expand SYS2.LINKLIB?
Greetings.
I am about to release some programs that need to use SYS2.LINKLIB, However, SYS2.LINKLIB has very little room for extra programs. I could add a space parameter to the IEBCOPY of the load modules to the installation procedures, and in fact this does work. However I think it would be preferable to expand Linklib so it stays in one extent. Does a safe way exist to do this? Thanks, Clem Clarke ? |
Create *.NEW on same volume with same attributes and OLD+NEW space.
Copy * to *,NEW then copy library with updates to *.NEW. Special procedures are needed for aliases and overlays. (LKED?) Compress to recover space used by replaced members, Check space used for more adjustment like 1 extent, amount of free space. Rename * to *.old then *.new to *. IPL to pick up new library. Recover reverse rename, IPL starter system reverse rename, IPL ZZSA reverse rename. On Wed, Oct 23, 2024 at 9:02?PM Clement Clarke via groups.io <clemclarke@...> wrote:
-- Mike A Schwab, Springfield IL USA Where do Forest Rangers go to get away from it all? |
I am converting to TK5 update 3 now. I have been using Update 2 for a year or so, and am converting to TK5 update 3. I will post a procedure?that works.? For some reason, using IDCAMS to rename the data sets doesn't work. And IEHPROGM doesn't seem to recognise 3390's. Clem On Thu, Oct 24, 2024 at 8:28?PM Rob Prins via <prin0096=[email protected]> wrote:
|
This procedure seems to work! //HERC01S ?JOB (ACCNT),'ENLARGE SYS2.LINKLIB',CLASS=A,MSGCLASS=X, ? ? // ? ? ? ? NOTIFY=HERC01 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //*** //* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //* ?Desc: Enlarge SYS2.LINKLIB ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //* ?Notes: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //* ?1) As distributed with Hercules TK5, the library ? ? ? ? ? ? ? ? //* ? ? is too small to copy in some new larger load modules. ? ? ? ? //* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //* ?2) This procedure copies the SYS2.LINKLIB into ? ? ? ? ? ? ? ? ? //* ? ? a larger PDS, and renames the library. ? ? ? ? ? ? ? ? ? ? ? ? //* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //* ?3) A REIPL is necessary to use the new libary. ? ? ? ? ? ? ? ? ? //* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //*** //* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //DELCOPY ?EXEC PGM=IEFBR14 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //DEL ? ? ?DD ?DSN=SYS2.LINKLIB.COPY,DISP=(MOD,DELETE), ? ? ? ? ? ? ? // ? ? ? ? ? ? VOL=REF=SYS2.LINKLIB,DCB=SYS2.LINKLIB, ? ? ? ? ? ? ? ? // ? ? ? ? ? ? SPACE=(TRK,(1,,1)) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //ALLNEW ? EXEC PGM=IEFBR14 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //ALLOC ? ?DD ?DSN=SYS2.LINKLIB.COPY,DISP=(NEW,CATLG,DELETE), ? ? ? ? // ? ? ? ? ? ? VOL=REF=SYS2.LINKLIB,DCB=SYS2.LINKLIB, ? ? ? ? ? ? ? ? // ? ? ? ? ? ? SPACE=(TRK,(600,,180)) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //COPYBR14 EXEC PGM=IEBCOPY ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //SYSPRINT DD ?SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //SYSUT1 ? DD ?DISP=SHR,DSN=SYS2.LINKLIB ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //SYSUT2 ? DD ?DISP=SHR,DSN=SYS2.LINKLIB.COPY ? ? ? ? ? ? ? ? ? ? ? ? //SYSIN ? ?DD ?* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?C I=((SYSUT1,R)),O=SYSUT2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //*? //RENAMES ?EXEC PGM=IKJEFT01,COND=(0,NE) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //SYSTSPRT DD ?SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //SYSTSIN ?DD ?* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?RENAME 'SYS2.LINKLIB' 'SYS2.LINKLIB.OLD' ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?RENAME 'SYS2.LINKLIB.COPY' 'SYS2.LINKLIB' ? ? ? ? ? ? ? ? ? ? ? ? ? //* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //* IDCAMS doesn't work. It gives catalog errors. ? ? ? ? ? ? ? ? ? ? ? //* The TSO in batch step above works... ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //* Below are the error messaes when IDCAMS is attempted to do ? ? ? ? //* the rename ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //* ? ALTER SYS2.LINKLIB NEWNAME(SYS2.LINKLIB.OLD) ? ? ? ? ? ? ? ? ? ? //*IDC3014I CATALOG ERROR ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //*IDC3009I ** VSAM CATALOG RETURN CODE IS 76 - REASON CODE IGG0CLBN-0 //*IDC0532I **ENTRY SYS2.LINKLIB NOT ALTERED ? ? ? ? ? ? ? ? ? ? ? ? ? //*IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 8 ? ? ? ? ? //RENAME ? EXEC PGM=IDCAMS,COND=ONLY ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //SYSPRINT DD ?SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //ALLOC ? ?DD ?VOL=REF=SYS2.LINKLIB.COPY,DISP=OLD ? ? ? ? ? ? ? ? ? ? ? //SYSIN ? ?DD ?* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ALTER SYS2.LINKLIB NEWNAME(SYS2.LINKLIBO) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ALTER SYS2.LINKLIB.COPY NEWNAME(SYS2.LINKLIB) ? ? ? ? ? ? ? ? ? ? ? //*? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? On Thu, Oct 24, 2024 at 8:28?PM Rob Prins via <prin0096=[email protected]> wrote:
|
One problem with this job. The new SYS2.LINKLIB is not cataloged with volser=*
?
To enlarge SYS2.LINKLIB follow the steps below:
?
First make a backup of the TK5RES volume.
?
Go to RPF 3.4 with data set level SYS2.
Locate SYS2.LINKLIB
Place line command A before the dataset name for the allocation screen.
Change data set name from SYS2.LINKLIB to e.g. SYS2.LINKLIB.COPY and change
to number of cylinders from 30 to 40 and the number of directory blocks from 180 to 210.
Copy SYS2.LINKLIB to SYS2.LINKLIB.COPY with RPF 3.3. Use membername (*).
Go to RPF 3.4 with data set level SYS2.
Delete SYS2.LINKLIB
Rename SYS2.LINKLIB.COPY to SYS2.LINKLIB.
Go to option 6 or to the READY mode.
Give command: delete sys2.linklib noscratch
Give command: define nonvsam(name('sys2.linklib') devt(3390) vol(*))
?
This enlarged SYS2.LINKLIB will be present in TK5 Update 4.
?
Cheers,
Rob
?
? |
Hi Clem, If you have a major new contribution to make where the load modules need to be on the LNKLST then, as you have seen in Rob’s posting, there is a way to increase the size of SYS2.LINKLIB while preserving the * notation for the SYSRES volume. Alternatively, you could simply add an entry to the LNKLST identifying your load module library. In the TK5 environment the previous requirement that LINK LISTED data sets be cataloged in the Master Catalog is no longer valid. Update the LNKLST00 member and provide the data set name and immediately follow it with (volser) of where your load module library is located. If you look in the TK5 SYS1.PARMLIB(LNKLST00) member you will see an example where the NJE38 load module library is placed on TK5001. TK5 has so many great new features to make it easy to install and test contributions as described above or cloning the SYSRES volume with minimal or no changes. Regards Tom |
Thanks Rob. I altered the JCL to add the volume as *.? Then it is all relatively automatic, and hopefully not prone to errors.? After an IPL, the old SYS2.LINKLIB can be manually deleted. I think all the work done by you (and others, of course) is absolutely fabulous.? Very well done! Clem //HERC01S ?JOB (ACCNT),'ENLARGE SYS2.LINKLIB',CLASS=A,MSGCLASS=X, ? ? // ? ? ? ? NOTIFY=HERC01 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //*** //* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //* ?DESC: ENLARGE SYS2.LINKLIB ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //* ?NOTES: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //* ?1) AS DISTRIBUTED WITH HERCULES TK5, THE LIBRARY ? ? ? ? ? ? ? ? //* ? ? IS TOO SMALL TO COPY IN SOME NEW LARGER LOAD MODULES. ? ? ? ? //* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //* ?2) THIS PROCEDURE COPIES THE SYS2.LINKLIB INTO ? ? ? ? ? ? ? ? ? //* ? ? A LARGER PDS, AND RENAMES THE LIBRARY. ? ? ? ? ? ? ? ? ? ? ? ? //* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //* ?3) A REIPL IS NECESSARY TO USE THE NEW LIBARY. ? ? ? ? ? ? ? ? ? //* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //*** //* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //DELCOPY ?EXEC PGM=IEFBR14 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //DEL ? ? ?DD ?DSN=SYS2.LINKLIB.COPY,DISP=(MOD,DELETE), ? ? ? ? ? ? ? // ? ? ? ? ? ? VOL=REF=SYS2.LINKLIB,SPACE=(TRK,(1,,1)) ? ? ? ? ? ? ? ? //* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //COPYBR14 EXEC PGM=IEBCOPY ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //SYSPRINT DD ?SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //SYSUT1 ? DD ?DISP=SHR,DSN=SYS2.LINKLIB ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //SYSUT2 ? DD ?DSN=SYS2.LINKLIB.COPY,DISP=(NEW,CATLG,DELETE), ? ? ? ? // ? ? ? ? ? ? VOL=REF=SYS2.LINKLIB,DCB=(RECFM=U,BLKSIZE=32760), ? ? ? // ? ? ? ? ? ? SPACE=(CYL,(50,,210),,CONTIG) ? ? ? ? ? ? ? ? ? ? ? ? ? //SYSIN ? ?DD ?* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?C I=((SYSUT1,R)),O=SYSUT2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //RENAMES ?EXEC PGM=IKJEFT01,COND=(0,NE) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //SYSTSPRT DD ?SYSOUT=* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //SYSTSIN ?DD ?* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?RENAME 'SYS2.LINKLIB' 'SYS2.LINKLIB.OLD' ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?RENAME 'SYS2.LINKLIB.COPY' 'SYS2.LINKLIB' ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?DELETE SYS2.LINKLIB NOSCRATCH ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?DEFINE NONVSAM(NAME('SYS2.LINKLIB') DEVT(3390) VOL(*)) ? ? ? ? //*? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ![]() On Fri, Oct 25, 2024 at 3:19?AM Rob Prins via <prin0096=[email protected]> wrote:
|
Thanks Tom. I have spent a few days shuffling data sets around and thinking.? I think I'll just send it as a compressed 3390 volume.? And do as you say, provide a job to update Parmlib.? However, that still leaves Sys2.Proclib and Sys2.Cmdlib.? I just want it to be dead simple to install and try out. Mistakes have been made in the past! I think we used to keep all our SYS2 type programs on seperate DASD devices, didn't we? Perhaps it might be worthwhile thinking about doing it again? Maybe set up some SYS3 datasets, ?even? On a different drive? Just a thought... Clem ![]() On Fri, Oct 25, 2024 at 10:02?AM Tom Armstrong via <tomarmstrong255=[email protected]> wrote:
|
Hi Clem, Now that we have a fully functional RECV/XMIT commands, courtesy of Bob Polmanter’s NJE38 contribution, the preferred method of distribution for contributions is to distribute a single XMIT file. This technique has advantages over the distribution of a DASD volume as it requires no modifications to the Hercules startup, VATLST changes and reduces possible installation errors due to incorrect UCB assignments. First step is to select a suitable HLQ qualifier for your contribution. Page 12 of the TK5 Introduction and User Manual lists HLQs already used in the TK5 Catalog environment. However, I suggest you contact Rob Prins with your choice of HLQ just to make sure it has not been used by some other contribution in the TK5 update pipeline. The best way to understand the XMIT distribution technique is to look at an example where it is used in the TK5 environment. I use the XMIT technique to distribute the OS/360 S/M Program for MVS 3.8 and also for Algol F. As you are a TK5 user can I suggest you view SORT.MVS38.CNTL? First member to look at is $INSTALL. This job cleans up any previous installations of the S/M program and then does a RECEIVE of the various S/M data sets from a data set named INSTALL.SORT. To help contributors build installation processes Rob provides a HLQ of INSTALL to bring the initial XMIT distribution data set into the TK5 environment. The S/M Program replaces SYS1.SORTLIB so it has an additional step to deal with that situation. Then, various modules, JCL Procs etc are copied to their relevant libraries as required by your contribution. The contribution is now installed. So, how to build the initial XMIT data set for distribution? Please view member BLDDIST. First step cleans up from any previous build jobs. The development libraries for the S/M Program all have a HLQ of SYSD in my environment and some of then contain JCL or source that is my testing etc and not needed for distribution. The JCL selects the appropriate members and then uses XMIT to place all the data sets into members of a work data set that is finally XMITed as INSTALL.SORT.XMI for download to the PC and then distributed. Note that the documentation is also distributed in this way as well. Basically, the technique uses an XMIT of XMITed members in a PDS to build a single distribution data set. ? The installation instructions are quite straightforward -------------------------------------------------- 1. Upload the INSTALL.SORT.XMI PC File. Using IND$FILE PC File Transfer, or any other appropriate file transfer method, upload the INSTALLSORT.XMI PC file to the target TK5 environment ensuring the uploaded MVS data set has DCB parameters of RECFM=FB,LRECL=80,BLKSIZE=27920 2. RECEIVE the Installation PDS. Issue the following command at a TSO READY prompt: RECEIVE INDS('INSTALL.SORT.XMI') NOPROMPT DSN('INSTALL.SORT') VOL(TK5002) 3. Install the Sort/Merge Program The Sort/Merge libraries can now be extracted from the installation PDS using the TSO RECEIVE command running in TSO batch mode. Member $INSTALL in the data set INSTALLSORT contains the installation JCL. Customize this to conform to site standards and submit the job. -------------------------------------------------- You would need to provide an additional step to modify the LNKLST member with your load module library and then IPL to complete the installation process. While there is a little more work for you as the developer to build this process for the first time the major benefit is ease of installation for the user which is the most important consideration. As you so correctly remarked, “mistakes have been made in the past”, best to make the installation as simple as possible. Regards Tom |