Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Panel

On this page:

Table of Contents


Info

Summary: This document provides information about the analysis results you can expect from a Mainframe analysis.

...

Program

Copy Book

Paragraph

Section

Division

File Link (Sequential, Partitioned, VSAM)

Data Link

Class

Directory/Root Directory

Entry Point

Interface

Program Specification Block

Database Definition

Image Removed

IMS Segment

Cobol conditional test

Cobol data

Cobol literal, Cobol structure data, Cobol constant data

External File

Transaction

Screen Map

Transient Data

Project

Cobol Subset

Image Added

Cobol SQL Query (from Mainframe Analyzer 1.1) - see New object "Cobol SQL Query" below.

JCL

Catalogued Job

Catalogued Procedure

Step

Instream Procedure

Dataset (Sequential, Partitioned, VSAM)

External Program

Included File

Index

Project

Directory/Root Directory

Program Specification Block

JCL Subset

JCL to Java

JCL SQL Query

...

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 TypeLinked ObjectsCode Example

Image Added

CICS CallTo CICS Webservice (from Mainframe Analyzer 1.2) - see Support for CICS Webservices below.

Image Added

CICS Webservice  (from Mainframe Analyzer 1.2) - see Support for CICS Webservices below.

Cobol

Link TypeLinked ObjectsCode Example
CallingCalled
CALLPROG*Program, section or copybookProgram or entrypointCALL "CC2DISPLAY"
TRANSAC*EXEC CICS XCTL
PROGRAM(TEST)
END EXEC
PERFORMProgram, section or sub-objectSection or paragraphMODULE-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.
GOTOProgramFirst 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.
*
SectionFirst executed paragraph in section
ParagraphNext executed paragraph in same section
-Section/ParagraphSection/ParagraphWhen 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.
INCLUDEProgram or CopybookCopybook* -ACDA * MNPW * * * * * * * * * * * * * * * * * * * * * * * * *
* FD DU FICHIER INF103 PAR LE CHEMIN INF103
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
BLOCK CONTAINS 0.
*
COPY INF103 REPLACING INF103 BY ING103.
USECalls to matched character stringsDisplay "a string"
  • Cobol Program
  • Cobol Section
  • Cobol Paragraph
Program Specification BlockEXEC DLI SCH PSB (MYPSB) END-EXEC
ACCESSOPEN
  • Cobol Program or sub-object
  • Cobol File Link
  • 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 *========================================================
EXEC DLI
GU
USING
PCB (3)
SEGMENT (CISRAPMP)
WHERE (CIOEAX = IN-PREM-H)
INTO (WS-DUMMY-AREA)
END-EXEC.
 

*========================================================
COMMANDE-CALL-LEVEL
*========================================================
CALL 'CBLTDLI' USING GU
CICSDLI-PCB
CICSDLI-SEGM
CICSDLI-QSSA

CLOSE
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
    (IMS PCB)
  • IMS Segment
WRITE

...

CICS Objects branch

IMS Objects branch

Changes introduced in Mainframe Analyzer 1.1

Anchor
newobj
newobj
New object "Cobol SQL Query"

For each embedded SQL statement found in Cobol (except INCLUDE statements which are already supported by creating a Copy Book object), an object called Cobol SQL Query is created. For example, the following code will cause this object type to be created:

Code Block
EXEC SQL
	SELECT ABCDED
	FROM TABLE
END-EXEC

ReferLink between paragraphs/sections

A ReferLink will now be added between sections/paragraphs containing the CICS command HANDLE ABEND LABEL and the sections/paragraphs specified in the LABEL clause. For example:

Click to enlarge

Image Added

In the same way, a ReferLink is added for the CICS commands HANDLE AID and HANDLE CONDITION:

Click to enlarge

Image Added

Supported conditions

Below is a list of the conditions supported by the Mainframe Analyzer ≥ 1.1:

CICS commandCondition
HANDLE ABENDLABEL
HANDLE AID

