Following are considerations in determining whether or not to migrate
to program objects:
- The only system library which supports program objects is SYS1.LINKLIB
(plus all libraries in Linklist concatenation). SYS1.LPALIB, SYS1.NUCLEUS,
and SYS1.SVCLIB are opened and accessed during IPL before the PDSE
support is established and therefore can not be PDSEs.
- However, it is possible to put program objects into LPA using
the Dynamic LPA functions. This function opens the program libraries
to be included dynamically after the system has been initialized,
thus allowing PDSE participation. The program objects can be in any
user-specified authorized PDSE program library.
- Program objects have the same restrictions as do data members
in PDSEs. They cannot be accessed using EXCP, nor can there be any
TTR calculations done against them. Programs requiring this access
should not be converted.
- Program objects will occupy more space on DASD than
did their load module counterparts. In load module format, large uninitialized
areas of the program were represented by gaps in the program text;
in the PM1 program object format those gaps are filled with binary
zeros and written out to disk. However, gaps are reinstated in program
objects in PM2 format and later. They will still take more space
on DASD then load modules for several reasons. First, program objects
are formatted on 4K boundaries with the minimum size being 4K, and
the algorithm for compacting uninitialized space differs from that
used by the linkage editor. Also, additional information is saved
in program objects to allow faster loading, and to enable rebinding
of C-type modules (formerly the Language Environment® prelinker
discarded the rebinding information when producing its output object
module).
- If new program object features are exploited, such as a length
greater than 16 megabytes, or more than 32767 external names, greater
than 8-byte names, multiple classes, multiparts, split-modes, or deferred
classes, the program object cannot be converted back
to a load module.
- PDSE program libraries can take advantage of the PDSE cross-system
sharing support offered in z/OS®.
- As discussed earlier, special attention must also be given to
mixing specific levels of the program object with different z/OS releases.
- Only program objects can reside in z/OS UNIX files. Load
modules are not supported.