CICS COBOL Compile Procedures

Please read the recent update to the CICS compile process that details the changes made to support CICS release 3.2 including four new PROCS and four discontinued PROCS. 

NWRDC provides a unique procedure library for each of our CICS customer institutions. Click here for details.

ProcedureDescription
CICOBISLCOBOL MVS compile and link with DEBUG support from a sequential library using the integrated CICS pre-compiler.
CICOBMPLCOBOL MVS compile and link with DEBUG support from a Panvalet library
CIDBCISLDB2/COBOL MVS compile and link with DEBUG support from a sequential library using the integrated CICS pre-compiler and the DB2 SQL Co-processor.
CICOBMSLCOBOL MVS compile and link with DEBUG support from a sequential library 
CIDBCMSLDB2/COBOL MVS compile and link with DEBUG support from a sequential library 
CPCOBISLCOBOL MVS compile and link from a sequential library using the integrated CICS pre-compiler.
CPCOBMPLCOBOL MVS compile and link from a Panvalet library 
CPCOBMSLCOBOL MVS compile and link from a sequential library 
CPDBCISLDB2/COBOL MVS compile and link from a sequential library using the integrated CICS pre-compiler and the DB2 SQL Co-processor.
CPDBCMSLDB2/COBOL MVS compile and link from a sequential library 

Click on the procedure name for more information.


Note: DEBUG support means the COBOL source is made available to the DEBUG/FAULT ANALYZER debugging tools and has NO meaningful effect on the object code generated. Compiling without " DEBUG support" does not preclude you from using DEBUG online utilities.  Newcopy and monitoring support is always fully functional. Debugging is simply easier if the COBOL source is available. 


BMS Mapping And Related Procedures

PROC NameDescription
CPMAPPLBMS map assembly and link from a Panvalet library.
CPMAPSLBMS map assembly and link from a sequential library.
CPMAPSTBMS map assembly and link from a sequential library that also produces HTML document template data.
GTAUTILASSIST/GT general purpose utility.
GTBUTILBMS/TS general purpose utility.
BMSGCONVImport existing pre-existing IBM mapset into BMS/GT.
BMSGPMACExport BMS/GT mapset to IBM macros.
BMSGCATLProduce COPYBOOK and object components of a BMS/GT mapset.

Click on the procedure name for more information.

Additional BMS/TS file maintenance information can be found at the BMS/TS Technique page.


CICS Private Procedure Library Considerations

Private PROCLIBs
The procedures provided for CICS related compiles reside in a variety of programming enclave-oriented private PROCLIBs.

Private PROCLIBs are accessed via the JCLLIB statement:

//x JCLLIB ORDER=(CICS.PROCLIB.iii)

where iii is derived from the following table:
 

Data Set Name By EnclaveIntended Users
CICS.PROCLIB.CJCChipola Junior College
CICS.PROCLIB.DCUDivision of Colleges and Universities (formerly Board of Regents)
CICS.PROCLIB.DOEDepartment of Education
CICS.PROCLIB.FAMFlorida A&M University
CICS.PROCLIB.FAUFlorida Atlantic University
CICS.PROCLIB.FIUFlorida International University
CICS.PROCLIB.FSUFlorida State University
CICS.PROCLIB.GTEGateway (PAEC) - Financial system
CICS.PROCLIB.GTSGateway (PAEC)  - Student system
CICS.PROCLIB.NWRNorthwest Regional Data Center
CICS.PROCLIB.STRSanta Rosa School District
CICS.PROCLIB.UCFUniversity of Central Florida
CICS.PROCLIB.USFUniversity of South Florida
CICS.PROCLIB.UWFUniversity of West Florida


The NWRDC provides a set of private procedure libraries, load libraries, copy libraries and DEBUG symbolic files for each programming enclave described above. The use of the private procedure libraries will ensure the appropriate users get the appropriate data sets.


 

CICOBISL

Compile and link with DEBUG symbolic support from a sequential data set using the integrated CICS pre-compiler. The appropriate symbolic parameters for this procedure are:

[COBOL] [COPYLIB,COPYLIBn ] [DEBUG ] [FORM ] [LC] [LKSYSLn] [LOADLIB] [MAPLIB] [MEMBER(r) ] [OUTC] [SSRANGE ]