ANYKEY 

CLEAR 

CLRPARTN 

ENTER 

LIGHTPEN

OPERID  

PA1, PA2, PA3

PF1 - PF24

TRIGGER 

HANDLE CONDITION

ALLOCERR
CBIDERR
CHANNELERR
DISABLED
DSIDERR
DSSTAT
DUPKEY
DUPREC
END
ENDDATA
ENDFILE
ENDINPT
ENQBUSY
ENVDEFERR
EOC
EODS
EOF
ERROR
EXPIRED
FUNCERR
IGREQCD
IGREQID
ILLOGIC
INBFMH
INVERRTERM
INVEXITREQ
INVLDC
INVMPSZ 
INVPARTN
INVPARTNSET
INVREQ
IOERR
ISCINVREQ   
ITEMERR
JIDERR
LENGERR
LOADING
LOCKED
MAPFAIL
NETNAMEIDERR
NODEIDERR
NOJBUFSP
NONVAL
NOPASSBKRD
NOPASSBKWR
NOSPACE 
NOSPOOL
NOSTART
NOSTG
NOTALLOC
NOTAUTH    
NOTFND
NOTOPEN     
OPENERR
OVERFLOW
PARTNERIDERR
PARTNFAIL
PGMIDERR
QBUSY    
QIDERR
QZERO
RDATT
RECORDBUSY
RESUNAVAIL
RETPAGE
ROLLEDBACK   
RTEFAIL
RTESOME
SELNERR
SESSBUSY
SESSIONERR
SIGNAL
SPOLBUSY
SPOLERR
STRELERR
SUPPRESSED
SYSBUSY
SYSIDERR
TERMERR
TASKIDERR
TERMIDERR 
TRANSIDERR
TSIOERR
UNEXPIN
USERIDERR
WRBRK

Changes introduced in Mainframe Analyzer 1.2

Anchor
webservices
webservices
Support for CICS Webservices

Introduction

Web services make the interactions between programs over a network. There are two types of CICS Webservice:

  • Provider: CICS acting as server to provide information
  • Requester: CICS acting as client to request information

For example:

Click to enlarge

Image Added

The items highlighted with a green oval represent the new objects and the new links to existing Mainframe type objects. Where:

  • Cob program ECHOCLNT: client program to invoke the cob program which handles the CICS Webservice  
  • Cob program ECHOPROG: the cob program which handles the CICS Webservice as a Provider
  • Cob program ECHOWEBS: the cob program which handles the CICS Webservice as a Requester
  • CICS Webservice and Call to CICS Webservice: new objects which represents CICS webservice support 
  • JCL Step LS2WS: JCL step which run a Webservice utility batch to create a web service provider in CICS
  • JCL Step WS2LS: JCL step which run a Webservice utility batch to create a web service requester in CICS

Example Provider Webservice

SAMPLE1.jcl job has the LS2WS step which run the DFHLS2WS webservice utility and exposed ECHOPROG cobprogram as a Webservice Provider:

