Mainframe Analyzer - 1.5
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.
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: 1.5.3-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: 1.5.3-funcrel
Please see: Mainframe - Structural rules.
What results can you expect?
Objects
See Analysis results for the object model.
Links
Cobol
| Link Type | Linked Objects | Code Example | ||
| Calling | Called | |||
| CALL | PROG* | Program, section or copybook | Program or entrypoint | CALL "CC2DISPLAY" |
| TRANSAC* | EXEC CICS XCTL PROGRAM(TEST) END EXEC |
|||
| 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. |
|
| 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. * |
|
| Section | First executed paragraph in section | |||
| Paragraph | Next executed paragraph in same section | |||
| - | 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 | Display "a string" | ||
|
Program Specification Block | EXEC DLI SCH PSB (MYPSB) END-EXEC | ||
| ACCESS | OPEN |
|
|
*========================================================
* 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
*======================================================== *======================================================== |
| CLOSE | ||||
| READ |
|
|
||
| WRITE | ||||
For Embedded SQL links, the following are valid for all servers.
| Link | Sub-link | Description | 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 | - | - | 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 | Sub-link | Description | 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
| Links | Sub-link | Calling object | Called object |
|---|---|---|---|
| ACCESS | WRITE, READ, EXECUTE | JCL Step | JCL Data Set |
| 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 |
| JCL Job | JCL Step | ||
| JCL Procedure | JCL Step | ||
| JCL Step | JCL Procedure | ||
| USE | - | JCL Step | IMS DBD |
| MONITOR | AFTER | JCL Step | JCL Step |
IMS
| Links | Sub-link | Calling object | Called object |
|---|---|---|---|
| ACCESS | WRITE | IMS PC Block | IMS Segment |
| USE | - | IMS PC Block | IMS DBD or IMS GSAM File |
CICS
| Links | Sub-link | Calling object | Called object |
|---|---|---|---|
| CALL | TRANSAC | CICS Transid | Client/Cobol Program |
For Transactional Code, the following are valid:
| Link | Sub-link | Calling object | Called objects | When does this link occur? |
|---|---|---|---|---|
| CALL | TRANSAC | Client/Cobol Program or its Sub object | Client/Cobol Program | EXEC CICS XCTLPROGRAM(TEST)END EXECor EXEC CICS LINKPROGRAM(TEST)END EXEC |
| CALL | TRANSAC | Client/Cobol Program or its Sub object | CICS Transaction | EXEC CICS STARTTRANSID(TRANSID)END EXECor EXEC CICS RETURNTRANSID (W-XFR-CTRS)COMMAREA (W-CIC-CMA-LDON)LENGTH (W-CIC-CMA-QLENDON)END-EXEC |
| MONITOR | - | Client/Cobol Program or its Sub object | CICS Map | EXEC CICSSEND MAP (W-CIC-CMAPCUR)MAPSET (W-CIC-CMPSCUR)FROM (MGAB10O)ERASEFREEKBFRSETCURSOREND-EXECor EXEC CICSRECEIVE MAP (W-CIC-CMAPCUR)MAPSET (W-CIC-CMPSCUR)FROM (MGAB10O)END-EXEC |
| ACCESS | OPEN, CLOSE, READ, WRITE | Client/Cobol Program or its Sub object | CICS Dataset | ENDBR, DELETE,LINK, READ, READNEXT,READPREV, REWRITE,STARTBR, XCTL,WRITE e.g.: EXEC CICSREAD DATASET ('C1MASTR')INTO (BLKBLK(BLKBLK-OCUR))RIDFLD (CICS-RRN) RRNRESP (WS-RESP) END-EXEC |
| ACCESS | READ, WRITE | Client/Cobol Program or its Sub object | CICS Transient Data | DELETEQ, READQ, WRITEQe.g.: EXEC CICS DELETEQ TD QUEUE (W-CIC-TSQ-LNOM) |
Detailed Results
For version-specific analysis result notes and functional changes grouped by COBOL, JCL, IMS, CICS and cross-technology areas, see Detailed Results.
Dependencies with other extensions
None.
Customize COBOL analyzer
The extension is shipped with a parameterization XML file
called Parametrization_Cobol.xml file - see Analysis configuration for more
information about this. This file takes priority over the same file
delivered in CAST Imaging Core (in Configuration\Parametrization\Cobol)
therefore if you are moving to using the Mainframe Analyzer, you must
ensure the following:
-
You must copy the file (or the rules in file) from the CAST Imaging Core installation folder
Configuration\Parametrization\Cobolinto the deployed extension on your Node(s):%PROGRAMDATA%\CAST\CAST\Extensions\com.castsoftware.mainframe.-funcrel\configuration\parametrization\Cobol -
If you upgrade to a newer release of the extension, and if you have modified the
Parametrization_Cobol.xmlfile to add custom rules, you must ensure that you copy the file (or the rules) into the new extension installation location, e.g.:- Current extension installation
location:
%PROGRAMDATA%\CAST\CAST\Extensions\com.castsoftware.mainframe.<version1>-funcrel\configuration\parametrization\Cobol - New extension installation
location:
%PROGRAMDATA%\CAST\CAST\Extensions\com.castsoftware.mainframe.<version2>-funcrel\configuration\parametrization\Cobol
- Current extension installation
location:
Application qualification information
Please see: Mainframe - Application qualification specifics.
Prepare and deliver the source code
Please see: Mainframe - Analysis configuration and execution.
Analysis configuration and execution
Please see: Mainframe - Analysis configuration and execution and all child pages: