AllFusion CA-Librarian Subsystem Capabilities and Things You Should be Aware of
AllFusion CA-Librarian has a Subsystem Option called LAM that reads AllFusion CA-Librarian Master files. This option allows users to have AllFusion CA-Librarian Master files specified in a SYSLIB DD concatenation during compiles. The AllFusion CA-Librarian Subsystem, LAM, handles only BSAM /BPAM logic and any deviation from this will fail because the I/O requests do not allow the CA-Librarian Subsystem to get control.
The AllFusion CA-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 AllFusion CA-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 AllFusion CA-Librarian Master file, LAM sets up for reading that member from the AllFusion CA-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 AllFusion CA-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 AllFusion CA-Librarian Master file.
Due to many environment changes with z/OS be sure you have the most current fixes for AllFusion CA-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