UDM - Copying Load Modules - zOS
Overview
UDM for z/OS provides the ability to copy load modules.
Note
Version 3.2.0 or greater of UDM must be used on both the source and destination sides of the transfer operation for a load module to be properly copied and usable.
Syntax
The syntax for copying load modules is the same as any copy operation involving PDS/Es. However, there are some differences in how the copy operation takes place when the command to copy load module(s) is issued.
Source Side
On the source side of the transfer, UDM uses IEBCOPY to unload the load modules, matching the source file mask from the PDS/E in which they reside into a temporary data set. It is this temporary data set that is transferred to the destination system. As a result, when UDM displays the status messages indicating that it is copying a file, it is the name of the temporary file that is displayed, since that is what is actually being transferred.
Destination Side
A temporary file name is also used on the destination side of the transfer. After the temporary file has been transferred, the load modules are 'unpacked,' using IEBCOPY, into a staging PDS/E (also using a temporary data set name). This PDS/E is created using the same attributes as the source PDS/E. From there, IEBCOPY is called a final time to move the load modules from the staging PDS/E to the final destination PDS/E. At this point, all of the temporary files are cleaned up.
The two-step process on the destination side of the transfer is used in case the blocking of the final destination data set does not match that of the source PDS/E.
Copying Load Module Example
Load Module Transfer Script
The following figure illustrates an example script of a load module transfer.
This simple script will copy all of the load modules from a PDS/E on the source system named MYHLQ.UDM.TESTLM to a newly created PDS/E on the destination system named YOURHLQ.TEST.LOAD.
Load Module Transfer Script - Output
The following figure illustrates an example of the output that is received when running a script such as that illustrated above.
At the beginning of the copy operation, the source side indicates that it is packaging the load modules into a temporary data set, MYHLQ.UDMTMP.STC07047.R2EED53.N0000000. This is the temporary data set that is transferred using a data set name of YOURHLQ.UDMTMP.JOB07063.RD36420.N0000000 on the destination side. It is from YOURHLQ.UDMTMP.JOB07063.RD36420.N0000000 that the load modules are unpacked into the temporary staging data set before being moved into the final destination PDS/E, YOURHLQ.TEST.LOAD, which was specified in the copy command.
As you can see, some of the output from a copy operation involving load modules may vary from the output when copying other types of data sets. However, the nomenclature of the copy command has not changed.
Likewise, attributes such as CREATEOP, DIRBLOCKS, and others work the same way with load modules as they do with other types of data sets. This includes the caveat that the attribute settings must be compatible with the type of data set(s) involved in the transfer.
Error Reporting
It is possible for the IEBCOPY portions of a load module transfer to fail. If this occurs, UDM prints the output from IEBCOPY in the transaction log.
Special Attributes
UDM uses heuristics in determining the space attributes for allocating the temporary data sets. The volume that these data sets reside is chosen by the system.
TMPVOLSER Attribute
The TMPVOLSER attribute lets you set the volume on which the temporary files will be allocated.
- Setting this attribute on the source side specifies the location of the temporary sequential data set that will be transferred.
- Setting this attribute on the destination side specifies the volume for the temporary transfer file as well as the volume used by the temporary staging PDS/E.
TMPPRIMSPACE, TMPSECSPACE, and TMPSPACEUNIT Attributes
The TMPPRIMSPACE, TMPSECSPACE, and TMPSPACEUNIT attributes specify the amount of primary space and secondary space used when allocating the temporary files as well as the space unit used.
- When set on the source side, these attributes affect the temporary sequential data set that will be transferred.
- When set on the destination side, these attributes are used in allocating the temporary transfer file and the temporary staging PDS/E.
TMPDIRBLOCKS Attribute
The TMPDIRBLOCKS attribute is used only on the destination side. It specifies the number of directory blocks used by the staging PDS/E.
Note
Although you can override these attributes, it is not recommended.