where "(r)" means that parameter is required. For example:

//STEP EXEC CICOBISL,MEMBER=XXAAAA
//CICS.SYSIN DD DISP=SHR,DSN=II.USER.SOURCE(XXAAAA)


CICOBMPL


Compile and link with DEBUG symbolic support from a PANVALET library. The appropriate symbolic parameters for this procedure are:

[COBOL] [COPYLIB,COPYLIBn ] [DEBUG ] [FORM ] [LC] [LKSYSLn] [LOADLIB] [MAPLIB] [MEMBER(r) ] [OUTC] [OUTPC] [PANNAME ] [SOURCE] [USER(r)] [SSRANGE]

where "(r)" means that parameter is required. For example:

//STEP EXEC CICOBMPL,USER=UCF,MEMBER=XXAAAA
//PAN1.SYSIN DD *
++WRITE WORK,XXAAAA

 

CICOBMSL


Compile and link with DEBUG symbolic support from a sequential data set. The appropriate symbolic parameters for this procedure are:

[COBOL] [COPYLIB,COPYLIBn ] [DEBUG ] [FORM ] [LC] [LKSYSLn] [LOADLIB] [MAPLIB] [MEMBER(r) ] [OUTC] [OUTPC] [SOURCE ]  [SSRANGE]   

where "(r)" means that parameter is required. For example:

//STEP EXEC CICOBMSL,MEMBER=XXAAAA
//CICS.SYSIN DD DISP=SHR,DSN=II.USER.SOURCE(XXAAAA)

 

CIDBCISL

(*** NOTE: THIS PROC HAS BEEN TEMPORARILY DISABLED***)


Compile and link for DB2 with DEBUG symbolic support from a sequential library using the integrated CICS pre-compiler and the DB2 SQL Co-processor.. The appropriate parameters for this procedure are:

