Mainframe Reference Guide
This document provides some more detailed information about the objects and links that are stored in the Analysis Service. Other technical information may also be available.
Because the Mainframe analyzer can handle Cobol, JCL, IMS and CICS, this Reference Guide will contain information valid for all languages:
Cobol Object Types
Cobol objects detected by the analyzer are summarized in the following table:
Icon | Object Type | Description |
Program | Cobol code that can be executed by a process. The program contains a "procedure division" that consists of various sections or paragraphs. | |
Copy Book | File written in Cobol included in a program or another copy book. A copy book often contains declarations that are common to several Cobol programs. | |
Paragraph | Piece of Cobol code located in a program. It can be executed inside a program if the resolution rules described below are respected. | |
Section | Piece of Cobol code located in a program or a group of paragraphs. It can be executed inside a program if the resolution rules described below are respected. | |
Division | A Program consists of several Divisions that group together specific instructions (e.g.: program identification, execution environment, data declaration, processes etc.). A division can be divided into sections (e.g.: the DATA DIVISION can contain a FILE SECTION, WORKING-STORAGE SECTION, LINKAGE SECTION etc.). | |
File Link (Sequential, Partitioned, VSAM) | This a logical file specific to the program. It is used to read/write data. | |
Data Link | File used to implement a sort | |
Class | Cobol files containing the implementation of a class (please note that classes are detected but not analyzed). | |
Directory/Root Directory | Folder/directory located on the hard driver containing the analyzed files. | |
Entry Point | Entry point for executing Cobol programs | |
Interface | Cobol files containing the implementation of an interface. | |
Program Specification Block | PSB specifications for handling IMS databases | |
Database Definition | IMS database for mainframe | |
IMS Segment | Segments for an IMS database | |
Cobol conditional test | Conditional values of a field in a Cobol variable | |
Cobol data | Field in a Cobol variable | |
Cobol literal | Literal | |
Cobol structure data | Structure data containing several fields | |
Cobol constant data | Constant data | |
External File | CICS files not resolved | |
Transaction | CICS Transaction not resolved | |
Screen Map | CICS Screen Map not resolved | |
Transient Data | CICS TD Queue not resolved | |
Project | Top level item |
JCL Object Types
JCL objects detected by the analyzer are summarized in the following table:
Icon | Type | Description |
Catalogued Job | A batch file written in JCL that executes JCL programs or procedures. | |
Catalogued Procedure | JCL file that can be executed by another JCL file | |
Step | A section of a job or procedure that contains an execution order for a procedure or for a program. | |
Instream Procedure | A JCL procedure (a piece of JCL code) that can be executed within the file in which the code is stored. | |
Dataset (Sequential, Partitioned, VSAM) | Data file used by a job, procedure or program. | |
External Program | Program called by a JCL job | |
Included File | File included in a job or a JCL procedure. | |
Index | Object used to class JCL datasets in alphabetical order to facilitate navigation | |
Project | Top level item | |
Directory/Root Directory | Container item | |
Program Specification Block | PSB specifications for handling IMS databases |
IMS Object Types
IMS objects detected by the analyzer are summarized in the following table:
Icon | Type |
Directory/Root Directory | |
IMS Database | |
IMS Field | |
IMS Alternate PC Block | |
IMS PC Block type Database | |
IMS PC Block type GSAM | |
IMS Project | |
IMS PS Block | |
IMS Segment | |
IMS GSAM File |
CICS Object Types
CICS objects detected by the analyzer are summarized in the following table:
Icon | Type |
CICS Basic Mapping Support | |
CICS System Definition file | |
CICS System Definition group | |
CICS Dataset | |
Directory/Root Directory | |
CICS Map | |
CICS Mapset | |
CICS Project | |
CICS TD Queue | |
CICS Transaction | |
CICS TS Model |
Cobol Link Types
The following table describes Cobol references that are detected by the analyzer and the context in which corresponding links are traced and stored in the Analysis Service:
Link Type | Linked Objects | Code Example | ||
Calling | Called | |||
CALL | PROG | Program, section or copybook | Program or entrypoint | |
TRANSAC | ||||
PERFORM | Program, section or sub-object | Section or paragraph | ||
GOTO | Program | First executed section or paragraph | ||
Section | First executed paragraph in section | |||
Paragraph | Next executed paragraph in same section | |||
INCLUDE | Program or Copybook | Copybook | ||
USE | Calls to matched character strings | Display "a string" | ||
| Program Specification Block | |||
ACCESS | OPEN |
|
|
CALL 'CBLTDLI' USING GU CICSDLI-PCB |
CLOSE | ||||
READ |
|
| ||
WRITE |
For Embedded SQL links, the following are valid for all servers.
USE | SELECT | This type is reserved for server side object referencing | |
UPDATE | |||
INSERT | |||
DELETE | |||
CALL |
For link types CALL PROG and CALL TRANSAC, two limitations exist when the call is in "string" form:
- If the string is constant and declared in the "data-division" section, the entry point will be resolved in the normal way.
- If the string is dynamic, the program may be found by the Dynamic Link Manager.
In addition, the following Embedded SQL links are valid for DB2 only:
DEPEND ON | This type is reserved for server side object referencing on structured or distinct UDTs. | - | |
DDL | CREATE | This type is reserved for server side object referencing on Tables | - |
DDL | DROP |
JCL Link Types
The following table describes JCL references that are detected by the analyzer and the context in which corresponding links are traced and stored in the Analysis Service:
Type | Linked Objects | ||
Calling | Called | ||
ACCESS | WRITE | JCL Step | JCL Data Set |
READ | |||
EXECUTE | |||
PROTOTYPE | Cobol File Link | JCL Data Set | |
Cobol Data Link | JCL Data Set | ||
JCL Data Set | Cobol JCL Program | ||
CALL | JCL Step | Cobol JCL Program | |
USE | JCL Step | IMS DBD |
IMS Link Types
The following table describes IMS references that are detected by the analyzer and the context in which corresponding links are traced and stored in the Analysis Service:
Type | Linked Objects | ||
Calling | Called | ||
ACCESS | WRITE | IMS PC Block | IMS Segment |
USE | IMS PC Block | IMS DBD or IMS GSAM File |
CICS Link Types
The following table describes CICS references that are detected by the analyzer and the context in which corresponding links are traced and stored in the Analysis Service:
Type | Linked Objects | ||
Calling | Called | ||
CALL | TRANSAC | CICS Transid | Client/Cobol Program |
For Transactional Code, the following are valid:
Type | Linked Objects | When does this link occur? | ||
Calling | Called | |||
CALL | TRANSAC | Client/Cobol Program or its Sub object | Client/Cobol Program | or EXEC CICS LINK PROGRAM(TEST) |
CALL | TRANSAC | Client/Cobol Program or its Sub object | CICS Transaction | or |
MONITOR | Client/Cobol Program or its Sub object | CICS Map | or | |
ACCESS | OPEN CLOSE READ WRITE | Client/Cobol Program or its Sub object | CICS Dataset | ex: |
READ WRITE | Client/Cobol Program or its Sub object | CICS Transient Data | ex: EXEC CICS DELETEQ TD QUEUE (W-CIC-TSQ-LNOM) |
Miscellaneous Cobol information
Rules for resolving Paragraph names in a Section
The Mainframe Analyzer (Cobol) uses the following rules when resolving Paragraph names defined in Sections:
- If the referenced Paragraph is located in the current Section, Cobol Analyzer will link the calling Paragraph to the called Paragraph
- If the referenced Paragraph is not located in the current section, Cobol Analyzer will issue a syntax error
- If the referenced Paragraph has a unique declaration outside the Section, Cobol Analyzer will create a link to this Paragraph.
- The following syntax is also resolved: "Paragraph Name IN/OF Section Name". A link will be created to the correct Paragraph (which will be outside the current Section).
Access type links
Access type links are created when your Cobol program calls an external file (Data Set).
- The instructions that manage classic files ('File Link' type) are:
Instructions for opening a file: OPEN Reading data: READ Writing data: WRITE, REWRITE Closing the file: CLOSE
- Sorting operations on data set files (Data Link type) are carried out via the instructions MERGE and/or SORT. These instructions should generate CALL + PERFORM type links on paragraphs or sections. OPEN and CLOSE instructions are also used.
- Access (Read/Write) links to "Cobol Constants" and "Cobol Data":
- Variables used in the flow control: IF, PERFORM, EVALUATE, SEARCH.
- Inclusion of the instructions: MOVE, INITIALIZE, SET, CALL, OPEN, CLOSE, READ, WRITE, REWRITE, MERGE, SORT.
- The following instructions are not yet included: MULTIPLY, SUBTRACT, ADD, DIVIDE, EXHIBIT.
- CICS files read via CICS instructions in an EXEC CICS ... END-EXEC
- Opening of file - Instructions: STARTBR -- Acesse(Open) on the file
- Data reading - Instructions: DELETE, WRITE, REWRITE -- Access(Write)
- Closing of file - Instruction: ENDBR -- Access(Close)
- Access to the segment in the IMS databases:
- Links to the segment (Access + Write/Read)
- Links to the Program Specification Block
File Selection
Logical Files are declared in the "File Section" part of the program with the FD or SD tag.
- FD: declaration of 'file link' type
- SD: declaration of 'data link' type
Example declaration of a logical file called MAIL-XREF (type FILE-LINK) in the Cobol program:
004600 FILE SECTION. 00015900004700 00016000009000 FD MAIL-XREF 00020700009100 LABEL RECORDS ARE STANDARD 00020800009200 BLOCK CONTAINS 0 RECORDS. 00020900009300 01 MAIL-XREF-REC. 00021000009400 03 MAIL-XREF-KEY. 00021100009500 07 MAIL-XREF-ADDRESS. 00021200009600 11 MAIL-XREF-ZIP-PRE PIC X(05). 00021300009700 11 MAIL-XREF-ZIP-SUF PIC X(04). 00021400009800 07 MAIL-XREF-STATE PIC X(03). 00021500009900 07 MAIL-XREF-CITY PIC X(25). 00021600010000 07 MAIL-XREF-POSTAL-CODE PIC X(02). 00021700010100 03 MAIL-XREF-DATA PIC X(324). 00021800
Replacement used in COPY REPLACING directives
- Replacements can be applied to words or parts of words
- Patterns used to replace parts of words must be delimited by the following characters: :, (, ), \ or "
- Patterns that are not delimited by the above characters are considered as being used to replace entire words
- LEADING and TRAILING clauses mean that the replacement will be applied on parts of words and as such, patterns must respect rule two (first character and last character will be removed from the pattern).
Miscellaneous JCL Information
JCL is a command language used to execute programs on large systems - primarily Cobol oriented. CAST's Mainframe Analyzer (JCL) is targeted at IBM's JCL language for 3090 systems used in conjunction with Cobol projects.
Display in CAST Enlighten
In CAST Enlighten, a full Mainframe Analysis (i.e. including COBOL, JCL, CICS and IMS) may be represented as follows:
COBOL Objects branch - if the data has NOT been saved in the Analysis Service (Data Structure > Save Data Only option in the Mainframe Technology options is not activated). Note that the Cobol Copybooks and its sub-heading Data in the Source file folders heading will only be visible if the Save data found in copy books option in the Mainframe Technology options is activated):
COBOL Objects branch - if the data has been saved in the Analysis Service (Data Structure > Save Data Only option in the Mainframe Technology options is activated). Note that the Cobol Copybooks and its sub-heading Data in the Source file folders heading will only be visible if the Save data found in copy books option in the Mainframe Technology options is activated):
JCL Objects branch
CICS Objects branch
IMS Objects branch