Parts of DDM: Source DDM

The support on the client (or local) system is started, as needed, within a source job to do DDM functions.

The source DDM (SDDM) translates requests for remote file access from client system application programs into DDM requests that are routed to the server system for processing. The SDDM support establishes and manages a DDM conversation with the server system that has the desired remote file.

When an application program first attempts to access a remote file, a search for the requested DDM file is done on the client system. As with local file processing, if the file name is not qualified with a library name, the current library list for the job in which the program is running is searched for the specified file. When the file is found, the system accesses the file, determines that it is a DDM file and starts the SDDM.

When the SDDM is started, it checks to see if a DDM conversation is already active between the source job starting the SDDM and the server system identified by the remote location and mode values in the DDM file. If a conversation that can be used exists, it is used. If not, a program start request is issued to the appropriate server system to start a TDDM (a target job) on the server system to establish a DDM conversation between the SDDM and TDDM. Parameters that are automatically created from information in the DDM file about the remote file are passed when the remote system sends a program start request.

After the TDDM is started, the SDDM can forward each program request to the target job for processing. If, for example, input/output (I/O) operations are to be done on a remote file, the program opens the file and then issues the desired operation requests. The SDDM forwards the open request and the TDDM opens the remote file. Then the SDDM forwards each file operation request to the TDDM, and both of them handle the interchange of data between the application program and the remote file. When a DDM function is being processed, the requesting program waits for the function to be completed and the results to be received, just as it does for local file operations.