![]() |
![]() |
![]() |
![]() |
![]() |
• The System Description File (mandatory), which describes how the input source files are organized on the migration platform file system, and also gives additional parameters necessary for their parsing;
• The Cataloger option file (optional), which gives parameters for the analysis phase of the Cataloger (see Detailed Processing).
• The JCL-Launcher Specification Files are used to describe the launchers used in a given asset, so that the cataloguer and the JCL translator can extract relevant information such as the name of the real program to launch.
• Hint files (optional), which give information that the Cataloger cannot find out by itself, for instance on dynamic program calls.
• Other system-wide pob files, such as the Symtab (see The Cataloger Symtab and Other Miscellaneous Files), for use by the Cataloger and other Tuxedo ART Workbench tools;Depending on the needs of the project and the migration-platform configuration, these phases can be executed sequentially or concurrently, in a single run or incrementally. See Repetitive and Incremental Operation and the Oracle Tuxedo Application Runtime Process Guide for further information.
• The parser processes COBOL programs and their sub-programs. If a sub-program does not exist in a Workbench project and it is called inside a COBOL program, Workbench reports the sub-program is missing. If this sub-program is provided in a runtime system, and its name is listed in the file specified by the optional supplied-batch-module and supplied-cics-module in the Cataloger option file, Workbench will not report "missing" for these programs.Listing 3‑1 Cataloger Option FileIn file "../param/supplied-batch-module", the configuration is:In file "param/supplied-cics-module", the configuration is:ILBOABN0 and CEE3ABD are provided in Batch runtime systems. CICS001 and CICS002 are provided in CICS runtime systems. Workbench will not report "missing" for these programs.The parser processes various forms of sub-files and file inclusion directives (EXEC [PROC], INCLUDE, SYSIN, SYSTSIN…) and searches the asset for sub-files as directed in the System Description File. Since the cataloger and other tools such as the JCL translator need to have a complete understanding of all of the steps in all of the JCL scripts that they handle, it is very important that all the referenced sub-files be present in the asset and that file types and search paths be set so that the correct sub-file is found for every reference. The cataloger will report missing sub-files as severe anomalies, since they prevent the correct analysis and translation of the whole affected JCL(s). Translation should not be attempted until all such anomalies have disappeared.A JCL job is a sequence of steps, with or without execution conditions. It must begin with a JOB card, except if the job-card-optional option is given in the cataloger option file.All JCL, JES2 and JES3 statements are parsed. The JCL must be directly executable by JES2. The parser performs JES variable substitution. Variables which are not defined locally in the JCL may be set using the JCL-globals option of the system description file, see Special Options.In certain conditions, the same sub-file can be used both as a PROC file and as an INCLUDE file. However, the translation to target files is different in each case, so it is necessary to duplicate the file(s) in question, so that one copy is used and translated as a PROC and the other as an INCLUDE file. To achieve this, the two copies must, of course, be placed in separate directories, and the search paths must be set up so that the JCL which use these files as PROCs find the PROC version first and those which use them as INCLUDEs find the INCLUDE version first (it is not possible that the same JCL uses the same file as both a PROC and an INCLUDE).
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
• Chapter BMS macros in appendix Detailed reference information for the CICS API commands of the IBM book CICS Application Programming Reference (document number SC34-6434-05 for CICS V3R1);
• Chapter Creating the map in Part 6, Basic Mapping Support (BMS) of the IBM book CICS Application Programming Guide (document number SC34-6433-04 for CICS V3R1).The CICS configuration parser handles the CICS resource definition language as read by batch utility DFHCSDUP (see IBM CICS Transaction Server for z/OS Resource Definition Guide Version 3 Release 2, document number SC34-6815-00). The following commands are recognized: DELETE ALL, ADD, REMOVE and DEFINE. All resource types and attributes are recognized but only a few are really exploited in the parser and extractor.Listing 3‑2 System Description File StructureListing 3‑3 System Description File Global Options
Table 3‑1 Global Options Path of the Cataloger options file (see below). This path can be given in absolute form or in relative form; in the latter case, the path is relative to the directory containing the system description file itself. Note that this clause is optional: if it is not given, then the Cataloger will not attempt to read an option file and will use default values for all options. Path of the JCL-launcher specification file to use for this system or directory; see JCL-Launcher Specification Files for more information on the contents and use of such files. This path can be given in absolute form or in relative form; in the latter case, the path is relative to the directory containing the system description file itself.Listing 3‑4 System Description File Special Options
Table 3‑2 Special Options The fraction of physical memory which should remain free and available to other processes during execution of the Cataloger and all of the various Tuxedo ART Workbench tools. In general, these tools consume more and more memory, depending on the number of components they process. When this limit is reached, the tool stops and restarts execution; incremental execution ensures that the components already processed are not re-processed, so that eventually, all the required work is achieved. Var-name is a symbol (or string interpreted as a symbol) and var-value is a string. When parsing a JCL script, the parser simulates the JCL-variable substitution process performed by JES2. The name-value pairs given here are used to substitute global variables (as opposed to parameters, etc.). The parser reports an error when it cannot find a suitable value for some variable. The presence of this option influences how SYSIN/SYSTSIN files referenced by a JCL are searched in the whole system. See chapter Sub-file search operation below.
• "line" indicates migrating to line sequential file. It is the default value.
• "record" indicates keeping record sequential file. This option disables the EXEC SQL statement parsing (but cannot disable EXEC SQL INCLUDE statement parsing). Listing 3‑5 System Description File Directories“directory” directory-pathThis is a string giving the path (location) of the directory relative to the root directory of the system (see system-root-path). Although it is not an absolute requirement, it is strongly advised that all the directories of the same system are physical descendants of the system root directory. (A simple and readable way to achieve this is that no directory path contains the “../” upward-going name). Different directories must have different paths.
Table 3‑3 Valid Directory Type Clauses SYSIN/SYSTSIN files used by utility programs or program launchers in JCL scripts. Not all SYSIN files are required by the parser/Cataloger, see more details in Tuxedo ART Workbench JCL Translator Reference Manual (section Description of Input Components). CICS system definition files (CSD) as used by RDO to configure CICS, see IBM’s CICS Resource Definition Guide.“files” file-specs “,” ...The file-specs are strings designating one or more files in a directory. The string identifies the inclusive members of the asset and excludes the others. The simplest form of file-spec is a complete file name such as toto.cbl. No indication of directory should be given, the designated files must be located directly in the directory in question. To avoid the task of explicitly listing all components in the directory, you can also use shell-like regular expressions such as *.cbl or [A-F][D-Z]*.jcl.
Note: It is important that all files designated by the system description file, that is all source files in the asset, have a file extension rather than just a bare file name. The extension can be chosen freely — although we advise the use of “standard” extensions such as cbl for COBOL programs, cpy for COBOL copy files and jcl for main JCL files—but must be present.logical-name lnameThis clause is to be used on directories of type JCL-Sysin, together with the special option strict-jcl-libraries, see above. Together, they enable the Strict JCL-Sysin Search mode. lname is a string of the form “A.B.C”, naming a library (PDS) of JCL SYSIN/SYSTSIN files on the source platfom. It is assumed that all the files in the directory bearing this clause belong to this library.If the special option strict-jcl-libraries is not set, the logical-name clause is ignored.Listing 3‑6 options-clauseSyntactically, the directory-specific options clause is similar to the system-wide Global Options clause, except for the trailing period. Semantically, the listed options and values have the same effect as the global options, but only locally on the files contained in the directory (they override global options with the same name). The same options as the ones marked yes in the local? column of the global-option table apply to directories, provided that they are relevant for the type of source files in the directory. For instance, the option cobol-right-margin is relevant for directories of type COBOL-Batch and COBOL-TPR, but not for type JCL or SQL-Script.The libraries clause specifies an ordered search path of (other) directories in the asset. Whenever the Cataloger finds in a source file a reference to another component it searches, from first to last, the list of directories given in this clause, until it finds a component (source file) whose name and type matches those of the reference (see more details in section Sub-file search operation below). It is used both for compile and parse-time references, such as a COBOL program referencing a copy file or a JCL file referencing a PROC, and for run-time references, such as a COBOL program calling a COBOL subprogram or a JCL job invoking a COBOL program. This way, it is possible to simulate the effects of various source-platform library-search operations, such as SYSLIB or COPYLIB for COBOL compilation, JOBLIB and STEPLIB for JCL preparation and execution, etc.“sql-libraries” directory-path “,” ...Listing 3‑7 Example of System Description FileThis system-description file is for an asset named BNL, for example the name of a customer or a standalone application in a larger system. The location and name of this file are not constrained, but conventionally, the complete path should be something like: /.../BNL/param/system.desc. Given this assumption, and since the path for the system root directory given in this file is relative (../source), the absolute path for the root directory is /.../BNL/source. Similarly, the path for the Cataloger options file is given as ./options-catalog, so its absolute path is /.../BNL/param/options-catalog. The global options call for the following comments:
• The no-end-xxx-warnings option enables the lenient mode of parsing implicitly-closed COBOL constructs.
• The cobol-left-margin and cobol-right-margin values are set for untransformed, IBM-like fixed-format programs with left-side numbering column and right-side comment column (area C). Note that, while this format causes no trouble for the COBOL parser, the correct operation of the COBOL converter cannot be guaranteed.The naming and organization of the various directories is quite standard, with source files in the asset being identified only with their file extensions. The only unusual feature here is the special cobol-right-margin value for directory “Batch”.Listing 3‑8 JCL-launcher SyntaxThe local jclz-launcher-spec-file option attached to a directory, when present, overrides the global one, as usual. When no launcher specification file is specified either for a given directory or the whole system, then the default value is as if we used the following file:Listing 3‑9 Default Launcher ValueThey are generated in the $SYSROOT/Reports-${SYSNAME} directory, where $SYSROOT is the root directory for the current asset and $SYSNAME is the asset name, both as defined in the System Description File.The name of each report also contains $SYSNAME, to avoid any confusion.
Table 3‑4 COBOL Report Fields See Field Definitions. This is the path of the (main) source file defining the program. Type of program as defined by its classification in the system description file (Cobol-Batch, Cobol-TPR).
•
•
• In addition, for components of type SUB, the name may be that of an entry point in a subprogram, rather than the name of the subprogram itself It is the name as referenced in a CALL and the cataloger can’t determine whether it designates an entry point or a complete subprogram.
Table 3‑5 COBOL Copy Report Fields
•
•
Table 3‑6 JCL Source File Report Fields See Field Definitions. It is at least as high as the maximum anomaly level in all the contained jobs, and may be higher in case of syntax errors.
Table 3‑7 JCL sub-file Report Fields
•
•
Table 3‑8 JCL Jobs Report Fields See Field Definitions. This is the anomaly level of the job itself, and generally does not take into account syntax errors (because the latter prevent the analysis of the job).
Table 3‑9 Screens Report Fields See Field Definitions. In fact, this is the anomaly level of the complete source file; see the anomaly report to see whether the anomalies really apply to this screen definition.
•
•
•
Table 3‑10 SQL Table Report Fields
•
•
•
•
Table 3‑11 SQL Views Report Fields
Note: A view is never MISSING, because references to views are indistinguishable from references to tables. So, when a reference to a table-or-view links to no definition of any kind, the Cataloger creates a missing table, not a missing view.
Table 3‑12 CICS Transaction Report Fields
Table 3‑13 Anomaly Report Fields See Field Definitions. This is the path of the main file defining the component in which the anomaly occurs. See Field Definitions. If the real location of the error (statement or other construct) is inside some sub-file (COBOL copy file, JCL PROC file, etc.), this is the path of this sub-file, otherwise this field is empty.
• ANALYSIS is for anomalies related to constructs which do not allow the Cataloger to perform an accurate analysis of the component, such as dynamic calls; During the parsing phase (see The Cataloger Process), for each parsable-component source file A/B/C/file.ext in the system, the Cataloger produces a POB file named A/B/C/pob/file.ext.pob (the pob directory is created on demand by the Cataloger). This file contains the result of the parsing, namely the Abstract Syntax Tree (AST) of the component. It is re-read by the analysis phase of the Cataloger and by other Tuxedo ART Workbench tools such as the COBOL converter or JCL translator.CDM (Common Data Model) files contain additional information about COBOL variables (so-called data description entries). For each COBOL program A/B/C/prog.cbl in the system, the Cataloger produces a CDM file named A/B/C/pob/prog.cbl.cdm to store information about variables defined in the main source file. In addition, for each COBOL copy file D/E/file.cpy which defines variables (as opposed to copy files containing Procedure Division code, for instance), the Cataloger produces a CDM file named D/E/pob/file.cpy.cdm to store information about those variables; this CDM file is shared by all programs which include this copy file.
• $SYSROOT/symtab-$SYSNAME.pob: this file houses the symbol table created by the Cataloger (during the analysis phase) and contains summary information for all the various components in the asset. This information is used to compute cross-reference information between these components.
• $SYSROOT/Cobol-dump-map.pob: contains information (so-called dump descriptors) necessary to read and write Abstract Syntax Tree (AST) pobs for COBOL programs. Do not delete this file or you will not be able to re-read your existing COBOL pobs.
• $SYSROOT/sql-system-$SYSNAME.pob, $SYSROOT/sql-system-$SYSNAME-State-ments.pob: contains various internal forms of the complete SQL schema of the asset, derived from the union of all DDL files (SQL-Script files). These files are required for parsing (and linking) COBOL programs.During cataloging process, Tuxedo ART Workbench parses both JCL files and Batch COBOL programs to collect dataset related metadata, puts them into param/dynamic-config/dataset directory, and generates file convertor configuration files (for example, Datamap-<schema>.re and mapper-<schema>.re files under param/file directory).As described in The Cataloger Process, the operation is logically divided into four phases: parsing, analysis, post-analysis and report generation (see below for more details). Depending on the needs of the project and the migration-platform configuration, these phases can be executed sequentially or concurrently (parsing phase only), in a single run or incrementally.
• preparse and its variant preparse-files: runs the parsing phase only.This is the only phase which can be run concurrently, at least after the SQL-System files have been generated. This is also the only phase for which you can request the processing of one or more specific components; otherwise, the Cataloger determines itself which components it must process (see Changes in the Asset: Incremental Operation). In this phase, the Cataloger reads the component source files, any included sub-files and the SQL-System files, and produces (only) the POB-files for the processed components.
• analyze: runs the analysis phase: for each component, the pob-file is re-read and the most significant constructs in the component are translated into a smaller summary information stored in the cataloger symbol table (symtab).
• fast-final: runs both the post-analysis and report generation phases.
• catalog: runs in sequence the analysis phase (and hence the parsing phase, on demand), the post-analysis phase and the report generation phase.
Note: For all these commands, the whole configuration information comes from the system description file and the Cataloger option file. Except for preparse-files, the only command-line arguments are the path to the system description file and standard Tuxedo ART Workbench tool arguments.The Cataloger is designed to be run through the refine command. The refine command is the generic Tuxedo ART Workbench launcher that is used to launch the major Tuxedo ART Workbench tools. The launcher handles various aspects of the operation of these tools, such as execution log management and the incremental and repetitive operations described below (Repetitive and Incremental Operation). The Tuxedo ART Workbench launcher also handles a couple of generic command-line options.Print out a short description (usage) of the command, and then exits.Prints out a description of which work (phase) needs to be performed on which components but do not actually undertake the work see Changes in the Asset: Incremental Operation.Specifies the location of the System Description File. As usual for Unix/Linux commands, the given path can be absolute or relative to the current working directory.As explained in Processing Phases, system-wide commands are preparse, analyze, fast-final and catalog. They operate globally on the whole asset. The generic command-line syntax for all these commands is:Adds to the work-list the component source file designated by this path. The path must be given as relative to the root directory of the system, $SYSROOT, even if the current working directory is different.
• Otherwise, the component is parsed normally (and verbosely, unless the -quiet option is given in the launcher-options) and its POB file is produced.JCL sub-files referenced from a JCL job, such as PROC files, INCLUDE files and some SYSIN files are also included because whereas on the MVS platform these sub-files are searched when the JCL job is run, hence it is a run-time reference; on the migration platform, the Cataloger has to resolve these references at parse-time, to make them available to the JCL translator, and hence they qualify as compile-time references. Even SYSIN files are in this case, since they contain information which is needed at parse time, such as the program invoked by some DB2 launcher. In the Cataloger, "compile-time" is equivalent to parsing, and "run-time" is equivalent to post-analysis.
Table 3‑14 Compile-Time References sql-libraries, or libraries if not specified
1. For each directory SUBDIR listed in the libraries (or sql-libraries, if applicable) clause associated with the definition of SRCDIR in the system description file, in order, locate the definition of SUBDIR in the same file, then:
• If there is no such definition, complain (this is done once and for all when the Cataloger starts and reads the system description file) and skip to the next element of the list.This algorithm is modified for searching JCL-Sysin files in presence of the strict-jcl-libraries special option. When this option is set, the search for SYSIN file A.B.TGTFIL or A.B(TGTFIL) proceeds as follows:
• if there exists a directory of type JCL-Sysin with logical name “A.B”, then TGTFIL is searched exactly in this directory (base name search, according to the files clause and the physical extension); note that it is an error if two or more directories have the same logical name;This behavior implies that the libraries clause is ignored on directories of type JCL, at least when it comes to searching JCL-Sysin files (it is still valid to search JCL-Select files). On the other hand, as described above, if the strict-jcl-libraries special option is not set, the logical-name clauses on JCL=Sysin directories are ignored.It is suggested to use strict search rather than path-based search when there exist many cases of duplicate names, i.e. many files with the same name in different libraries (PDS). In this case, indeed, it is easier to transfer the whole contents of each SYSIN library in a separate directory, and give the name of the library as the logical name of the directory, rather than try to order the various JCL-Sysin directory names in the libraries clauses of the JCL directories to ensure that the appropriate file is found at each reference.A.B.C or A.B(C) proceeds as follows:
Note: If both "strict-jcl-libraries" and "full-name-sysin-search" are set, "strict-jcl-libraries" precedes.Directed Search is similar to Normal Sub-File Search for compile-time references. It applies when the libraries clause associated with directory SRCDIR contains one or more elements (directories) of the type TGTTYP. The search algorithm is then.
1. For each directory SUBDIR listed in the libraries clause associated with the definition of SRCDIR in the system description file, in order, locate the definition of SUBDIR in the same file, then:
• If there is no such definition, complain (this is done once and for all when the Cataloger starts and reads the system description file) and skip to the next element of the list.
•
Note: Directed Search is not yet available in the current version of the cataloger; if you use the libraries clause to point to components involved in run-time references, these elements will be simply ignored. Directed Search will be added progressively for selected SRCTYP/TGTTYP combinations in the forthcoming versions. Check the release notes.
•