Home » Infrastructure » Other Operating Systems » COBOL precompile jcl
COBOL precompile jcl [message #113904] Sat, 03 May 2003 19:24 Go to next message
Patrick Pouncey
Messages: 2
Registered: May 2003
Junior Member
Would anyone care to share their JCL for precompiling the OSAMPLE program that comes with access manager for CICS? We are trying to write a CICS transaction that will use SQL and net8 to retrieve information from a remote Oracle database. Our main problem is lack of a working system to look at, and insufficient documentation. Thanks in advance for any assistance...
Re: COBOL precompile jcl [message #113905 is a reply to message #113904] Sat, 03 May 2003 19:25 Go to previous messageGo to next message
paul mansfield
Messages: 35
Registered: January 2001
Member
Here's one that works - its a bit verbose as its split into proc and parms etc
//CFCICS1X JOB CFCICS1,
// 'OLXDSQLC/OSAMPLE2',
// CLASS=C,NOTIFY=CFCICS1,REGION=6M,
// MSGCLASS=X,MSGLEVEL=(1,1)
// JCLLIB ORDER=(CFSYSP.XYZ.PROCLIB)
//* THIS JOB EXECUTES A CICS PRO*COBOL COMPILE
//PROCOBOL EXEC OLPDSQLC,CBLPARMS='',
// COPYLIB1=NMDEVT.CFCICS1.COPY.COPYLIB,
// COPYLIB2=NMTEST04.INT.COPY.COPYLIB,
// COPYLIB3=NMTEST04.TACOPY.COPY.COPYLIB,
// COPYLIB4=NMTEST04.DMCOPY.COPY.COPYLIB,
// COPYLIB5=NMSYST01.SYS.COPY.COPYLIB,
// COPYLIB6=GLPROD.XYZ.SRCLIB,
// ORADBC=ORXD,
// SRCLIB=NMDEVT.CFCICS1.ONLINE.SRCLIB,
// LOADLIB=NMDEVT04.UNIT.ONLINE.LOADLIB,
// MEMBER=OSAMPLE2
//PCCCOB.CONNSTR DD *
USER=ABC1/XYZ@AIX1
//PCCCOB.TNSNAMES DD DISP=SHR,DSN=CFSYSP.OLPD.TNSNAMES(ORXD)
//PCCCOB.ORA@ORXD DD DUMMY
//PCCCOB.TNS@NET8 DD DUMMY
//LKED.SYSLKED DD *
INCLUDE SYSLIB(DFHECI)
============THE PROC=======================
//OLPDSQLC PROC IGYPRFX='IGY.V2R1M0',
// AQ='APOST',
// SYSLBLK=400,
// CEEPRFX='CEE',
// ORAPRFX='ORACLE.V8R1M7',
// ORADBC='ORA?',
// SRCLIB=,
// LOADLIB=,
// PCCLIB='CFSYSP.OLPD.PCCPARMC',
// MEMBER=,
// CICPRFX='CICSTS13.CICS',
// COPYLIB1='CICSTS13.CICS.SDFHCOB',
// COPYLIB2='CICSTS13.CICS.SDFHCOB',
// COPYLIB3='CICSTS13.CICS.SDFHCOB',
// COPYLIB4='CICSTS13.CICS.SDFHCOB',
// COPYLIB5='CICSTS13.CICS.SDFHCOB',
// COPYLIB6='CICSTS13.CICS.SDFHCOB',
// COPYLIB7='CICSTS13.CICS.SDFHCOB',
// PCCPARMS=, TRANSLATOR PARMS
// TRNPARMS=, TRANSLATOR PARMS
// CBLPARMS=, COBOL PARAMETERS
// LKDPARMS= LINKEDIT PARMS
//******************************************************************
//*-----------------------------------------------------------------
//* PRE-PROCESSOR FOR PRO*COBOL
//*-----------------------------------------------------------------
//PCCCOB EXEC PGM=PROCOB,
// PARM='++/DD/SYSPARM HOST=COBOL DBMS=V8 DEFINE=CICS &PCCPARMS'
//STEPLIB DD DSN=&ORAPRFX..O81740.CMDLOAD,DISP=SHR
// DD DSN=&ORAPRFX..CMDLOAD,DISP=SHR
//ORA£LIB DD DSN=ORACLE.V8R1M7.O81740.MESG,DISP=SHR
// DD DSN=ORACLE.V8R1M7.MESG,DISP=SHR
//PROCFG DD DUMMY
//SYSUDUMP DD SYSOUT=*
//SYSOUT DD SYSOUT=*,DCB=RECFM=VBA
//SYSGORP DD SYSOUT=*,DCB=RECFM=VBA
//SYSERR DD SYSOUT=*,DCB=BUFNO=1
//SYSLIB DD DSN=ORACLE.V8R1M7.O81740.H,DISP=SHR
// DD DSN=ORACLE.V8R1M7.H,DISP=SHR
// DD DSN=&COPYLIB1,DISP=SHR
// DD DSN=&COPYLIB2,DISP=SHR
// DD DSN=&COPYLIB3,DISP=SHR
// DD DSN=&COPYLIB4,DISP=SHR
// DD DSN=&COPYLIB5,DISP=SHR
// DD DSN=&COPYLIB6,DISP=SHR
//SYSPUNCH DD DSN=&&TEMP,UNIT=SYSDA,
// DISP=(MOD,PASS),SPACE=(TRK,(15,15)),
// DCB=(BLKSIZE=&SYSLBLK,LRECL=80)
//SYSUT1 DD UNIT=VIO,SPACE=(CYL,(1,1))
//SYSUT2 DD UNIT=VIO,SPACE=(CYL,(1,1))
//SYSPARM DD DSN=&PCCLIB,DISP=SHR
// DD DDNAME=CONNSTR
//SYSIN DD DSN=&SRCLIB(&MEMBER),DISP=SHR
//CONNSTR DD DUMMY
//*-------------------------------------------------------
//* PRE-PROCESSOR FOR CICS PROGRAMS
//*-------------------------------------------------------
// IF (PCCCOB.RUN EQ TRUE & PCCCOB.RC LE 4) THEN
//TRN EXEC PGM=DFHECP1£,REGION=4M,
// PARM=('COBOL2,&AQ,&TRNPARMS.')
//STEPLIB DD DSN=&CICPRFX..SDFHLOAD,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSPUNCH DD DSN=&&SYSCIN,
// DISP=(MOD,PASS),UNIT=VIO,
// DCB=BLKSIZE=400,
// SPACE=(1000,(500,500))
//SYSIN DD DSN=&&TEMP,DISP=(OLD,DELETE,DELETE)
// ENDIF
//*--------------------------------------------------------------------
//* COBOL/370 COMPILER
//*--------------------------------------------------------------------
// IF (TRN.RUN EQ TRUE & TRN.RC LE 4) THEN
//COBOL EXEC PGM=IGYCRCTL,REGION=4M,
// PARM=('NODYNAM,LIB,OBJECT,RENT,XREF(FULL),LIST,&AQ,MAP,&CBLPARMS.')
//*PARM=('&AQ,LIB,S,SZ(1024K),RENT,DYN,MAP,XREF(SHORT),NODU,&CBLPARMS')
//STEPLIB DD DSN=&IGYPRFX..SIGYCOMP,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSTERM DD SYSOUT=*
//SYSIN DD DSN=&&SYSCIN,DISP=(OLD,DELETE,DELETE)
//SYSLIN DD DSNAME=&&LOADSET,UNIT=SYSDA,
// DISP=(MOD,PASS),SPACE=(TRK,(10,5)),
// DCB=(BLKSIZE=&SYSLBLK)
//SYSLIB DD DSN=&CEEPRFX..SCEELKED,DISP=SHR
// DD DSN=&COPYLIB1,DISP=SHR
// DD DSN=&COPYLIB2,DISP=SHR
// DD DSN=&COPYLIB3,DISP=SHR
// DD DSN=&COPYLIB4,DISP=SHR
// DD DSN=&COPYLIB5,DISP=SHR
// DD DSN=&COPYLIB6,DISP=SHR
// DD DSN=&COPYLIB7,DISP=SHR
//SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT2 DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT3 DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT4 DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT5 DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT6 DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT7 DD UNIT=SYSDA,SPACE=(CYL,(1,1))
// ENDIF
//*-------------------------------------------------
//* LINKAGE EDITOR
//*-------------------------------------------------
// IF (COBOL.RUN EQ TRUE & COBOL.RC LE 4) THEN
//LKED EXEC PGM=IEWL,REGION=4M,
// PARM='LET,RENT,LIST,REUS,XREF,AMODE=31,RMODE=ANY,&LKDPARMS.'
//SYSLIB DD DSN=&CEEPRFX..SCEECICS,DISP=SHR
// DD DSN=&CEEPRFX..SCEELKED,DISP=SHR
// DD DSN=&CICPRFX..SDFHLOAD,DISP=SHR
// DD DSN=&ORAPRFX..O81740.SQLLIB,DISP=SHR
// DD DSN=&ORAPRFX..SQLLIB,DISP=SHR
// DD DSN=&ORAPRFX..O81740.CMDLOAD,DISP=SHR
// DD DSN=&ORAPRFX..CMDLOAD,DISP=SHR
// DD DSN=CFSYSP.OLPD.CEEUOPT,DISP=SHR
// DD DSN=&LOADLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSLIN DD DSN=&&LOADSET,DISP=(OLD,DELETE)
// DD DDNAME=SYSLKED
// DD DSN=NMCICS.INCLUDE.&ORADBC,DISP=SHR
//SYSLMOD DD DSN=&LOADLIB(&MEMBER),DISP=SHR
//SYSUT1 DD UNIT=VIO,SPACE=(TRK,(10,10))
//SYSLKED DD DUMMY
// ENDIF
============THE PARMS======
NMCICS.INCLUDE.ORXD is...
INCLUDE SYSLIB(SQLCICXD)
CFSYSP.OLPD.TNSNAMES(ORXD) is....
AIX1 =(DESCRIPTION=
(ADDRESS=(SSN=NET8)(PROTOCOL=TCP)(HOST=10.9.0.63)(PORT=1499) )
(CONNECT_DATA=(SID=ORXD)))
=====CFSYSP.OLPD.PCCPARMC========
INA=/DD/SYSIN
LNA=/DD/SYSGORP
ONA=/DD/SYSPUNCH
LITDELIM=APOST
SQLCHECK=FULL
=================================
sorry its so long but its panel generated and allows a lot of concatenations.

: Would anyone care to share their JCL for precompiling the OSAMPLE program that comes with access manager for CICS? We are trying to write a CICS transaction that will use SQL and net8 to retrieve information from a remote Oracle database. Our main problem is lack of a working system to look at, and insufficient documentation. Thanks in advance for any assistance...
Re: COBOL precompile jcl [message #113906 is a reply to message #113905] Sat, 03 May 2003 19:27 Go to previous messageGo to next message
Patrick Pouncey
Messages: 2
Registered: May 2003
Junior Member
Thanks, Paul. Seems we were missing the SQLCICS stub in the link step.
Pat.
Re: COBOL precompile jcl [message #113907 is a reply to message #113905] Sat, 03 May 2003 19:28 Go to previous message
Gia McNerney
Messages: 7
Registered: March 2001
Junior Member
: Here's one that works - its a bit verbose as its split into proc and parms etc
: //CFCICS1X JOB CFCICS1,
: // 'OLXDSQLC/OSAMPLE2',
: // CLASS=C,NOTIFY=CFCICS1,REGION=6M,
: // MSGCLASS=X,MSGLEVEL=(1,1)
: // JCLLIB ORDER=(CFSYSP.XYZ.PROCLIB)
: //* THIS JOB EXECUTES A CICS PRO*COBOL COMPILE
: //PROCOBOL EXEC OLPDSQLC,CBLPARMS='',
: // COPYLIB1=NMDEVT.CFCICS1.COPY.COPYLIB,
: // COPYLIB2=NMTEST04.INT.COPY.COPYLIB,
: // COPYLIB3=NMTEST04.TACOPY.COPY.COPYLIB,
: // COPYLIB4=NMTEST04.DMCOPY.COPY.COPYLIB,
: // COPYLIB5=NMSYST01.SYS.COPY.COPYLIB,
: // COPYLIB6=GLPROD.XYZ.SRCLIB,
: // ORADBC=ORXD,
: // SRCLIB=NMDEVT.CFCICS1.ONLINE.SRCLIB,
: // LOADLIB=NMDEVT04.UNIT.ONLINE.LOADLIB,
: // MEMBER=OSAMPLE2
: //PCCCOB.CONNSTR DD *
: USER=ABC1/XYZ@AIX1
: //PCCCOB.TNSNAMES DD DISP=SHR,DSN=CFSYSP.OLPD.TNSNAMES(ORXD)
: //PCCCOB.ORA@ORXD DD DUMMY
: //PCCCOB.TNS@NET8 DD DUMMY
: //LKED.SYSLKED DD *
: INCLUDE SYSLIB(DFHECI)
: ============THE PROC=======================
: //OLPDSQLC PROC IGYPRFX='IGY.V2R1M0',
: // AQ='APOST',
: // SYSLBLK=400,
: // CEEPRFX='CEE',
: // ORAPRFX='ORACLE.V8R1M7',
: // ORADBC='ORA?',
: // SRCLIB=,
: // LOADLIB=,
: // PCCLIB='CFSYSP.OLPD.PCCPARMC',
: // MEMBER=,
: // CICPRFX='CICSTS13.CICS',
: // COPYLIB1='CICSTS13.CICS.SDFHCOB',
: // COPYLIB2='CICSTS13.CICS.SDFHCOB',
: // COPYLIB3='CICSTS13.CICS.SDFHCOB',
: // COPYLIB4='CICSTS13.CICS.SDFHCOB',
: // COPYLIB5='CICSTS13.CICS.SDFHCOB',
: // COPYLIB6='CICSTS13.CICS.SDFHCOB',
: // COPYLIB7='CICSTS13.CICS.SDFHCOB',
: // PCCPARMS=, TRANSLATOR PARMS
: // TRNPARMS=, TRANSLATOR PARMS
: // CBLPARMS=, COBOL PARAMETERS
: // LKDPARMS= LINKEDIT PARMS
: //******************************************************************
: //*-----------------------------------------------------------------
: //* PRE-PROCESSOR FOR PRO*COBOL
: //*-----------------------------------------------------------------
: //PCCCOB EXEC PGM=PROCOB,
: // PARM='++/DD/SYSPARM HOST=COBOL DBMS=V8 DEFINE=CICS &PCCPARMS'
: //STEPLIB DD DSN=&ORAPRFX..O81740.CMDLOAD,DISP=SHR
: // DD DSN=&ORAPRFX..CMDLOAD,DISP=SHR
: //ORA£LIB DD DSN=ORACLE.V8R1M7.O81740.MESG,DISP=SHR
: // DD DSN=ORACLE.V8R1M7.MESG,DISP=SHR
: //PROCFG DD DUMMY
: //SYSUDUMP DD SYSOUT=*
: //SYSOUT DD SYSOUT=*,DCB=RECFM=VBA
: //SYSGORP DD SYSOUT=*,DCB=RECFM=VBA
: //SYSERR DD SYSOUT=*,DCB=BUFNO=1
: //SYSLIB DD DSN=ORACLE.V8R1M7.O81740.H,DISP=SHR
: // DD DSN=ORACLE.V8R1M7.H,DISP=SHR
: // DD DSN=İLIB1,DISP=SHR
: // DD DSN=İLIB2,DISP=SHR
: // DD DSN=İLIB3,DISP=SHR
: // DD DSN=İLIB4,DISP=SHR
: // DD DSN=İLIB5,DISP=SHR
: // DD DSN=İLIB6,DISP=SHR
: //SYSPUNCH DD DSN=&&TEMP,UNIT=SYSDA,
: // DISP=(MOD,PASS),SPACE=(TRK,(15,15)),
: // DCB=(BLKSIZE=&SYSLBLK,LRECL=80)
: //SYSUT1 DD UNIT=VIO,SPACE=(CYL,(1,1))
: //SYSUT2 DD UNIT=VIO,SPACE=(CYL,(1,1))
: //SYSPARM DD DSN=&PCCLIB,DISP=SHR
: // DD DDNAME=CONNSTR
: //SYSIN DD DSN=&SRCLIB(&MEMBER),DISP=SHR
: //CONNSTR DD DUMMY
: //*-------------------------------------------------------
: //* PRE-PROCESSOR FOR CICS PROGRAMS
: //*-------------------------------------------------------
: // IF (PCCCOB.RUN EQ TRUE & PCCCOB.RC LE 4) THEN
: //TRN EXEC PGM=DFHECP1£,REGION=4M,
: // PARM=('COBOL2,&AQ,&TRNPARMS.')
: //STEPLIB DD DSN=&CICPRFX..SDFHLOAD,DISP=SHR
: //SYSPRINT DD SYSOUT=*
: //SYSPUNCH DD DSN=&&SYSCIN,
: // DISP=(MOD,PASS),UNIT=VIO,
: // DCB=BLKSIZE=400,
: // SPACE=(1000,(500,500))
: //SYSIN DD DSN=&&TEMP,DISP=(OLD,DELETE,DELETE)
: // ENDIF
: //*--------------------------------------------------------------------
: //* COBOL/370 COMPILER
: //*--------------------------------------------------------------------
: // IF (TRN.RUN EQ TRUE & TRN.RC LE 4) THEN
: //COBOL EXEC PGM=IGYCRCTL,REGION=4M,
: // PARM=('NODYNAM,LIB,OBJECT,RENT,XREF(FULL),LIST,&AQ,MAP,&CBLPARMS.')
: //*PARM=('&AQ,LIB,S,SZ(1024K),RENT,DYN,MAP,XREF(SHORT),NODU,&CBLPARMS')
: //STEPLIB DD DSN=&IGYPRFX..SIGYCOMP,DISP=SHR
: //SYSPRINT DD SYSOUT=*
: //SYSTERM DD SYSOUT=*
: //SYSIN DD DSN=&&SYSCIN,DISP=(OLD,DELETE,DELETE)
: //SYSLIN DD DSNAME=&&LOADSET,UNIT=SYSDA,
: // DISP=(MOD,PASS),SPACE=(TRK,(10,5)),
: // DCB=(BLKSIZE=&SYSLBLK)
: //SYSLIB DD DSN=&CEEPRFX..SCEELKED,DISP=SHR
: // DD DSN=İLIB1,DISP=SHR
: // DD DSN=İLIB2,DISP=SHR
: // DD DSN=İLIB3,DISP=SHR
: // DD DSN=İLIB4,DISP=SHR
: // DD DSN=İLIB5,DISP=SHR
: // DD DSN=İLIB6,DISP=SHR
: // DD DSN=İLIB7,DISP=SHR
: //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(1,1))
: //SYSUT2 DD UNIT=SYSDA,SPACE=(CYL,(1,1))
: //SYSUT3 DD UNIT=SYSDA,SPACE=(CYL,(1,1))
: //SYSUT4 DD UNIT=SYSDA,SPACE=(CYL,(1,1))
: //SYSUT5 DD UNIT=SYSDA,SPACE=(CYL,(1,1))
: //SYSUT6 DD UNIT=SYSDA,SPACE=(CYL,(1,1))
: //SYSUT7 DD UNIT=SYSDA,SPACE=(CYL,(1,1))
: // ENDIF
: //*-------------------------------------------------
: //* LINKAGE EDITOR
: //*-------------------------------------------------
: // IF (COBOL.RUN EQ TRUE & COBOL.RC LE 4) THEN
: //LKED EXEC PGM=IEWL,REGION=4M,
: // PARM='LET,RENT,LIST,REUS,XREF,AMODE=31,RMODE=ANY,&LKDPARMS.'
: //SYSLIB DD DSN=&CEEPRFX..SCEECICS,DISP=SHR
: // DD DSN=&CEEPRFX..SCEELKED,DISP=SHR
: // DD DSN=&CICPRFX..SDFHLOAD,DISP=SHR
: // DD DSN=&ORAPRFX..O81740.SQLLIB,DISP=SHR
: // DD DSN=&ORAPRFX..SQLLIB,DISP=SHR
: // DD DSN=&ORAPRFX..O81740.CMDLOAD,DISP=SHR
: // DD DSN=&ORAPRFX..CMDLOAD,DISP=SHR
: // DD DSN=CFSYSP.OLPD.CEEUOPT,DISP=SHR
: // DD DSN=&LOADLIB,DISP=SHR
: //SYSPRINT DD SYSOUT=*
: //SYSLIN DD DSN=&&LOADSET,DISP=(OLD,DELETE)
: // DD DDNAME=SYSLKED
: // DD DSN=NMCICS.INCLUDE.&ORADBC,DISP=SHR
: //SYSLMOD DD DSN=&LOADLIB(&MEMBER),DISP=SHR
: //SYSUT1 DD UNIT=VIO,SPACE=(TRK,(10,10))
: //SYSLKED DD DUMMY
: // ENDIF
: ============THE PARMS======
: NMCICS.INCLUDE.ORXD is...
: INCLUDE SYSLIB(SQLCICXD)
: CFSYSP.OLPD.TNSNAMES(ORXD) is....
: AIX1 =(DESCRIPTION=
: (ADDRESS=(SSN=NET8)(PROTOCOL=TCP)(HOST=10.9.0.63)(PORT=1499) )
: (CONNECT_DATA=(SID=ORXD)))
: =====CFSYSP.OLPD.PCCPARMC========
: INA=/DD/SYSIN
: LNA=/DD/SYSGORP
: ONA=/DD/SYSPUNCH
: LITDELIM=APOST
: SQLCHECK=FULL
: =================================
: sorry its so long but its panel generated and allows a lot of concatenations.

: : Would anyone care to share their JCL for precompiling the OSAMPLE program that comes with access manager for CICS? We are trying to write a CICS transaction that will use SQL and net8 to retrieve information from a remote Oracle database. Our main problem is lack of a working system to look at, and insufficient documentation. Thanks in advance for any assistance...

Hi Paul,

What I'm about to explain is for the OSDI architecture of Oracle and is with version 817.2 and above.

The way to access a remote database is through the cinames step when compiling the thread table. In other words, when you do the precompile of the COBOL program it points to the CICS stub in the link edit step. This CICS stub points to the Oracle Access Manager thread table. The Oracle Access Manager Thread table points to the Oracle database. We use the same stub with same name and insides. We use the same thread table name, but the insides are different depending on the CICS region/Oracle database.

Here is how to code the infile that is used within the CINAMES step, thereby telling the thread table where to find the Oracle database:

OU01=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=MVSBULC)
(PORT=2597)
(SSN=TNT1))
(CONNECT_DATA=
(SID=OU01)))

The SSN= should be your local Oracle NET service name (this is how it gets out locally and finds the host and port for the remote Oracle database). Restrictions on this entry are: you can only have one entry per member, the PDS must be FB with record length of 80 and no spaces within the parameters. You might be able to code this instream, but haven't yet tried that.

Here is the CINAMES step:

//CIN EXEC PGM=CINAMES,REGION=4000K
//STEPLIB DD DSN=DDBFPP.ORACLE.UPGRADE.CMDLOAD,DISP=SHR
//SYSIN DD DUMMY
//SYSOUT DD SYSOUT=*
//SYSERR DD SYSOUT=*
//INFILE DD DISP=SHR,DSN=DDBFPP.ORACLE.CICS.PARMLIB(OU01817)
//OUTFILE DD DSN=&&TEMPPDS(CINAMES),
// UNIT=SYSDA,DISP=(,PASS),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=400),
// SPACE=(400,(100,100,5))

Hope this helps.

Gia
Previous Topic: OTG/EDASQL access
Next Topic: Cost Based Optimiser
Goto Forum:
  


Current Time: Thu Mar 28 17:54:36 CDT 2024