Librarian Subsystem capabilities and things you should be aware of
search cancel

Librarian Subsystem capabilities and things you should be aware of

book

Article ID: 55646

calendar_today

Updated On:

Products

Librarian

Issue/Introduction

Librarian Subsystem capabilities and things you should be aware of

Resolution

Librarian has a Subsystem Option called LAM that reads Librarian Master files. This option allows users to have Librarian Master files specified in a SYSLIB DD concatenation during compiles. The Librarian Subsystem, LAM, handles only BSAM /BPAM logic and any deviation from this will fail because the I/O requests do not allow the Librarian Subsystem to get control.

The Librarian Subsystem has been used with utility programs such as IEBGENER, IDCAMS and others. Language Compilers will work as long as the calling sequence to access a member is strictly BSAM /BPAM logic.

How this process works is that the SYSLIB DD data sets are handled and allocated by Librarian using the SUBSYS=LAM parameter. Even non-librarian data sets have to have the SUBSYS parameter specified when a librarian data set is present in a SYSLIB concatenation. When an OPEN, FIND, READ etc. is issued by the compiler, provided the SUBSYS=LAM parameter has been supplied, LAM checks if the Data set in the SYSLIB concatenation is a Librarian Master and if so it handles the request for that Data set. If the requested member is found and it happens to be a Librarian Master file, LAM sets up for reading that member from the Librarian Master file and passes the records to the compiler on subsequent READ requests. Without this functionality, COPYBOOK members imbedded within a Librarian main member and residing in an Librarian Master file would have to be written out to a PDS before attempting to compile the main member. This would require an extra step before compiling a member that has COPYBOOK members in an Librarian Master file.

Due to many environment changes with z/OS be sure you have the most current fixes for Librarian Subsystem LAM. In addition make sure you also have IBM most current fixes for z/OS 1.5 and higher, specifically APAR PQ90312 and APAR OA08754. If you are using SUBSYS=LAM abends can occur without these fixes.

Here is an example of using SUBSYS=LAM parameters to compile a member that resides in a Librarian Master as well as COPYBOOKS that the main member includes which are also in a Librarian Master.

//ASM EXEC PGM=ASMA90,REGION=0M,                                  
// PARM=('OBJECT,NODECK,LIST')             
//SYSLIB    DD    DSN=A.LIBRARIAN.FILE,DISP=SHR,SUBSYS=LAM       
//          DD    DSN=SYS2.MCALIB,DISP=SHR,SUBSYS=LAM           
//          DD    DSN=SYS1.MACLIB,DISP=SHR,SUBSYS=LAM                 
//SYSUT1    DD   DSN=&&SYSUT1,UNIT=VIO,SPACE=(1700,(1000,500))        
//SYSUT2    DD   DSN=&&SYSUT2,UNIT=VIO,SPACE=(1700,(500,500))         
//SYSUT3    DD   DSN=&&SYSUT3,UNIT=VIO,SPACE=(1700,(500,500))         
//SYSTERM   DD   SYSOUT=*,DCB=BLKSIZE=1089                            
//SYSLIN    DD   DSN=&&TEMP1,                                      
//             UNIT=VIO,SPACE=(3200,(15,15)),DISP=(NEW,PASS,DELETE),
//             DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)                 
//SYSIN     DD  DSN=A.LIBRARIAN.FILE(PGM001),DISP=SHR,SUBSYS=LAM  
//SYSPRINT  DD  SYSOUT=*,DCB=BLKSIZE=1089