- - - - All About SEGGEN, SYSTEM SEGID, PSEGS, & LSEGS - - - - Let's all sing! The SEGGEN's connected to the PSEG, The PSEG's connected to the LSEG's, The LSEG's connected to the SEGMENT command, And they're all connected to the SYSTEM SEGID. Ok, no more humor. Sorry 'bout that. ------------------------------------------------------------------------ The SEGMENT command in VM/ESA has been upgraded to understand about Logical Segments, or LSEGS. Before, when you said SEGMENT LOAD APL say, CMS's SEGMENT command code would start looking for a NSS named APL that it could load. Now, before looking for NSS's, it'll look in the SYSTEM SEGID file (hopefully on the S-disk just like SYSTEM NETID is) for a LSEGMENT APL line. If it finds one, it backs up to the previous PSEGMENT line and load the PSEG pointed to in that line, which should be an active NSS. That PSEG could have many LSEGs in it. The SEGMENT command knows where any LSEG is inside that PSEG by the addresses given in SYSTEM SEGID, thus SYSTEM SEGID must be updated whenever a PSEG or LSEG changes. Mark Harwood has chosen to put OUT in a PSEG. I've chosen to put a few system type things in segments. - The FST's for the 19D, help disk. This requires some games to be played, described later on. - The common execs, xedit macros, and programs that can reside both above the line in CMSINST, and below the line in CMSINST-. - The pipeline module (the IUO version from VMTOOLS, not the PID version 'cause David says it's kept more current, which caused other troubles described below). - VMLIB - This is for the CSL routines. - VMMTLIB - This is the CMS Multitasking segment. The exact definitions for my PSEGs & LSEGs are found on the CMS disks. Do a SETUP CMS9 and look in the SYSTEM SEGID file to start. As of 5/17/94, SYSTEM SEGID was PSEGMENT SVM 01300000 000F1000 05/02/94 12:57:03 LSEGMENT DMSSVM 01300000 0003E140 PSEGMENT OUTPSEG1 04000000 00200000 03/16/94 14:05:19 LSEGMENT OUTLSEG1 04000000 001569E8 PSEGMENT HELPINST 00C00000 00100000 05/03/94 11:03:37 LSEGMENT CMSINST- 00C00000 00015F80 LSEGMENT HELP 00C15FC0 00077C28 PSEGMENT CMS9BV 05500000 00200000 05/03/94 13:03:00 LSEGMENT OURPIPES 05500000 00063E48 LSEGMENT VMLIB 05563E88 0007BFF8 LSEGMENT VMMTLIB 055DFEC0 00045E28 LSEGMENT CMSINST 05625D28 00022628 PSEGMENT OUTPSEG2 05300000 00200000 05/12/94 23:18:36 LSEGMENT OUTLSEG2 05300000 001326B0 The way you read this is each PSEGMENT line is followed by one or more LSEGMENT lines, describing which LSEGs are in that PSEG. SVM: I don't have the SVM PSEG saved yet (not sure who or what uses it). I'm not even sure what's in it. I think I'd have to go back to PID's default layout to find out. OUTPSEG2: This is OUT. That's Mark's and I don't touch it. OUTPSEG1 is the old stuff at 64 meg that I asked Mark to move to 83. HELPINST: comprises the portion of CMSINST that must remain below the 16-meg line 'cause it's EXEC 2 (the CMSINST- LSEG), and the help disk FST's (the HELP LSEG), which being FSTs also have to reside below the line. CMS9BV: I don't know what the BV stand for. This is what Yorktown used, so I did the same thing (good reason, huh?). This has everything that can go above the 16-meg line. The pipes module, libraries, and the REXX programs of CMSINST. There are also a few others that I don't have defined. CMSFILES (the SFS run-time code used only by the SFS servers, I think), DOSBAM (containing CMSBAM, CMSDOS, CMSVSAM, and CMSAMS), and DOSINST (used only to install DOSBAM, I think). ------------------------------------------------------------------------ The two PSEGs/NSS's I use, HELPINST and CMS9BV, are defined in the HELPINST PSEG & CMS9BV PSEG files. See the chapter on "Planning and Defining CMS Logical Saved Segments" in the "Planning and Administration" book for the details on all this. HELPINST PSEG is: CMS9BV PSEG is: LSEGMENT CMSINST- LSEGMENT OURPIPES LSEGMENT HELP LSEGMENT VMLIB LSEGMENT VMMTLIB LSEGMENT CMSINST There are 6 LSEG files that describe what's in each logical segment. CMSINST- LSEG is: (These is all the exec 2 stuff) EXEC FILELIST EXEC S EXEC PEEK EXEC S EXEC PROFFLST XEDIT S EXEC PROFPEEK XEDIT S EXEC PROFRLST XEDIT S EXEC RDRLIST EXEC S EXEC X$FLST$X XEDIT S EXEC X$PEEK$X XEDIT S HELP LSEG is: DISK 19D HELP_9 (INIT OURPIPES LSEG is: MODULE PIPELINE Y ( SYSTEM SERVICE IMMCMD NAME PIPMOD VMLIB LSEG is: LIBRARY VMLIB VMMTLIB LSEG is: LIBRARY VMMTLIB CMSINST LSEG is: (This is all the Rexx stuff) EXEC DISCARD EXEC S EXEC EXECUTE XEDIT S EXEC HELPXED XEDIT S EXEC PARSE XEDIT S EXEC RECEIVE XEDIT S EXEC TELL EXEC S EXEC INOTE $$STUB$$ Y NOTE EXEC EXEC INOTE $$STUB$$ Y CSNOTE EXEC EXEC ISEND $$STUB$$ Y SENDFILE EXEC EXEC ISEND $$STUB$$ Y CSSEND EXEC As you can see, you can have a variety of things in a logical segment. You can execload execs & xedit files, even overriding PID function as we did for NOTE & SENDFILE. You can load libraries, FST's, and NUCXLOAD modules. ------------------------------------------------------------------------ Once the PSEG & LSEG files are all defined, to define & save the NSS's, on a VM/ESA system, DEFINE STOR 100M or so. Needed 'cause CMS9BV is loaded at 85-86 meg. I CMS SETUP CMS9 For CMS9BV, DEFSEG CMS9BV 5500-56FF SR If you get DMSGEN283E The CMS9BV saved segment could not be reserved; return code 36 from SEGMENT RESERVE you may have to SEGMENT RESERVE CMS9BV and SEGMENT RELEASE CMS9BV. I don't know why, just do it. SEGGEN CMS9BV This one beauty of a command does everything. It reads the PSEG & LSEG files to determine what goes into this PSEG, does the right kind of load for each type of LSEG (execs, xedit macros, disk FST's, libraries, etc), at the right location based upon your skeleton NSS definition, does the SAVESEG, and even rebuilds the SYSTEM SEGID file. It's one amazing command. To propogate CMS9BV to other systems, you could either SPTAPE DUMP the NSS and SPTAPE LOAD it, or redo these steps for each system. CMS9BV is unlike HELPINST, which can only be saved once, then SPTAPE'd. And for HELPINST, TOOLS TO CMS919D SHUTDOWN LINK CMS9 19D 19D MR DEFSEG HELPINST C00-CFF SR SEGMENT RESERVE HELPINST SEGGEN HELPINST If you get DMSGEN283E The HELPINST saved segment could not be reserved; return code 41 from SEGMENT RESERVE you may have to SEGMENT RESERVE HELPINST, then retry the SEGGEN. I think the SEGGEN MODULE or something it calls is either loaded at, or is using free storage from the C meg before the program does the SEGMENT RESERVE, so if you do it before hand, everything works. LINK CMS9 19D 19D RR TOOLS TO CMS919D START To propogate HELPINST to other systems, you must SPTAPE DUMP the NSS and SPTAPE LOAD it again. You cannot recreate the NSS without invalidating the HELP LSEG for the other systems. Remember, the SAVEFD process writes a ticky mark in the disk label. The SEGGEN command rebuilds the SYSTEM SEGID file on your a-disk, which will have to be saved on the S-disk and the CMS system resaved. TOOLS TO CMS9190 REP SYSTEM SEGID (Reason why. SAVECMS CMS When propogating NSS's to other systems, remember to also SAVECMS CMS there also. ------------------------------------------------------------------------ To make use of all these glorious logical segments, LSEG Do -------- --------------------------------------------- CMSINST- SEGMENT LOAD CMSINST- (Done in SYSPROF EXEC) HELP ACCESS Command (Typically, done by the HELP command) OURPIPES SEGMENT LOAD OURPIPES (Done in SYSPROF EXEC) VMLIB SEGMENT LOAD VMLIB (Done in SYSPROF EXEC) VMMTLIB * SEGMENT LOAD VMMTLIB (Done by DMSINS before SYSPROF EXEC) CMSINST * SEGMENT LOAD CMSINST (Done by DMSINS before SYSPROF EXEC) To make sure you are using the saved segments, for the SEGMENT loaded ones, Query Segment. For HELP, access the help disk and insure the word "shared" is present when you run your ADTS EXEC. * Both VMMTLIB & CMSINST are defined in DMSNGP. ------------------------------------------------------------------------ Two anamolies occurred setting all this up. First, David Singer wanted the IUO version of PIPES installed, not the PID version. He says the IOU version from VMTOOLS is kept more current than PID's version. The IOU version is called PIPELINE MODULE on the Y-disk. PID's version is DMSPIPE MODULE on the S-disk. It was a simple matter to create a OURPIPES LSEG that pointed to the correct module, but this caused the PID, 1-megabyte default for the CMSPIPES NSS definition to overflow 1 meg, so I combined pipes along with everything else that can go above the 16-meg line into one, 2-meg PSEG. The second anomoly is the Help disk FST's. This LSEG is saved under the SEGGEN covers with a SAVEFD command, which requires you to have the help disk linked in write mode, 'cause SAVEFD writes a ticky mark that the Access code reads to determine the name of the saved segment and also the date it was last saved. If the date has changed, the saved FST's aren't used. This means that whenever a help file is updated, the SEGGEN for HELPINST needs to be redone & SYSTEM SEGID updated. More subtlely, it also means that for multiple systems using the same 19D disk, you can't just go to each system and resave the LSEG. Each resave rewrites the label & the pointer on the disk, invalidating all the other systems' LSEG. What you have to do is SPTAPE DUMP and LOAD the PSEG. What a pain.