Mainframe Analyzer - 2.3
Description
This extension provides support for Mainframe (Cobol, CICS, JCL, IMS…). If your application contains Mainframe source code and you want to view these object types and their links with other objects, then you should install this extension.
Feature baseline and equivalence
Mainframe Analyzer 2.3 provides the same functional baseline as the previous 1.7.x releases. See the release notes for the release-specific changes.
Transactions
Transaction support is derived from metamodel concepts used to build CAST Imaging Blueprint and structural transaction flows. Entry Points start transactions; Exit Points include both output/boundary concepts and Data Entities manipulated by transactions.
| Role | Support | Breakdown |
|---|---|---|
| Entry Point |
|
|
| Exit Point |
Unresolved Storage
Data Entity with Accurate FP
|
Data version: 2.3.0-funcrel
ISO 5055 Structural Rules
Quality support is based on ISO 5055 structural rules available for the selected extension version.
| Reliability | Maintainability | Security | Performance Efficiency |
|---|---|---|---|
Data version: 2.3.0-funcrel
Structural rules
All Mainframe Analyzer related rules are provided in the default CAST Assessment Model shipped with CAST Imaging Core: https://technologies.castsoftware.com/AIP/technologies/-4/ .
Dependencies with other extensions
Some extensions require the presence of other extensions in order to function correctly. The Mainframe Analyzer extension requires that the following other extensions are also installed:
Any dependent extensions are automatically downloaded and installed for you. You do not need to do anything.
Download and installation instructions
For Mainframe applications, the extension will be automatically installed:

