© 1998-2017 GSF Software LLC |
LLIBDEF enhances ISPF applications by making them fully compatible with the LIBDEF ISPLLIB service.
Certain ISPF applications, either home-grown or vendor-supported such as QMF and OPC/A, can not be invoked dynamically using LIBDEF. These ISPF applications have not been designed for the LIBDEF ISPLLIB environment and when they attempt to issue LOAD, LINK, XCTL or ATTACH, they often fail with a "module not found" condition, viewed by the user as an S806 abend (806-04).
LLIBDEF prevents these S806-04 abends from occuring, allowing most ISPF applications to be invoked dynamically using LIBDEF ISPLLIB. In some cases, it is even possible to invoke two versions of the same application at the same time, in different logical screens of the same TSO/ISPF session.
With LLIBDEF in place, system programmers in charge of installing the application can remove the application's load libraries from the STEPLIB, TSOLIB or ISPLLIB concatenations, thereby improving performance, as well as facilitating maintenance and testing of new versions of the application. LLIBDEF may advantageously replace costly Dynamic STEPLIB products sometimes used to provide similar functionality.
To implement LLIBDEF, the CLIST or REXX exec normally used to set up the LIBDEF environment must be modified to invoke LLIBDEF before the ISPF SELECT service which starts the ISPF dialog is issued. LLIBDEF can be invoked as a program, a TSO command, via the ISPF SELECT service, or as a REXX function or routine. To suppress the display of informational and warning messages, PARM=QUIET may be specified when LLIBDEF is invoked as a program. QUIET can also be specified as a parameter when LLIBDEF is invoked as a TSO command.
The sample REXX exec below invokes QMF using the LIBDEF service and LLIBDEF.
ADDRESS TSO "ALLOCATE DD(ADMGGMAP) DS('QMF.V3R1M1.DSQMAPE') SHR" "ALLOCATE DD(ADMCFORM) DS('QMF.V3R1M1.DSQCHART') SHR" "ALLOCATE DD(DSQPNLE) DS('QMF.V3R1M1.DSQPNLE') SHR" "ALLOCATE DD(DSQDEBUG) SYSOUT(Z)" "ALLOCATE DD(LIBTRACE) SYSOUT(Z)" "ALTLIB APPL(EXEC) DA('QMF.V3R1M1.DSQEXECE')" "CALL 'SYS2.LLIBDEF.AUTHLIB(LLIBDEF)' 'QUIET' " /* LIBDEF ISPLLIB Enhancer */ ADDRESS ISPEXEC "LIBDEF ISPPLIB DATASET ID('QMF.V3R1M1.DSQPLIBE')" "LIBDEF ISPMLIB DATASET ID('QMF.V3R1M1.DSQMLIBE')" "LIBDEF ISPSLIB DATASET ID('QMF.V3R1M1.DSQSLIBE')" "LIBDEF ISPTLIB DATASET ID('QMF.V3R1M1.DSQTLIBE')" "LIBDEF ISPLLIB DATASET ID('QMF.V3R1M1.DSQLOAD' 'DB2.V3R1M0.SDSNLOAD')" "SELECT PGM(DSQQMFE) NEWAPPL(DSQE) PASSLIB"
LLIBDEF works on OS/390 R4 systems and above, which includes all releases of z/OS. LLIBDEF must be authorised in the AUTHTSF section of the active IKJTSOxx member of the PARMLIB and executed out of an APF-authorised library.
Search key-words: ibm mainframe main-frame mvs esa os/390 z/os os390 zOS TSO ISPF CLIST REXX member members pds pdse pdses DSORG=PO directory directories select selecting selected exclude excluded library libraries dataset datasets file files load-library load-libraries loadlib lib load-module load-modules program library utility program object objects pds pdse pds/e binder linkage editor linkedit link edit lked load object module modules linklist