EPA External Analyzers
EPA External Analyzers are routines that provide many commonly needed analyses on extracted information contained in EPA Data Files. The External Analyzers include the COBOL and PL/I source code they are written in (x suffix: C - COBOL; P - PL/I) plus sample JCL to run them. Analyzers included with the EPA package are:
- ASMHL1x/ASMHL2x/ASMHL3x
- This suite of three programs produces a series of reports that can help assess the impact of Assembler code on an LE migration. The listings provided are:
- ...1x: Assembler CSECTs found in modules that also contain High Level
Language (HLL) components. The Assembler CSECTs are identified by both CSECT
and load module name.
- ...2x: The number of observations of each Assembler CSECT across all
modules and, if the input is from multiple libraries, across all libraries. This listing
also indicates Assembler CSECTs that have the same name but are not
identical because they have multiple compile dates or different CSECT
sizes.
- ...3x: Assembler CSECTs in descending order of number of
observations of CSECT name.
- COBLEZx
- Reports modules that contain only one COBOL CSECT. Other CSECTs in the modules may consist of anything else except COBOL. The report is in tabular format
and identifes the level of COBOL language used for the COBOL component. (This Analyzer is an improved version of COBONEx.)
- COBMIGx
- Reports CSECTs compiled by non-LE compilers that may cause migration
problems because of the composition of the load module. The programs should be
relatively easy to migrate because they contain only COBOL and do not include
Assembler or DBDC interfaces, but they may have issues related to the RES/NORES
option or unexpected combinations of runtime components. (This Analyzer is an improved version of COBONLx.)
- COBONEx
- Reports COBOL modules that
contain only a single COBOL CSECT. Other CSECTs in the modules may consist of
anything else except COBOL. This analysis provides a good example of the
simplest form of an external analyzer. (This Analyzer has been replaced by COBLEZx.)
- COBONLx
- Reports COBOL modules that
contain only a single COBOL CSECT and no other CSECTs except,
possibly, COBOL runtime support CSECTs. These programs should provide a good
starting point for migration to newer versions of COBOL. (This Analyzer has been
replaced by COBMIGx.)
- COBRNRx
- Reports two categories of problems with COBOL and COBOL
library composition:
- Modules that contain COBOL programs compiled with both
RES and NORES compiler options. This is an illegal combination in the same
load module.
- Modules that contain OS/VS COBOL or
VS COBOL II programs that are all RES, but also contain runtime library
CSECTs (other than bootstraps and runtime options). The
library CSECTs should not be present for RES compiled programs.
- CSXREFx
- Provides a cross reference of CSECTs in load modules. Lists module names and
CSECT names sorted by CSECT name.
- DUPNAMx
- Reports instances of the same CSECT name with multiple
compile dates or sizes. This inconsistency check can indicate a flaw in the
process used for change control, especially when there is only one source program to
create the CSECT.
- DB2Q01S
- Analyzes languages that use DB2 facilities. The analysis is performed by loading a MACHINE and an XREF data file into DB2 tables, joining the two tables, and then using SQL selection criteria to match the language in the MACHINE file with the references to DB2 CSECTs in the XREF file. (JCL statements and definitions included with this Analyzer are for the DB2 processes.)
- GXREFC
- Provides a cross reference of CSECTs in load modules. The listing is
similar to CSXREFx, but it also contains the UID field to identify the library as well as the module name.
- JCLGENx
- Creates JCL for
separate Jobs to run the EPA to analyze a list of load libraries. A unique PARM='/Unnnn' is
created with a numeric value to identify each execution. The default for the nnnn value
starts at 2001 and increments by one for each library in the input list. Using the same logic, similar JCL could be created to run a series of Jobs for any External Analyzer. Only the
program name and DD-names would have to be changed in constants in the programs.
- LEV210x
- Reports references to the CEEGPID Callable Service. The value
returned by this service has changed in OS/390 V2R10, and programs using it must
be updated.
- MRRECx
- Reports the values of all the
fields in MACHINE data file records. Only a listing is generated; no analysis is performed.
- PFISCNx
- Reports load modules that use the PL/I Fast Initialization
feature that was available in PL/I Version 1.4 and Version 1.5.1. Migration to newer
versions of PL/I require that this feature be replaced by relinking the modules.
- PIISCNx
- Reports load modules that require special attention in a PL/I
migration because they contain one or more of the following:
- PL/I Interlanguage Communication (ILC)
- PL/I Sort usage
- References to PLIDUMP
- References to PLITEST
- PIOSCNx
- Reports load modules that use PL/I RECORD and/or STREAM
I/O statements. This information can be useful in an analysis of online programs where no operating
system I/O is supposed to be used.
- PLESCNx
- Reports load modules that require special attention in a PL/I
migration. Reports the same information as PLIISCNx plus it also lists
modules that use the PL/I FETCH or RELEASE statements to dynamically load other
modules.
- PLIFCHP
- Reports load modules that use the PL/I FETCH or RELEASE
statements to dynamically load other modules. In addition, the programs that issue the
FETCH and the names of the programs that are FETCHed are identified.
- PNONESx
- Reports load modules that do not contain any PL/I compiled
CSECTS.
- PV1SCNx
- Reports load modules containing compiled code from any
PL/I Version 1.x compiler.
- RLINK0x
- Generates Linkage Editor control statements to relink load
modules reported in an EPA MACHINE data file. The control statements
will force replacement of compiler library and, optionally, DB/DC CSECTs
that exist in the modules.
- RLINK1P
- Generates Linkage Editor control statements to relink load modules that contain user specified CSECTs that are to be replaced during the relink process. Only if a CSECT
name in a module matches the name specified by the user will the module be relinked.
Runtime CSECTs will also be refreshed in modules selected for relinking. Similar to RLINK0x.
- RLINK2x
- Generates the same Linkage Editor control statements as RLINK0x, except that the control statements are output into one or more separate files depending on the four possible combinations of the link edit attributes RENT and REUS.
- RLINK3P
- Generates the same Linkage Editor control statements as RLINK1x and outputs them into four separate files the same as RLINK2x.
- SYSDATx
- Reports Assembler, COBOL, and PL/I CSECTs that request
the current system date. This Analyzer uses both the MACHINE and XREF data files.
- XMODECx
- Reports load modules that are not able to be executed in
31-bit mode, i.e., any module that contains a CSECT that will keep the module from being run AMODE(ANY), RMODE(ANY).