Code Block
//LS2WS   EXEC DFHLS2WS,                                                        
//    JAVADIR='java142s/J1.4',                                                  
//    USSDIR='cics650',                                                         
//    PATHPREF='',                                                              
//    TMPDIR='/tmp',                                                            
//    TMPFILE='ls2ws'                                                           
//INPUT.SYSUT1 DD *                                                             
LOGFILE=<Install_Directory>/ca1p/wsbind/provider/*                              
echoProgProviderBatch.log                                                       
PDSLIB=//<INSTALL_HLQ>.CA1P.COBCOPY                                             
REQMEM=ECHOCOMM                                                                 
RESPMEM=ECHOCOMM                                                                
LANG=COBOL                                                                      
PGMNAME=ECHOPROG                                                                
URI=ca1p/echoProgProviderBatch                                                  
PGMINT=COMMAREA                                                                 
WSBIND=<Install_Directory>/ca1p/wsbind/provider/*                               
echoProgProviderBatch.wsbind                                                    
WSDL=<Install_Directory>/ca1p/wsdl/echoProgProviderBatch.wsdl                   
MAPPING-LEVEL=1.2    

The parameter PGMNAME specifies the name of the cob program that will be exposed as a web service. The parameter URI specifies the URI link for the web service. An object CICS Webservice with the name as URI is created and linking with the Cobol Program which is the handle of CICS Webservice as a Provider.

Example Requester Webservice

SAMPLE2.jcl job has the WS2LS step which run the DFHWS2LS webservice utility and exposed ECHOWEBS cobprogram as a Webservice Requester:

Code Block
//WS2LS   EXEC DFHWS2LS,                                                        
//    JAVADIR='java142s/J1.4',                                                  
//    USSDIR='cics650',                                                         
//    PATHPREF='',                                                              
//    TMPDIR='/tmp',                                                            
//    TMPFILE='WS2LS'                                                           
//INPUT.SYSUT1 DD *                                                             
LOGFILE=<Install_Directory>/ca1p/wsbind/requester/*                             
echoProgRequesterBatch.log                                                      
PDSLIB=//<INSTALL_HLQ>.CA1P.COBCOPY                                             
REQMEM=ECHOPI                                                                   
RESPMEM=ECHOPO                                                                  
LANG=COBOL                                                                      
WSBIND=<Install_Directory>/ca1p/wsbind/requester/*                              
echoProgRequesterBatch.wsbind                                                   
WSDL=<Install_Directory>/ca1p/wsdl/echoProgRequesterBatch.wsdl                  
MAPPING-LEVEL=1.2  

ECHOWEBS.cob must consist of a CICS invoke webservice command linking to the same webservice resource echoProgRequesterBatch in the above code:

Code Block
MOVE 'echoProgRequesterBatch'                                        
             TO WS-WEBSERVICE-NAME 
EXEC CICS INVOKE WEBSERVICE(WS-WEBSERVICE-NAME)                      
             CHANNEL(WS-CHANNEL-NAME)                                           
             OPERATION(WS-OPERATION-NAME)                                       
             RESP(COMMAND-RESP) RESP2(COMMAND-RESP2)                            
END-EXEC                                                 

echoProgRequesterBatch.wsdl is the webservice resource file which must consist the URI for webservice:

Code Block
<service name="ECHOPROGService">
      <port binding="tns:ECHOPROGHTTPSoapBinding" name="ECHOPROGPort">
         <!--This soap:address indicates the location of the Web service over HTTP.
              Please replace "my-server" with the TCPIP host name of your CICS region.
              Please replace "my-port" with the port number of your CICS TCPIPSERVICE.-->
         <soap:address location="http://my-server:my-port/ca1p/echoProgProviderBatch"/>
         <!--This soap:address indicates the location of the Web service over HTTPS.-->
         <!--<soap:address location="https://my-server:my-port/ca1p/echoProgProviderBatch"/>-->
         <!--This soap:address indicates the location of the Web service over WebSphere MQSeries.
              Please replace "my-queue" with the appropriate queue name.-->
         <!--<soap:address location="jms:/queue?destination=my-queue&connectionFactory=()&targetService=/ca1p/echoProgProviderBatch&initialContextFactory=com.ibm.mq.jms.Nojndi" />-->
      </port>
 </service>

An object Call To CICS Webservice with the name as URI is created and linking with cobol program/section which invoke CICS Webservice.

Linking CICS Webservice objects and Call To CICS Webservice objects

The CICS Webservice object and Call To CICS Webservice object have the same URI for linking purposes.

Configuration

In order for CAST to be able to fully support CICS Webservices, the extension *.wsdl must be manually added to the CICS File Extensions option in the configuration of Mainframe extension in CAST Console:

Image Added

Info
Note: this file extension .wsdl will be added to the CICS File Extensions option by default in a future release of AIP Core.