Page 1 of 1

JCL Compiler COBOL 6+

Posted: Sat Oct 07, 2023 2:36 am
by vagner.bellacosa
Good afternoon, I use an academic environment in which until recently we used COBOL 4.2.

They recently changed to version 6.3, but my compilation jobs no longer work. Could anyone please provide a jcl copy for the new version?

- COBOL compilation
- COBOL + DB2 compilation
- COBOL + CICS compilation
- COBOL + DB2 + CICS compilation

Thank you very much
Vagner

Re: JCL Compiler COBOL 6+

Posted: Sat Oct 07, 2023 10:23 pm
by zum13
Hello.

In general, there should not be much change required to the JCL for an upgrade of the compiler. It's rare for the inputs/outputs required to change between versions. The one thing that will change between versions is going to be the load dataset for the compiler on the "STEPLIB" DD statement. I know that the ADCD uses a high level qualifier of the form "IGYvrm" (e.g. "IGY630", so the compiler's load dataset would be "IGY630.SIGYCOMP"), but the one used at your installation may not be the same. The V4.2 dataset name may give some clues as to what the new dataset will be called.

If you can't find the compiler installation datasets yourself, I'd suggest having a word with your sysprogs. Without having seen your existing JCL, it might also be possible that installation-specific library procedures haven't been updated when they should have, in which case, they'd be the people to fix it.

Re: JCL Compiler COBOL 6+

Posted: Sat Oct 07, 2023 10:45 pm
by Anuj Dhawan
vagner.bellacosa wrote: Sat Oct 07, 2023 2:36 am
They recently changed to version 6.3, but my compilation jobs no longer work.
Along with what zum13 said, when you say, "jobs no longer work" - what happens, any error you get? Could you share the message/s from failed run?

Re: JCL Compiler COBOL 6+

Posted: Mon Oct 09, 2023 6:58 pm
by Robert Sample
Are you using IGYWC for your COBOL compiles? If not, you are using a custom set up and MUST contact your site support group for assistance. There are many, many, many ways to set up COBOL compiles and each site typically does it a little differently. If you are using IGYWC, then you need to find the high-level and mid-level qualifiers for the SIGYPROC data set that is part of the 6.3 installation. Again, your site support group can help you with that.

Re: JCL Compiler COBOL 6+

Posted: Thu Oct 19, 2023 9:21 am
by vagner.bellacosa
Thanks for your help, after a lot of back and forth, I discovered the errors, adjusted the Load file to the PDSE format and included new temporary libraries.

Re: JCL Compiler COBOL 6+

Posted: Thu Oct 19, 2023 9:22 am
by vagner.bellacosa
//CATCOB63 JOB ('00'),TSO.&SYSUID,NOTIFY=&SYSUID, 00010001
// MSGCLASS=T,MSGLEVEL=1,CLASS=A,REGION=0M 00020000
//*------------------------------------------------------------------* 00030000
//* COMPILA E LINKEDITA PROGRAMA COBOL BATCH VERSAO 6.3 00040001
//*------------------------------------------------------------------* 00050000
//COMPCOB PROC MOD=COBOL006, 00060000
// DSN='KC02746.WORKBOOK.COBOL', 00070000
// LIB='KC02746.LIB.CBLPDSE' 00080002
//*------------------------------------------------------------------* 00090000
//*------------------------IMPORTANTE--------------------------------* 00091001
//* DEVIDO A MUDANCAS NO COMPILADOR O ARQUIVO DE LIB DEVE ESTAR NO * 00092001
//* FORMATO PDSE, CASO CONTRARIO ABENDARA POR ERRO DE ALOCACAO * 00092101
//*------------------------------------------------------------------* 00093001
//*------------------------------------------------------------------* 00094001
//COB EXEC PGM=IGYCRCTL, 00100000
// PARM='BUFSIZE(32760),LIB,,NOOPT,FLAG(I,W),RENT,LIST,ARITH(EXTEND)' 00110000
//STEPLIB DD DISP=SHR,DSN=IGY630.SIGYCOMP 00120000
//SYSLIB DD DSN=&DSN,DISP=SHR 00130000
// DD DSN=CEE.SCEESAMP,DISP=SHR 00140000
//SYSPRINT DD SYSOUT=* 00150000
//SYSIN DD DSN=&DSN(&MOD),DISP=SHR 00160000
//SYSLIN DD DSN=&&LOADSET,DISP=(MOD,PASS), 00170000
// UNIT=SYSDA,SPACE=(180,(250,100)) 00180000
//SYSUT1 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)),VOL=(,,,1) 00190000
//SYSUT2 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)),VOL=(,,,1) 00200000
//SYSUT3 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)),VOL=(,,,1) 00210000
//SYSUT4 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)),VOL=(,,,1) 00220000
//SYSUT5 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)),VOL=(,,,1) 00230000
//SYSUT6 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)),VOL=(,,,1) 00240000
//SYSUT7 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)),VOL=(,,,1) 00250000
//SYSUT8 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)),VOL=(,,,1) 00260000
//SYSUT9 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)),VOL=(,,,1) 00270000
//SYSUT10 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)),VOL=(,,,1) 00280000
//SYSUT11 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)),VOL=(,,,1) 00290000
//SYSUT12 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)),VOL=(,,,1) 00300000
//SYSUT13 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)),VOL=(,,,1) 00310000
//SYSUT14 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)),VOL=(,,,1) 00320000
//SYSUT15 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)),VOL=(,,,1) 00330000
//SYSMDECK DD UNIT=SYSALLDA,SPACE=(CYL,(1,1)),VOL=(,,,1) 00340000
//* 00350000
//******************************************************************** 00360000
//LKED EXEC PGM=IEWL, 00370000
// PARM='XREF,RENT',COND=(5,LT,COB) 00380000
//SYSLIB DD DSN=CEE.SCEELKED,DISP=SHR 00390000
// DD DSN=SYS1.LINKLIB,DISP=SHR 00400000
// DD DSN=&LIB,DISP=SHR 00410000
//SYSLMOD DD DSN=&LIB(&MOD),DISP=SHR 00420000
//SYSUT1 DD UNIT=SYSDA,DCB=BLKSIZE=1024, 00430000
// SPACE=(1024,(200,20)) 00440000
//SYSPRINT DD SYSOUT=A 00450000
//SYSLIN DD DSN=&&LOADSET,DISP=(OLD,DELETE) 00460000
// PEND 00470000
/* 00480000
//*------------------------------------------------------------------* 00481000
//CATCOB EXEC COMPCOB 00490000
//*------------------------* FIM PROCEDURE *------------------------* 00500000

Re: JCL Compiler COBOL 6+

Posted: Thu Oct 19, 2023 11:20 pm
by zum13
Something you can do to make your job reusable is put the inline procedure into one of your own PDS(E) datasets somewhere. If you put the block from the "PROC" to "PEND" statements into it's own member, you can use the "JCLLIB" statement to add the PDS to the list of PROCLIBs to be used by the job so that all you need to run a compile is something like this...

Code: Select all

//CATCOB63 JOB ('00'),TSO.&SYSUID,NOTIFY=&SYSUID,
//             MSGCLASS=T,MSGLEVEL=1,CLASS=A,REGION=0M
//      JCLLIB ORDER=(your.proc.dataset)
//CATCOB  EXEC COMPCOB MOD=program-name
This has the advantage that if you have a bit of JCL for each program you're working on then the next time the compiler version changes, you'll only have to update the procedure and not each of the individual jobs.