User link libraries

The LIBDEF ISPLLIB service can be used to specify load libraries containing programs and command processors, which are part of an ISPF application. The LIBDEF ISPLLIB definition causes load modules to be searched in the specified load libraries by the SELECT service.

The LIBDEF library definitions are not searched by MVS™ member searches caused by the execution of ATTACH, LINK, LOAD, or XCTL macros within the selected program (SELECT PGM), or on the selection of authorized programs or commands. The LIBDEF library definitions are searched for selected commands (SELECT CMD).

These rules apply:
  • If the SELECT program service is invoked using ISPEXEC SELECT PGM(MYPROG), MYPROG is considered a member of the load libraries specified with LIBDEF ISPLLIB. If MYPROG then transfers control by using MVS contents supervision macros such as ATTACH, LINK, LOAD, or XCTL, any new requested program that exists only in the LIBDEF data set is not found, and an 806-04 abend occurs. This is because ISPF links to MYPROG, and MVS is not aware of the load library defined using LIBDEF ISPLLIB.
  • If the SELECT program service is invoked using ISPEXEC SELECT CMD(MYCMD), MYCMD is considered a member of the load libraries specified with LIBDEF ISPLLIB. The command processor (a program coded to support a unique argument list format) can then use MVS contents supervision macros such as ATTACH, LINK, LOAD, or XCTL. This is because ISPF attaches MYCMD as a subtask to ISPF. The load library, defined using LIBDEF ISPLLIB, is passed as a task library to the subtask.

If LIBDEF is issued while in split screen, it will only affect the screen on which it is issued, because each screen is a separate ISPF session with its own TCB and tasklib.