Concept of reusable and ron-reusable load modules

Hi Friends,

Can you please shade some light on “Concept of reusable and non-reusable load modules” (ADARUN, ADAIOR, ADAIOS etc)?

I did find a little info in installation guide but couldn’t get the concept. Please direct towards correct documentation.

A load module can be marked non-reusable, reusable and re-entrant. To simplify somewhat:
A non-reusable module can only be loaded for one task - the code is assumed to be self-modifying (data and code are in the same load module).
A reusable (“serially reuseable”) module can be used by a second task when the first is finished with it (generally the module will acquire its own data space dynamically).
A re-entrant module can be used by multiple tasks at the same time - data areas are provided by the calling routines.

Shared routines (eg ADAIOR) will generally need to be re-entrant and reusable so multiple threads can share the same copy of the load module in memory at the same time. Client applications (ADARUN) are usually not re-entrant and often not re-usable - a fresh, non-shared copy of the module is loaded into each task’s memory.

Thanks Douglas!

This helps a lot. Do we have a document that lists all these details?

I suggest you google IBM sites for this information. It is not Software AG software, but mostly IBM (z/OS). Look for topics on the linkage editor (now called the “binder”).

I found one with “rent reus norent ibm load module”:

Thanks for further details Douglas!