ALTLIB - Alternate Library
`ALTLIB` (Alternate Library) is a TSO/E command that allows a user to dynamically and temporarily modify the search order for programs, CLISTs, and REXX EXECs within their current TSO/E session. It provides a mechanism to add or replace data sets in the effective `STEPLIB`, `SYSPROC`, `SYSEXEC`, or `ISPLLIB` concatenations without altering JCL or system-wide configurations. Its primary purpose is to facilitate testing, development, and temporary environment changes for interactive users.
Key Characteristics
-
- TSO/E Command:
ALTLIBis executed interactively from the TSO/E READY prompt or within CLISTs and REXX EXECs. - Session-Specific: Changes made with
ALTLIBare temporary and apply only to the current TSO/E session; they do not persist across logoffs or system IPLs. - Dynamic Modification: It allows users to add, replace, or remove libraries from the search path without requiring a
LOGOFF/LOGONcycle or JCL modifications. - Scope of Influence: Can affect
STEPLIB(for load modules),SYSPROC(for CLISTs),SYSEXEC(for REXX EXECs), andISPLLIB(for ISPF load modules). - Prioritization: Libraries defined via
ALTLIBare typically searched *before* the standard system libraries or JCL-definedSTEPLIB/JOBLIBentries, allowing for overrides. - Stacking Capability: Supports defining multiple alternate libraries, creating a specific search order for different types of executables.
- TSO/E Command:
Use Cases
-
- Testing New Program Versions: Developers can test a new version of a COBOL program or utility without deploying it to a shared production
STEPLIB, ensuring isolation and preventing impact on other users. - Application Development: During the development lifecycle, developers can quickly switch between different versions of application modules or libraries for debugging and iterative testing.
- Problem Determination: System programmers can temporarily introduce a diagnostic tool, a patched module, or a different version of a system utility to troubleshoot a specific issue in a controlled manner.
- ISPF Application Development: Test new ISPF panels, skeletons, or messages by directing ISPF to an alternate
ISPLLIBconcatenation containing the development versions. - Customizing User Environments: Provide specific library access for a particular user or group for specialized tasks without modifying their logon procedures or system-wide concatenations.
- Testing New Program Versions: Developers can test a new version of a COBOL program or utility without deploying it to a shared production
Related Concepts
ALTLIB serves as a dynamic, interactive counterpart to JCL-defined library concatenations like STEPLIB and JOBLIB, allowing users to override or augment these paths temporarily without JCL modification. It is a fundamental TSO/E command, deeply integrated with the interactive mainframe environment, and is frequently leveraged within CLIST and REXX EXECs to manage library search paths for programs or other scripts executed within those environments. Furthermore, ALTLIB can manage ISPLLIB for ISPF applications, enabling developers to test new ISPF components.
- Avoid in Production JCL: Do not use
ALTLIBin production JCL or system-wide procedures due to its temporary nature and potential for creating non-standard, difficult-to-reproduce environments. - Document Usage: If
ALTLIBis used in shared development or test environments, clearly document its usage, the libraries being pointed to, and the purpose to prevent confusion. - Clear When Done: Always use
ALTLIB DEACTIVATEorALTLIB RESETwhen finished with an alternate library setup to prevent unintended side effects or the loading of incorrect modules in subsequent operations. - Understand Search Order: Be thoroughly aware of the exact search order when using
ALTLIB, especially when combined withSTEPLIBorJOBLIB, to ensure the correct modules are being loaded and executed. - Security Considerations: Ensure that users have appropriate RACF or equivalent security access to any alternate libraries they specify via
ALTLIBto prevent unauthorized access or execution of programs.