
CICS COBOL Compile Procedures
Procedure | Description |
CICOBISL | COBOL MVS compile and link with DEBUG support from a sequential library using the integrated CICS pre-compiler. |
CICOBMPL | COBOL MVS compile and link with DEBUG support from a Panvalet library |
CIDBCISL | DB2/COBOL MVS compile and link with DEBUG support from a sequential library using the integrated CICS pre-compiler and the DB2 SQL Co-processor. |
CICOBMSL | COBOL MVS compile and link with DEBUG support from a sequential library |
CIDBCMSL | DB2/COBOL MVS compile and link with DEBUG support from a sequential library |
CPCOBISL | COBOL MVS compile and link from a sequential library using the integrated CICS pre-compiler. |
CPCOBMPL | COBOL MVS compile and link from a Panvalet library |
CPCOBMSL | COBOL MVS compile and link from a sequential library |
CPDBCISL | DB2/COBOL MVS compile and link from a sequential library using the integrated CICS pre-compiler and the DB2 SQL Co-processor. |
CPDBCMSL | DB2/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 Name | Description |
CPMAPPL | BMS map assembly and link from a Panvalet library. |
CPMAPSL | BMS map assembly and link from a sequential library. |
CPMAPST | BMS map assembly and link from a sequential library that also produces HTML document template data. |
GTAUTIL | ASSIST/GT general purpose utility. |
GTBUTIL | BMS/TS general purpose utility. |
BMSGCONV | Import existing pre-existing IBM mapset into BMS/GT. |
BMSGPMAC | Export BMS/GT mapset to IBM macros. |
BMSGCATL | Produce 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 Enclave | Intended Users |
CICS.PROCLIB.CJC | Chipola Junior College |
CICS.PROCLIB.DCU | Division of Colleges and Universities (formerly Board of Regents) |
CICS.PROCLIB.DOE | Department of Education |
CICS.PROCLIB.FAM | Florida A&M University |
CICS.PROCLIB.FAU | Florida Atlantic University |
CICS.PROCLIB.FIU | Florida International University |
CICS.PROCLIB.FSU | Florida State University |
CICS.PROCLIB.GTE | Gateway (PAEC) - Financial system |
CICS.PROCLIB.GTS | Gateway (PAEC) - Student system |
CICS.PROCLIB.NWR | Northwest Regional Data Center |
CICS.PROCLIB.STR | Santa Rosa School District |
CICS.PROCLIB.UCF | University of Central Florida |
CICS.PROCLIB.USF | University of South Florida |
CICS.PROCLIB.UWF | University 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 |
NAME | The rest of the DSN for the BMS/GT library, default is 'GT.MASTER.FILE' |
DISP | Disposition of the BMS/GT library, default is 'SHR' |
CLASS | SYSOUT class for report, default is '*' |
FORM | SYSOUT form parameter for report, default is '' (null) |
COPIES | SYSOUT 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 |
NAME | The rest of the DSN for the BMS/GT library, default is 'GT.MASTER.FILE' |
DISP | Disposition of the BMS/GT library, default is 'SHR' |
CLASS | SYSOUT class for report, default is '*' |
FORM | SYSOUT form parameter for report, default is '' (null) |
COPIES | SYSOUT 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' |
NAME | The rest of the DSN for the BMS/GT library, default is 'GT.TRANSFER.FILE' |
DISP | Disposition of the BMS/GT library, default is 'SHR' |
CLASS | Sysout class for report, default is '*' |
FORM | SYSOUT form parameter for report, default is '' (null) |
COPIES | SYSOUT 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 |
NAME | The rest of the DSN for the BMS/GT library, default is 'GT.MASTER.FILE' |
DISP | Disposition of the BMS/GT library, default is 'SHR' |
CLASS | SYSOUT class for report, default is '*' |
FORM | SYSOUT form parameter for report, default is '' (null) |
COPIES | SYSOUT 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. |
(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 |
NAME | The rest of the DSN for the BMS/GT library, default is 'GT.MASTER.FILE' |
DISP | Disposition of the BMS/GT library, default is 'SHR' |
CLASS | SYSOUT class for report, default is '*' |
FORM | SYSOUT form parameter for report, default is '' (null) |
COPIES | SYSOUT 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.
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 Name | Description |
CICOBISL | COBOL compile with DEBUG/FAULT ANALYZER support from a sequential data set |
CIDBCISL | COBOL – DB2 compile with DEBUG/FAULT ANALYZER support from a sequential data set |
CPCOBISL | COBOL compile from a sequential data set |
CPDBCISL | COBOL – 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 Name | Description |
CPCOBMP | >COBOL MVS compile from a Panvalet library (No Linkedit) |
CPCOBMS | COBOL MVS compile from a sequential library (No Linkedit) |
CPMAPP | BMS map assembly from a Panvalet library. (No Linkedit) |
CPMAPS | BMS 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-compiler | DB2 SQL Coprocessor | |
EXEC SQL INCLUDE | EXEC SQL INCLUDE statements do not have to end in a period | Treats 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-EXEC | Ignores any code that follows the END-EXEC statement on the same line | Does not ignore code that follows the END-EXEC statement on the same line |
Unique Host Variables | Does 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 rules | Requires that EXEC SQL statements start in columns 12 through 72. Continuation lines of the statements can start anywhere in columns 8 through 72 | Requires that all lines of an EXEC SQL statement, including continuation lines, be coded in columns 12 through 72. |