Previous Topic: 9.3 User Exits

Next Topic: 10. MODIFICATION

9.4 Using COMMON Input DDnames and DEXINPUT exits


The COMMON statement is an optional DEXOPS parameter entry
designed primarily for handling VMS data that has been
preprocessed into a special user-defined format for
consolidated input of many systems through a single input
DDname.  There is no standard format for consolidating data
from multiple VMS systems, nor is there a standard method.
If you wish to consolidate data in this manner, you must
define the method and format.  If you do so, be sure to
preserve original data record order and relative positions of
standard data fields when combining files into a consolidated
format.


SUGGESTED FORMAT FOR CONSOLIDATED DATA

DEXPGEN supports a suggested format for consolidated data, or
you can define your own data format.  The suggested format
supported by DEXPGEN is as follows:

  Record Prefix    (14 bytes)   +  Standard Record Contents
  -----------------------------    -------------------------
  NODENAME 10bytes  TYPE 4bytes    (as provided by VAX/VMS)

where:

    NODENAME is a 10 byte ASCII field identifying the VAX/VMS
    system node that is the source of the data.

    TYPE is a 4 byte ASCII field identifying the VAX/VMS data
    source (ACCO for ACCOUNTING, MNTR for MONITOR, and DXSU
    for DEXSUS).

In this format, every input record is prefixed with 14 bytes
of information about system identification and data type.
This is followed by the standard record layout for each input
record.  Support for this format is based on the assumption
that the data is consolidated before transmission to MVS and
thus it is assumed that the prefix information is recorded in
ASCII.


OTHER FORMATS FOR CONSOLIDATED DATA

If you want to use a format that varies from the suggested
scheme, it is possible to override these assumptions with
your own definition of the DEXINPUT exits (DEXINPTA,
DEXINPTM, and DEXINPTS).  DEXPGEN supports the suggested
format by generating macros to
prefix.MICS.USER.SOURCE($DEXMSTR).  The code is structured to
make it easy for you to override the suggested format if
necessary.  Overrides should be defined in the module
prefix.MICS.USER.SOURCE($DEXEXIT).  For example, to read
NODENAME and TYPE as EBCDIC rather than ASCII characters,
code the following macro overrides in $DEXEXIT:


  %MACRO DEXINPTM;
      ROFFSET=14;
      INPUT @1
       VAXID $CHAR10. VAXDS $CHAR4.
       @ ;
      IF VAXDS NE "MNTR" THEN GOTO EOF_CK;
  %MEND  DEXINPTM;

  %MACRO DEXINPTA;
      ROFFSET=14;
      INPUT @1
       VAXID $CHAR10. VAXDS $CHAR4.
       @ ;
      IF VAXDS NE "ACCO" THEN GOTO EOF_CK;
  %MEND  DEXINPTA;

  %MACRO DEXINPTS;
      ROFFSET=14;
      INPUT @1
       VAXID $CHAR10. VAXDS $CHAR4.
       @ ;
      IF VAXDS NE "DXSU" THEN GOTO EOF_CK;
  %MEND  DEXINPTS;

To learn more about how DEXPGEN supports these macros, review
the code in sharedprefix.MICS.SOURCE(DEXACT,DEXMON,DEXSUSA)
and in prefix.MICS.USER.SOURCE($DEXMSTR).


COMMON STATEMENT

The COMMON statement is used to identify the JCL reference to
be used when reading MONITOR, ACCOUNTING, or DEXSUS data for
one or more VMS systems from the same input DDname.

+-----------------------------------------------------------+
|COMMON datatype ddname EXIT (optional for MONITOR & DEXSUS)|
+-----------------------------------------------------------+

where:

    'datatype' is MONITOR, ACCOUNT, or DEXSUS.

    'ddname' is the DDname that will be used to read this
    datatype for the systems.

    EXIT is a literal keyword that indicates you wish to
    invoke the special purpose DEXINPUT exit routines for the
    datatype indicated.  EXIT is optional for MONITOR and
    DEXSUS, and is required for ACCOUNT.  This is due to the
    fact that system identification is NOT possible using
    ACCOUNTING data without an EXIT, while MONITOR and DEXSUS
    data normally contains a system identification record.

Sample COMMON Statements:

       COMMON MONITOR DEXMON  EXIT
       COMMON ACCOUNT DEXACC  EXIT
       COMMON DEXSUS  DEXSUS  EXIT


The definition of the data items described above is made
through the DEXOPS member in the prefix.MICS.PARMS library.
A sample definition is illustrated below.  Note that the
'ddname' field on the MONITOR, ACCOUNT, and DEXSUS statements
is specified as '*' to indicate that the COMMON statement
will provide the DDname for this data.


SAMPLE DEFINITION USING DEXINPUT EXITS:

    COMMON MONITOR DEXMON  EXIT
    COMMON ACCOUNT DEXACC  EXIT
    COMMON DEXSUS  DEXSUS  EXIT
    OPTIONS   VMSA  SYSTEMA
      MONITOR VMSA  *
      ACCOUNT VMSA  *
      DEXSUS  VMSA  *
    OPTIONS   VMSB  SYSTEMB
      MONITOR VMSB  *
      ACCOUNT VMSB  *
      DEXSUS  VMSB  *
    OPTIONS   VMSC  SYSTEMC
      MONITOR VMSC  *
      ACCOUNT VMSC  *
      DEXSUS  VMSC  *



Input DD Statements for VAX/VMS (INPUTDEX)

The input DD statements to define the VAX/VMS input files
must be supplied in the INPUTDEX member of the
prefix.MICS.PARMS library, and are referenced by the MONITOR,
ACCOUNT, DEXSUS, and COMMON statements of DEXOPS.

To provide for MONITOR, ACCOUNTING, or DEXSUS data from
multiple systems though a single DDname, you must specify a
COMMON statement in DEXOPS for each type of data.  You must
also provide a DDname in INPUTDEX that corresponds to the
DDname on the COMMON statement.  This DDname may contain data
from one or more VMS systems.

For example, in the JCL below, the unit will process VMS
ACCOUNTING data from SYS1 and SYS2, VMS MONITOR data from
SYS1, SYS2, and SYS3, and DEXSUS data from SYS2 and SYS3.
Each type of data will be brought in using a single DDname,
specified in DEXOPS.  The DD statements will read as
follows:

     //DEXACC   DD DISP=SHR,DSN=VMS.SYS1.ACCOUNT.DATA
     //         DD DISP=SHR,DSN=VMS.SYS2.ACCOUNT.DATA
     //DEXMON   DD DISP=SHR,DSN=VMS.SYS1.MONITOR.DATA
     //         DD DISP=SHR,DSN=VMS.SYS2.MONITOR.DATA
     //         DD DISP=SHR,DSN=VMS.SYS3.MONITOR.DATA
     //DEXSUS   DD DISP=SHR,DSN=VMS.SYS2.DEXSUS.DATA
     //         DD DISP=SHR,DSN=VMS.SYS3.DEXSUS.DATA