Previous Topic: 9.2 Logic and Flow

Next Topic: 9.2.2 Module Descriptions

9.2.1 Structure and Flow


This section addresses the physical and logical structure of
the VM Data Transfer Program.  The transfer and receive
portions of the program are addressed separately.


DATA FLOW BETWEEN SYSTEMS

The VM Data Transfer Program moves data between the VM Spool
(or a tape or disk file) and MVS DASD.  This is accomplished
by reading data and converting it into a suitable
intermediate form.  When the data is moved using NJE, it is
converted into 80-byte card images and embedded in a job sent
to MVS via RSCS, using NJE.  This job is then executed on the
target MVS system and the data is written to an MVS data set.

When tape is used to transfer the data, the data is written
to tape either in fixed or variable format, depending on the
original data and options selected.  This tape is then
transported to the MVS system, where it is read and written
to an MVS data set.  Figure 9-1 illustrates this flow.


THE TRANSFER FUNCTION'S STRUCTURE

The transfer portion of the VM Data Transfer Program is
divided into the following primary routines:

    1. Initialization and Parameter Analysis, performed in
       VMTXFR
    2. Process Driver, VMTXFR
    3. Data Input Routine, Module VMTOSI, VMTRDA, VMTRDM, or
       VMTMWI
    4. Data Selection Routine, Module VMTSEL or VMTXEL
    5. Data Compression Routine, Module VMTCMP
    6. Data Split Routine, Module VMTXFR, subroutine SPLITTER
    7. Data Output Routine, Module VMTOSO or VMTPUN
The data selection, data compression, and data split routines
are called only when specified via VMTXFR parameters.

Figure 9-2 illustrates the structure of the transfer logic.
The flow of control is governed by the process driver loop
which requests input, calls for data selection if required,
then calls for the first output module.  The data compression
routine is called as an output module when compression is
selected.  The data compression routine then passes control
to either the split routine, if split is requested, or the
output routine, if split is not requested.  This
determination is controlled by the address in CMPIO@ of the
VMTCMPCB control block.

When compression is not requested, the process driver calls
the split routine, if splitting is required, or the output
routine, if splitting is not required.  The split routine
passes control to the output routine.


THE RECEIVE FUNCTION'S STRUCTURE

The receive portion of the VM Data Transfer Program is
divided into the following primary routines:

   1. Initialization
   2. Process driver
   3. Data decompression
   4. Data join (rebuild split records)
   5. Data input
   6. Data output

All primary routines except data decompression are in module
VMTRCV.  Data decompression is performed in module VMTCMP.
The decompression routine is called as an input module, which
subsequently calls the join routine.  Both of these routines
examine the data to determine whether or not decompression
and join services are required.  If these services are not
required, the data from the input file is passed directly to
the process driver via a VMTCMPCB control block.

The output routine examines the VMTCMPCB control block to
validate data control block (DCB) characteristics and writes
the data record using the queued sequential access method
(QSAM).  Figure 9-3 illustrates the structure of the receive
function.


                                      Outbound Data Flow

___________                                                   _________
           |                                                 |
VM  Spool  |---------+                            +--------->| VM Spool  --->  RSCS --/NJE
___________|         |        +----------+        |          |_________
                     |        |   Data   |        |
___________          |------->| Transfer |------->|           _________
           |         |        | Function |        |          |
   Disk    |         |        +----------+        |          |
    or     |---------+                            +--------->|  Tape
   Tape    |                                                 |
___________|                                                 |_________

 Data origin                   Transfer                 Intermediate Data      NJE Network Entry







                                       Inbound Data Flow
              ___________
                         |
NJE/==> JES   JES Spool  |---------+                            +---------
              ___________|         |        +----------+        |
                                   |        |   Data   |        |  Disk
              ___________          |------->| Receive  |------->|   or
                         |         |        | Function |        |  Tape
                         |         |        +----------+        |
                 Tape    |---------+                            +---------
                         |
              ___________|

              Intermediate Data File           Receipt          Final Data


 Figure 9-1.  Inter-System Data Flow







                          +--------------------+
                          |   Initialization   |
                          |        and         |
                          | Parameter Analysis |
                          +--------------------+
                                    |
                                    |
                                    |
                          +-------------------+     +-------------------+
                          |   Process Driver  |     |    Termination    |
                          |       Loop        |---->|        and        |
                          |                   |     |  Exit Processing  |
                          +-------------------+     +-------------------+
                                    |
          __________________________|__________________________________________
         |                          |                         |                |
         |                          |                         |                |
+-------------------+     +-------------------+     +-------------------+      |
|    Data Input     |     |  Data Selection   |     |  Data Compression |      |
|     Routine       |     |      Routine      |     |      Routine      |      |
+-------------------+     +-------------------+     +-------------------+      |
                                                              |                |
                                                              |                |
                                                    +-------------------+      |  Path is dependent on
                                                    |    Data Split     |  <---+  VMTXFR parameters
                                                    |      Routine      |      |
                                                    +-------------------+      |
                                                              |                |
                                                              |                |
                                                    +-------------------+      |
                                                    |    Data Output    |  <---+
                                                    |      Routine      |
                                                    +-------------------+


 Figure 9-2.  Transfer Structure and Flow









                          +--------------------+
                          |   Initialization   |
                          |                    |
                          +--------------------+
                                    |
                                    |
                                    |
                          +-------------------+     +-------------------+
                          |   Process Driver  |     |    Termination    |
                          |       Loop        |---->|        and        |
                          |                   |     |  Exit Processing  |
                          +-------------------+     +-------------------+
                                    |
          __________________________|___________________________
          |                                                    |
          |                                                    |
+--------------------+                              +-------------------+
| Data Decompression |                              |    Data Output    |
|      Routine       |                              |       Routine     |
+--------------------+                              +-------------------+
          |              The execution of decompression
          |              and  data  join  routines   is
+--------------------+   dependent on input data format.
|     Data Join      |
|      Routine       |
+--------------------+
          |
          |
+--------------------+
|     Data Input     |
|      Routine       |
+--------------------+


 Figure 9-3.  Receive Structure and Flow