[COBOL] [COPYLIB,COPYLIBn ] [DBRMLIB(r)] [DEBUG ] [FORM] [LC] [LKSYSLn] [LOADLIB] [MAPLIB] [MEMBER(r) ] [OUTC]  [SSRANGE

where "(r)" means that parameter is required. For example:

//STEP EXEC CIDBCISL,DBRMLIB='ii.uuu.DBRMLIB',MEMBER=XXAAAA
//CICS.SYSIN DD DISP=SHR,DSN=ii.uuu.SOURCE(XXAAAA)
//BIND.SYSTSIN DD *                                                     
  DSN SYSTEM(DB2T)                                                      
  (your particular BIND parameters go here)                                             
  END

 

CIDBCMSL


Compile and link for DB2 with DEBUG symbolic support from a sequential library. The appropriate parameters for this procedure are:

[COBOL] [COPYLIB,COPYLIBn ] [DBRMLIB(r)] [DEBUG ] [FORM] [LC] [LKSYSLn] [LOADLIB] [MAPLIB] [MEMBER(r) ] [OUTC] [OUTPC ] [SOURCE ] [SSRANGE]

where "(r)" means that parameter is required. For example:

//STEP EXEC CIDBCMSL,DBRMLIB='ii.uuu.DBRMLIB',MEMBER=XXAAAA
//CICS.SYSIN DD DISP=SHR,DSN=ii.uuu.SOURCE(XXAAAA)
//BIND.SYSTSIN DD *                                                     
  DSN SYSTEM(DB2T)                                                      
  (your particular BIND parameters go here)                                    
  END

 

CPCOBISL


Compile and link from a sequential data set using the integrated CICS pre-compiler.. The appropriate symbolic parameters for this procedure are:

[COBOL] [COPYLIB,COPYLIBn] [DEBUG] [FORM] [LC] [LKSYSLn] [LOADLIB] [MAPLIB] [MEMBER(r)] [OUTC]

where "(r)" means that parameter is required. Example:

//STEP EXEC CPCOBISL,MEMBER=XXAAAA
//CICS.SYSIN DD DISP=SHR,DSN=II.USER.SOURCE(XXAAAA)

 

CPCOBMPL


Compile and link from a PANVALET library. The appropriate symbolic parameters for this procedure are:

[COBOL] [COPYLIB,COPYLIBn] [DEBUG] [FORM] [LC] [LKSYSLn] [LOADLIB] [MAPLIB] [MEMBER(r)] [OUTC] [OUTPC] [PANNAME ] [SOURCE] [USER(r)]

where "(r)" means that parameter is required. Example:

//STEP EXEC CPCOBMPL,USER=UCF,MEMBER=XXAAAA
//PAN1.SYSIN DD *
++WRITE WORK,XXAAAA

 

CPCOBMSL


Compile and link from a sequential data set. The appropriate symbolic parameters for this procedure are:

[COBOL] [COPYLIB,COPYLIBn] [DEBUG] [FORM] [LC] [LKSYSLn] [LOADLIB] [MAPLIB] [MEMBER(r)] [OUTC] [OUTPC] [SOURCE]

where "(r)" means that parameter is required. Example:

//STEP EXEC CPCOBMSL,MEMBER=XXAAAA
//CICS.SYSIN DD DISP=SHR,DSN=II.USER.SOURCE(XXAAAA)

 

CPDBCISL

(*** NOTE: THIS PROC HAS BEEN TEMPORARILY DISABLED***)


Compile and link for DB2 from a sequential library using the integrated CICS pre-compiler and the DB2 SQL Co-processor.. The appropriate parameters for this procedure are:

[COBOL] [COPYLIB,COPYLIBn] [DBRMLIB(r)] [DEBUG] [FORM] [LC] [LKSYSLn] [LOADLIB] [MAPLIB] [MEMBER(r)] [OUTC]

where "(r)" means that parameter is required. Example:

//STEP EXEC CPDBCISL,DBRMLIB='ii.uuu.DBRMLIB',MEMBER=XXAAAA
//CICS.SYSIN DD DISP=SHR,DSN=ii.uuu.SOURCE(XXAAAA)
//BIND.SYSTSIN DD *                                                     
  DSN SYSTEM(DB2T)                                                      
  (your particular BIND parameters go here)                                           
  END

 

 

CPDBCMSL


Compile and link for DB2 from a sequential library. The appropriate parameters for this procedure are:

[COBOL] [COPYLIB,COPYLIBn] [DBRMLIB(r)] [DEBUG] [FORM] [LC] [LKSYSLn] [LOADLIB] [MAPLIB] [MEMBER(r)] [OUTC] [OUTPC] [SOURCE] [SRCLIBn]

where "(r)" means that parameter is required. Example:

//STEP EXEC CPDBCMSL,DBRMLIB='ii.uuu.DBRMLIB',MEMBER=XXAAAA
//CICS.SYSIN DD DISP=SHR,DSN=ii.uuu.SOURCE(XXAAAA)
//BIND.SYSTSIN DD *                                                     
  DSN SYSTEM(DB2T)                                                      
 (your particular BIND parameters go here)                                  
  END

 

CPMAPPL


Assemble and link from a PANVALET Library. The appropriate symbolic parameters for this procedure are:

[MEMBER(r) ] [PANNAME ] [USER(r)] [LOADLIB] [MAPLIB]

where "(r)" means that parameter is required.

 

CPMAPSL


Assemble and link from a sequential library. The appropriate symbolic parameters for this procedure are:

[LOADLIB] [MEMBER(r)]  [MAPLIB]

where "(r)" means that parameter is required.

 

CPMAPST


BMS map assembly and link from a sequential library that also produces HTML document template data.. The appropriate symbolic parameters for this procedure are:

[HTMLLIB] [LOADLIB] [MEMBER(r)]  [MAPLIB]

where "(r)" means that parameter is required.

 

GTAUTIL


This procedure invokes GTAUTIL, the basic batch maintenance facility of ASSIST/GT and BMS/GT. Some of the functions performed by this utility are BACKUP (backup library to tape) and RESTORE (restore library from tape).

Example: Print documentation for help windows whose names start with "NWAS"

//xxxxxxxx JOB (xxxxx,....),'UTILITY',TIME=(,2)
//*
//PRINT EXEC GTAUTIL,USER=NWRV
//ASSIST.SYSIN DD *
PRINT SET=*WINDOW,MAP=NWAS*

Symbolic parameters: (r) means required.

USER      (r) First node of the DSN for the BMS/GT library
NAMEThe rest of the DSN for the BMS/GT library, default is 'GT.MASTER.FILE'
DISPDisposition of the BMS/GT library, default is 'SHR'
CLASSSYSOUT class for report, default is '*'
FORMSYSOUT form parameter for report, default is '' (null)
COPIESSYSOUT copies parameter for report, default is '1'

 

GTBUTIL


This procedure invokes GTBUTIL, the basic batch maintenance facility of BMS/GT. Some of the functions performed by this utility are: DLIST - Print directory of library. PRINT - Produce hard-copy documentation of map.

Example: Print documentation for BMS/GT mapset "MPTEST"

//xxxxxbms JOB (xxxxx,....),'BMSGT,UTILITY',TIME=(,2)
//*
//PRINT EXEC GTBUTIL,USER=NWRV
//BMSGT.SYSIN DD *
PRINT MAPSET=MPTEST,MAP=*

Symbolic parameters: (r) means required.

USER      (r) First node of the DSN for the BMS/GT library
NAMEThe rest of the DSN for the BMS/GT library, default is 'GT.MASTER.FILE'
DISPDisposition of the BMS/GT library, default is 'SHR'
CLASSSYSOUT class for report, default is '*'
FORMSYSOUT form parameter for report, default is '' (null)
COPIESSYSOUT copies parameter for report, default is '1'

 

 

BMSGCONV


Converts standard IBM BMS screens to BMS/GT format. This process is driven by the "object" and "symbolic" maps produced by assembling BMS macros, not the BMS macros themselves.

Procedure description: A BMS/GT utility processes the "object" map from the CICS load library, matches it with the "symbolic" map from the CICS copy library, and builds a BMS/GT screen image. The BMS/GT screen image is placed in a special BMS/GT library, called the "transfer" library. Before the screen can be altered on-line it must be "COPIED" from the transfer library and placed in the appropriate BMS/GT MASTER library. The on-line panel for this task can be accessed by typing "2.2" at the main menu. The transfer library can be bypassed by specifying the symbolics "USER" and "NAME" to identify your BMS/GT Master library. The Master library must be "closed" on-line for this option to work.

WARNING: This utility will not replace a mapset in either the transfer file or your BMS/GT library. Any old versions of a to-be-replaced mapset must be deleted or renamed first. If you want to overlay an existing mapset, just add the keyword "DELETE" to your control card as illustrated below. The delete option should always be used in conjunction with the transfer file.

Example: Convert BMS mapset "MPTEST"

//xxxxxbms JOB (xxxxx,....),'xxx CONVERT',TIME=(,2)
//PROCLIB JCLLIB ORDER=(CICS.PROCLIB.xxx)
//CONV EXEC BMSGCONV
//BMSGT.SYSIN DD *,DCB=CICS.COPYLIB.xxx
 CONVERT MAPSET=MPTEST,LANG=C,PREFIX=MPTEST-,DELETE
// DD DSN=CICS.COPYLIB.xxx(MPTEST),DISP=SHR

Symbolic parameters:

USER      First node of the DSN for the BMS/GT library, defaults to 'NWRV'
NAMEThe rest of the DSN for the BMS/GT library, default is 'GT.TRANSFER.FILE'
DISPDisposition of the BMS/GT library, default is 'SHR'
CLASSSysout class for report, default is '*'
FORMSYSOUT form parameter for report, default is '' (null)
COPIESSYSOUT copies parameter for report, default is '1'

 

BMSGPMAC


This procedure invokes GTBPUNCH, a utility that produces BMS MACROs from BMS/GT library data. Due to extensions provides by BMS/GT some things may not have an equivalent MACRO entry. See the GTBPUNCH section later in this document for additional parameters and restrictions.

Example: Produce and print BMS MACROs for BMS/GT mapset "MPTEST"

//xxxxxbms JOB (xxxxx,....),'xxx PUNCH',TIME=(,2)
//*
//PMAC EXEC BMSGPMAC,USER=NWRV,
//    LIB='II.UUU.MAPS'
//BMSGT.SYSIN DD *
 PUNCH MAPSET=MPTEST,LONGNAME  
//

Symbolic parameters: (r) means required.

USER      (r) First node of the DSN for the BMS/GT library
NAMEThe rest of the DSN for the BMS/GT library, default is 'GT.MASTER.FILE'
DISPDisposition of the BMS/GT library, default is 'SHR'
CLASSSYSOUT class for report, default is '*'
FORMSYSOUT form parameter for report, default is '' (null)
COPIESSYSOUT copies parameter for report, default is '1'
LIB(r) DSN of the repository of the macros produced. Member name will be the same as the MAPSET name.


The following describes the options supported by this utility. Note that all are controlled by the content of the "PUNCH" parameter card.

 

(GTBPUNCH) Macro Generator Utility


The MACRO GENERATOR was created for those installations which must distribute their maps to other facilities in source format. This utility reads the BMS/GT library and builds duplicate BMS macro source for distribution purposes. This chapter is intended to help the new user get acquainted with the functions of the MACRO GENERATOR. It has been put together in narrative form with examples to show its ease of use.

During the execution of the MACRO GENERATOR, a listing will be produced showing the macro(s) generated. The macro will be catalogued in the source library or PDS using this MAPSET name. Sample JCL for GTBPUNCH is shown below.
 

FUNCTION    This utility will build the BMS macro from the BMS/GT definitions in the library. The macros can be produced in several variations to accommodate almost any user.
INPUT(Example) PUNCH MAPSET=aaaaaa,STORAGE=bbbb,TYPE=cccc, CNTRL=dddd,TIOAPFX=eeee,LANG=ffff,SUFFIX=g
MAPSET(Required) Specify the MAPSET to be built. If TEST versions of a map exist, then the PRODUCTION version will NOT be included.
CNTRL(Optional) Normally,  IEBUPDTE (OS) cards are built for ease in cataloging the macros to a source library. If you wish these cards NOT be generated, then specify CNTRL=NO (YES is the default).

Note: If the above parameters are the only entries on the PUNCH statement, then the DFHMSD macro will NOT be built. This allows for the user to insert his/her own DFHMSD macro in front of the generated map macros.

STORAGE(Optional) STORAGE=YES or STORAGE=AUTO will generate the appropriate parameter in the DFHMSD macro. Default is STORAGE=NO.
TYPE(Optional) STORAGE=MAP will insert this parameter on the DFHMSD macro. Default is TYPE=DSECT. If you wish TYPE=&SYSPARM, then you must specify TYPE=S or TYPE=SYSPARM.
TIOAPFX(Optional) TIOAPFX=YES will insert this parameter on the DFHMSD macro. Default is TIOAPFX=NO.
LANG(Optional) Specify the language for which the DSECT is to be generated. Valid choices are: ASM, COBOL, PLI, RPG. Default is COBOL.
SUFFIX(Optional) Specify the character to be appended to the MAPSET name. This should be a character defined by your CICS system administrator.
MODE(Optional) Default is MODE=INOUT. BMS/GT defaults to input/output type maps. Specify MODE=IN for input only DSECTS or MODE=OUT for output only DSECTS.
BASE(Optional) Default is none. If you need a BASE entry for your COBOL or PL/I programs use this parameter to specify up to an eight (8) character name. This entry indicates that the same storage base will be used for the symbolic description maps from more than one map set.
PRINT(Optional) Default is PRINT=NO. Use PRINT=YES to turn on the BMS PRINT option. This must be specified if the printer is to be started.
OBFMT(Optional) Default is OBFMT=NO. OBFMT=YES indicates that all maps within this mapset are eligible for use in outboard formatting.
LDC(Optional) Default is none. This entry, LDC=mnemonic, specifies the mnemonic to be used by CICS to determine the logical device code that is to be used by BMS.
LONGNAME(Optional) Tells the utility to produce full field names. Only CICS 3.3 and above support long BMS field names.


In addition to the preceding parameters, the macro generator accepts special card images which are simply 'passed through' to the output file. This allows the user to add special comments, date cards, etc. to the macro assembly. To pass a card image to the spooler, enter a '%' (percent sign) in the first position. If the first position is a '%', the card image will be shifted one position to the left and written to the output file. For example:

%* ASSEMBLY DATE=@DATE
% PUNCH ' XXXXXXXXXXXXXX'
% TITLE 'MAPSET FOR GENERAL LEDGER'

 

BMSGCATL


Produces the object and symbolic forms of the map as required for use by a CICS application.

Procedure description: A BMS/GT utility produces the object and symbolic maps and these are passed to IEBUPDTE and the Linkage Editor for processing. This is the batch equivalent of the online "SUBMIT" process.

Example: Catal the BMS/GT mapset "MPTEST"

//xxxxxBMS JOB (xxxxx,....),'CATAL',TIME=(,2)
//PROCLIB JCLLIB ORDER=(CICS.PROCLIB.xxx)
//CATAL EXEC BMSGCATL,USER='NWRV'
//BMSGT.SYSIN DD *
 CATAL MAPSET=MPTEST

Symbolic parameters: (r) means required.

USER(r) First node of the DSN for the BMS/GT library
NAMEThe rest of the DSN for the BMS/GT library, default is 'GT.MASTER.FILE'
DISPDisposition of the BMS/GT library, default is 'SHR'
CLASSSYSOUT class for report, default is '*'
FORMSYSOUT form parameter for report, default is '' (null)
COPIESSYSOUT copies parameter for report, default is '1'
LIB(r) DSN of the repository of the macros produced. Member name will be the same as the MAPSET name.
COPYLIB(r)DSN of the PDS into which the copybook is to be placed.
LOADLIB(r)DSN of the PDS into which the load module is to be placed.


 

 

Symbolic Parameters Used In Various Compile Procedures

COBOL
Controls the style that the CICS precompiler uses as it transforms EXEC CICS commands to COBOL CALL statements.
Say "COBOL=COBOL2" for the original style.
Say "COBOL=COBOL3" for the new style

COPYLIB,COPYLIB1, COPYLIB2....COPYLIB9
Dataset names of PDS source libraries used to resolve user COPY statements. COPYLIB='III.PRIVATE.COPYLIB'

DBRMLIB
Fixed blocked PDS for storage of the DB2 BIND data. DBRMLIB='III.USER.DBRMLIB'

DEBUG
This default setting for this parameter will include the COBOL line number as part of the CEDF display. May be set to "NODEBUG" for last compile before a move to production. This will result in a smaller load module.

FORM
JES2 form ID, defaults to "STD".

HTMLLIB
The PDS or PDSE that is to contain the generated HTML doctemplate data.

LC
Command level precompiler's "Line Count" value, defaults to 60.

LKSYSL1, LKSYSL2, .... , LKSYSL8
PDS names of  subroutine libraries for linkedit processing.

LOADLIB
DSN of the load library into which the resultant load module should be stored.

MAPLIB
DSN of the source of BMS map copybooks.

MEMBER
The name of your program or map in the CICS test load library. MEMBER=AATTTT

OUTC
Compiler SYSOUT class, defaults to "*".

OUTPC
Precompiler SYSOUT class, defaults to "*".

PANNAME
Defaults to "PANVALET". May be used to specify the last part of the PANVALET dataset name.

SOURCE
Defaults to "SOURCE". May be set to "NOSOURCE" to suppress the precompiler listing.

SSRANGE
As we all know, COBOL does not enforce array boundaries. COBOL is perfectly happy to move something to the 100th element of a 10 element array. Similarly, COBOL will allow you to reference array elements that are before the beginning of array or past the end of an array.

The results can be anything from benign to disastrous, but the results are ALWAYS unpredictable.

The SSRANGE COBOL Compiler option adds code to the generated program that guarantees that all array boundaries (in both directions) are preserved. Any program that violates its array boundaries will be terminated at execution time with a 4038 abend. This applies to subscripted and indexed arrays as well as any data references using COBOL's indirect addressing feature.

We introduced the SSRANGE COBOL Compiler option into the Debugging Compile Procedures because the new IBM Debugging Tool lacked some of the automatic storage protection offered by the discontinued CA INTERTEST product.

SSRANGE has caused some heartache when some old code was recompiled. Some apparently harmless array over-runs have been occurring day after day and SSRANGE stopped them in their tracks.

If you do NOT want COBOL to protect your array boundaries, specify the following override on the JCL card (or continuation) that specifies your choice of Compile PROCS:

SSRANGE=NOSSRANGE

USER
Used to specify the first part of the PANVALET dataset name.


CICS Compile Procedure Update

We have upgraded to CICS 3.2. This action will allow CICS applications to use the new CICS features like Channels and Containers as well as implement other major changes to the compile process.

What’s New

The most dramatic additions to the CICS application arsenal are:

  • Channels and Containers
  • SOAP implementation with full WSDL support.
  • Integrated pre-compilers for CICS and DB2 (NOTE: The DB2 integrated pre-compiler procedures have been temporarily disabled)

Channels and Containers are the long awaited replacement for the venerable Commarea. No longer must a single 32K limited item be passed between programs and transactions.  Now virtually unlimited amounts of data can be passed between components of a CICS application. The definitive reference on the new Channels and Containers can be found in the IBM Red Book:CICS Transaction Server V5R2 Channels and Containers Revealed.

The CICS support of the SOAP environment means that CICS applications can service WSDL based NET applications without the servers knowing the intricacies of our mainframe environment. They see a fancy XML construct, CICS sees a standard COMMAREA or Container.

This release of CICS allows the elimination of the COBOL and DB2 pre-compiler steps. The advantages of this are significant.

  • Your compile runs are faster and cheaper
  • The source line numbers referenced during debugging will be accurate.
  • You may implement EXEC CICS and EXEC SQL constructs in copybooks with full REPLACING support.

 New Procedures

 Due to the extensive JCL changes required to implement the new integrated pre-compilers, we have provided 4 new compile procedures in support of the new features.

Procedure NameDescription
CICOBISLCOBOL compile with DEBUG/FAULT ANALYZER support from a sequential data set
CIDBCISLCOBOL – DB2 compile with DEBUG/FAULT ANALYZER support from a sequential data set
CPCOBISLCOBOL compile from a sequential data set
CPDBCISLCOBOL – DB2 compile from a sequential data set

(Panvalet users will need to prefix their compile JCL with an execution of the PAN1 procedure.)

 COPYLIB Changes in the new PROCs

 The DB2 pre-compiler SYSLIB symbolics SRCLIB1 through SRCLIB8 (used to resolve SQL INCLUDE statements) have not been included in the new integrated compile procedures. Use COPYLIB and COPYLIB1 through COPYLIB7 to specify the set of PDS’s where either COBOL COPY statements or EXEC SQL INCLUDE statements can be resolved.

 Discontinued Procedures

 We have not brought the following PROCS forward

Procedure NameDescription
CPCOBMP>COBOL MVS compile from a Panvalet library (No Linkedit)
CPCOBMSCOBOL MVS compile from a sequential library  (No Linkedit)
CPMAPPBMS map assembly from a Panvalet library.  (No Linkedit)
CPMAPSBMS map assembly from a sequential library.  (No Linkedit)

 Additional Considerations

 The elimination of the CICS pre-compile step is transparent as far as EXEC CICS syntax is concerned.

 The elimination of the DB2 pre-compiler is not completely transparent as far as EXEC SQL syntax is concerned. 

 DB2 calls their integrated pre-compiler the “DB2 SQL Coprocessor”

 A summary of the syntax differences are:

 DB2 pre-compilerDB2 SQL Coprocessor
EXEC SQL INCLUDEEXEC SQL INCLUDE statements do not have to end in a periodTreats EXEC SQL INCLUDE statement just like the COBOL COPY command. This adds a requirement for a period (“.”) at the end of each EXEC SQL INCLUDE statement. Note: that required period is stripped after the processing of the COPY statement.
Data following END-EXECIgnores any code that follows the END-EXEC statement on the same lineDoes not ignore code that follows the END-EXEC statement on the same line
Unique Host VariablesDoes not require that host variable references be unique. The first definition that maps to a valid DB2 data type is used.Requires that each host variable reference be unique. The coprocessor diagnoses non-unique references to host variables. You must fully qualify host variable references
Column requirements and continuation rulesRequires that EXEC SQL statements start in columns 12 through 72. Continuation lines of the statements can start anywhere in columns 8 through 72Requires that all lines of an EXEC SQL statement, including continuation lines, be coded in columns 12 through 72.