What results can you expect?
Objects
Links
Cobol
| Link Type | Calling Linked Objects | Called Linked Objects | Code Example |
|---|---|---|---|
CALL PROG*
|
Program, section or copybook | Program or entrypoint | CALL "CC2DISPLAY" |
| CALL TRANSAC* | Program, section or copybook | Program or entrypoint | EXEC CICS XCTL PROGRAM(TEST) END EXEC |
| CALL PERFORM | Program, section or sub-object | Section or paragraph | MODULE-ENTREE
SECTION. * * LA LIGNE CI DESSOUS DOIT ETRE DELETEE APRES LES TESTS * MOVE '*** EXECUTION STARTEE NORMALEMENT ***' TO MESS. DISPLAY MESS. MOVE SPACE TO MESS. * PERFORM LECTURE-PARAM. * FIN-MODULE-ENTREE. EXIT. EJECT * COPY SYBPINIT. |
| CALL GOTO | Program | First executed section or paragraph | **************** LECTURE-PARAM SECTION. **************** * READ MEF001. IF FILE-STATUS NOT = '00' DISPLAY 'CODE RETOUR' FILE-STATUS DISPLAY 'CARTE PARAMETRE INEXISTANTE : ' CODE-ABEND GO TO SORTIE-ERREUR END-IF. * |
| CALL GOTO | Section | First executed paragraph in section | Same example as above. |
| CALL GOTO | Paragraph | Next executed paragraph in same section | Same example as above. |
| CALL | Section/Paragraph | Section/Paragraph | When Sections or Paragraphs are sequentially executed (one after the other) a Call link will be generated. For example, if a program is made of Section A then Section B then Paragraph C then Section D, the links will be resolved as A -> B -> C -> D. |
| INCLUDE | Program or Copybook | Copybook | * -ACDA * MNPW * * * *
* * * * * * * * * * * * * * * * * * * * * * FD DU FICHIER INF103 PAR LE CHEMIN INF103 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BLOCK CONTAINS 0. * COPY INF103 REPLACING INF103 BY ING103. |
| USE | Calls to matched character strings |
Calls to matched character strings |
Display "a string" |
| USE | Cobol Program, Cobol Section, Cobol Paragraph | Program Specification Block | EXEC DLI SCH PSB (MYPSB) END-EXEC |
| ACCESS OPEN | Cobol Program or sub-object |
Cobol File Link or Cobol Data Link |
*========================================================
* OUVERTURE DU FICHIER IAHCDECE
*========================================================
OPEN-IAHCDECE. OPEN INPUT IAHCDECE. *======================================================== * LECTURES DU FICHIER IAHCDECE *======================================================== LECT-IAHCDECE. READ IAHCDECE. *======================================================== * FERMETURE DU FICHIER IAHCDECE *======================================================== CLOSE-IAHCDECE. CLOSE IAHCDECE. *======================================================== *
LECTURE-SEGMENT-CISRAPMP
*======================================================== *======================================================== |
| ACCESS CLOSE | Cobol Program or sub-object |
Cobol File Link or Cobol Data Link |
Same example as above. |
| ACCESS READ | Cobol Program or sub-object, Cobol Section, Cobol Paragraph |
Cobol File Link,
Cobol Data Link, Constant Data, Structured Data, Data, Conditional Test,
Program Communication Block |
Same example as above. |
| ACCESS WRITE | Cobol Program or sub-object, Cobol Section, Cobol Paragraph |
Cobol File Link,
Cobol Data Link, Constant Data, Structured Data, Data, Conditional Test,
Program Communication Block |
Same example as above. |
For Embedded SQL links, the following are valid for all servers:
| Link Type | Description | Code Example |
|---|---|---|
| USE SELECT | This type is reserved for server side object referencing | EXEC SQL… SELECT |
| USE UPDATE | As above. | EXEC SQL… UPDATE |
| USE INSERT | As above. | EXEC SQL… INSERT |
| USE DELETE | As above. | EXEC SQL… DELETE |
| CALL | As above. | EXEC SQL… CAL |
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:
| Link Type | Description | Code Example |
|---|---|---|
| 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 Type | Calling Linked Objects | Called Linked Objects |
|---|---|---|
| ACCESS WRITE | JCL Step | JCL Data Set |
| ACCESS READ | JCL Step | JCL Data Set |
| ACCESS EXECUTE | JCL Step | JCL Data Set |
| PROTOTYPE | Cobol File Link | JCL Data Set |
| PROTOTYPE | Cobol Data Link | JCL Data Set |
| PROTOTYPE | JCL Data Set | Cobol JCL Program |
| CALL | JCL Step | Cobol JCL Program |
| CALL | JCL Job | JCL Step |
| CALL | JCL Procedure | JCL Step |
| CALL | JCL Step | JCL Procedure |
| USE | JCL Step | IMS DBD |
| MONITOR AFTER | JCL Step | JCL Step |
IMS
| Link Type | Calling Linked Objects | Called Linked Objects |
|---|---|---|
| ACCESS WRITE | IMS PC Block | IMS Segment |
| USE | IMS PC Block | IMS DBD or IMS GSAM File |
CICS
| Link Type | Calling Linked Objects | Called Linked Objects |
|---|---|---|
| CALL TRANSAC | CICS Transid | Client/Cobol Program |
For Transactional Code, the following are valid:
| Link Type | Calling Linked Objects | Called Linked Objects | Code Example |
|---|---|---|---|
| CALL TRANSAC | Client/Cobol Program or its Sub object | Client/Cobol Program | EXEC CICS XCTL or EXEC CICS LINK |
| CALL TRANSAC | Client/Cobol Program or its Sub object | CICS Transaction | EXEC CICS START or EXEC CICS RETURN |
| MONITOR | Client/Cobol Program or its Sub object | CICS Map | EXEC CICS SEND MAP (W-CIC-CMAPCUR) MAPSET (W-CIC-CMPSCUR) FROM (MGAB10O) ERASE FREEKB FRSET CURSOR END-EXEC or EXEC CICS |
| ACCESS OPEN
ACCESS CLOSE ACCESS READ ACCESS WRITE |
Client/Cobol Program or its Sub object | CICS Dataset | ENDBR, DELETE, LINK, READ, READNEXT, READPREV, REWRITE, STARTBR, XCTL, WRITE ex: EXEC CICS |
| ACCESS READ
ACCESS WRITE |
Client/Cobol Program or its Sub object | CICS Transient Data | DELETEQ, READQ, WRITEQ
ex: EXEC CICS DELETEQ TD QUEUE (W-CIC-TSQ-LNOM) |
Detailed Results
For version-specific analysis result notes and functional changes grouped by COBOL, VSAM, JCL, IMS, CICS, IBM MQ and cross-technology areas, see Detailed Results.