Load module
The runnable form of a program, stored in a library, which JCL executes by name.
Also written program object, executable
A load module is a compiled and link-edited program, ready to run. It lives as a member in a load library, and the EXEC statement in JCL names it to run it.
The lifecycle is worth holding in mind: source code in a source library, compiled to an object module, link-edited into a load module in a load library, executed by a job. Three libraries, three forms of the same program.
When a job runs, the system searches for the named module in the libraries the JCL specifies, then in the site's standard libraries. Which copy it finds is decided by that search order, and one of the classic confusions in mainframe work is a change that appears to have no effect because an older copy of the module is being picked up from an earlier library in the sequence.
On modern systems these are often program objects held in PDSE libraries rather than classic load modules, which removes several old size and structure limits. In everyday conversation both are called load modules.
Related terms
- Link-editCombining compiled object code with the other modules it needs into a single runnable program.
- CompileTurning COBOL source code into machine instructions, checking the syntax and producing a listing of any errors.
- PDSEThe modern version of a partitioned dataset, which reclaims space automatically and removes the old size limits.
- EXEC statementThe JCL statement that starts a step by naming the program or procedure to run.
- Partitioned datasetA dataset that works like a library or folder, holding many separately named members inside one dataset.