9. PROCESSING › 9.4 Using COMMON Input DDnames and DEXINPUT exits
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