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,
//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,
//SYSIN DD DSN=A.LIBRARIAN.FILE(PGM001),DISP=SHR,SUBSYS=LAM
//SYSPRINT DD SYSOUT=*,DCB=BLKSIZE=1089
In addition check out CA's new Measured Workload Pricing and Capacity-Based Pricing for VM/VSE.
FLEX Pricing MWP for VSE
Contribute Your Ideas
If you have a technique that you would like to share with the AllFusion CA-Librarian community as a published article, please contact AllFusion CA-Librarian Customer Support.