Previous Topic: Sample C Language JCLNext Topic: Embedding SQL Statements in Host Programs


z/OS C Language Sample JCL

Note: Use the following as a guide to prepare your JCL. The JCL statements are for example only. Lowercase letters in a statement indicate a value you must supply. Code all statements to your site and installation standards.

  //jobname    See the note above and Listing Libraries for CA Datacom Products.
  //* ------------------------------------------------------------
  //*  the following job stream illustrates the execution of the
  //*  preprocessor and compiler
  //* ------------------------------------------------------------
  //*
  //* ------------------------------------------------------------
  //*             c preprocessor
  //* ------------------------------------------------------------
  //*
  //CPRECMP  EXEC PGM=progname,PARM='PLANNAME=TESTCEE'
  //STEPLIB    See the note above and Listing Libraries for CA Datacom Products.
  //SYSUDUMP DD SYSOUT=*
  //SYSPRINT DD SYSOUT=*
  //SYSOUT   DD SYSOUT=*
  //OPTIONS  DD DATA,DCB=BLKISIZE=80,DLM=##
  LANGUAGE=C
  //* ------------------------------------------------------------
  //* place additional precompile options here
  //* ------------------------------------------------------------
  //SOURCE   DD DATA,DCB=BLKISIZE=80,DLM=##
  //* ------------------------------------------------------------
  //* place c source here
  //* ------------------------------------------------------------
  ##
  //INCLUDE  DD DSN=ca.user.include.library,DISP=SHR
  //REPORT   DD SYSOUT=*
  //SRCOUT   DD DSN=&.&SRC.,DISP=(,PASS,DELETE),UNIT=VIO,
  //            SPACE=(2000,(200,200)),
  //            DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
  //* ------------------------------------------------------------
  //*                     c comnpile
  //* ------------------------------------------------------------
  //*
  //COMPA    EXEC PROC=EDCC,
  //   CRUN='RENT',
  //   CPARM='NOMARGINS,NOSEQUENCE,LIST,SOURCE',
  //   CPARM2='LOCALE("POSIX")',
  //   CPARM3='SSCOM,LONGNAME,SHOWINC,OMVS,DLL',
  //  INFILE='&.&SRC'.,
  //  OUTFILE='ca.user.objlib(TESTCOBJ)',
  //  COND=(0,LT)
  //*
  //SYSLIB   DD  DSN=CEE.SCEEH.H,DISP=SHR
  //         DD  DSN=CEE.SCEEH.SYS.H,DISP=SHR
  //USERLIB  DD  DSN=ca.user.srclib,DISP=SHR
  //* ------------------------------------------------------------
  //*                     prelink starts here
  //* ------------------------------------------------------------
  //PRELINK   EXEC  PGM=EDCPRLK,COND=(0,LT),
  //  PARM='POSIX(OFF)/OE,MEMORY,DUP,NOER,MAP,NOUPCASE,NONCAL'
  //*
  //SYSMSGS  DD  DSN=CEE.SCEEMSGP(EDCPMSGE),DISP=SHR
  //OBJLIB   DD  DSN=ca.user.objlib,DISP=SHR
  //C8941    DD  DSN=CEE.SCEEOBJ,DISP=SHR
  //SYSOUT   DD  SYSOUT=*
  //SYSPRINT DD  *
  //SYSMOD   DD  DSN=ca.user.objlib(TESTCEE),DISP=SHR
  //SYSDEFSD DD  DUMMY
  //SYSIN    DD  *
    INCLUDE OBJLIB(TESTCOBJ)
    LIBRARY C8941
  /*
  //* ------------------------------------------------------------
  //*                             link
  //* ------------------------------------------------------------
  //LINKEDIT  EXEC  PGM=LINKEDIT,COND=(0,LT),
  //  PARM=('AMODE=31,RMODE=ANY,TERM=YES,MSGLEVEL=0,MAP,DYNAM=DLL',
  //        'CALL=YES,CASE=MIXED,REUS=RENT,EDIT=YES')
  //SYSLIB   DD  DSN=CEE.SCEELKED,DISP=SHR
  //         DD  DSN=SYS1.CSSLIB,DISP=SHR
  //SYSPRINT DD  SYSOUT=*
  //SYSTERM  DD  SYSOUT=*
  //SYSLMOD  DD  DISP=SHR,DSN=ca.user.loadlib
  //OBJLIB   DD  DSN=ca.user.objlib,DISP=SHR
  //SYSLIN   DD  *
    INCLUDE  OBJLIB(urtcee)
    INCLUDE  OBJLIB(TESTCEE)
    ENTRY    BEGIN
    NAME     TESTCEE(R)
  /*

z/VSE C Language Sample JCL

Note: Use the following as a guide to prepare your JCL. The JCL statements are for example only. Lowercase letters in a statement indicate a value you must supply. Code all statements to your site and installation standards.

* $$ JOB   .......                                        
// JOB     .......                                        
// EXEC PROC=procname                                     
// LIBDEF *,CATALOG=lib.sublib                            
// ASSGN SYSnnn,DISK,VOL=nnnnnn,SHR                       
// DLBL  OPTIONS,'optdsn',1                               
// EXTENT SYSnnn,vvvvvv,1,0,strk,ntrks                    
// DLBL  SOURCE,'Srcdsn',1                                
// EXTENT SYSnnn,vvvvvv,1,0,strk,ntrks                    
// DLBL  IJSYSPH,'pundsn',1                               
// EXTENT SYSnnn,vvvvvv,1,0,strk,ntrks                    
// DLBL  IJSYSIN,'pundsn'                                 
// EXTENT SYSIPT,vvvvvv                                   
* ASSEMBLY                                                
 ASSGN SYSPCH,DISK,VOL=vvvvvv,SHR                         
// OPTION    NOXREF,DECK,NOEDECK,LOG,NODUMP   ,CATAL      
// EXEC ASSEMBLY                                          
     *** urt assembly source ***                          
/*                                                                      
* LIBR                                                                  
 CLOSE SYSPCH,PUNCH                                                     
 ASSGN SYSIPT,DISK,VOL=vvvvvv,SHR                                       
// EXEC LIBR,SIZE=450K,PARM='MSHP;ACC S=lib.sublib;                    X
               CATALOG urtname.OBJ,REPLACE=YES'                         
 CLOSE SYSIPT,SYSRDR                                                    
* PUNCH PRECOMPILE OPTIONS AND SOURCE FILE                              
// UPSI 1                                                               
// EXEC  DITTO,SIZE=1M                                                  
$$DITTO CSQ FILEOUT=OPTIONS,CISIZE=512,BLKFACTOR=1                      
SQLMODE=DATACOM                                                         
LANG=C                                                                  
    *** Other options as appropriate                                    
/*                                                                      
$$DITTO CSQ FILEOUT=SOURCE,CISIZE=512,BLKFACTOR=1                       
    *** Source here ***                                                 
/*                                                                      
$$DITTO EOJ                                      
ON $ABEND GOTO $EOJ                              
// ASSGN   SYSnnn,DISK,VOL=vvvvvv,SHR            
// DLBL    SOURCE,'srcdsn'                       
// EXTENT  SYSnnn,vvvvvv                         
// DLBL    OPTIONS,'optdsn'                      
// EXTENT  SYSnnn,vvvvvv                         
// DLBL    REPORT,'rptdsn',1                     
// EXTENT  SYSnnn,vvvvvv,1,0,strk,ntrks          
// DLBL    SRCOUT,'srodsn',1                     
// EXTENT  SYSnnn,vvvvvv,1,0,strk,ntrks          
// DLBL    IJSYS01,'work1',1,SD                  
// EXTENT  SYS001,vvvvvv,1,0,strk,ntrks          
// DLBL    IJSYS02,'work2',1,SD                  
// EXTENT  SYS001,vvvvvv,1,0,strk,ntrks          
// DLBL    IJSYS03,'work3',1,SD                  
// EXTENT  SYS001,vvvvvv,1,0,strk,ntrks          
// DLBL    IJSYS04,'work4',1,SD                  
// EXTENT  SYS001,vvvvvv,1,0,strk,ntrks                       
* PRECOMPILER STEP                                            
// EXEC DBPLIPR,SIZE=500K                                     
/*                                                            
// ASSGN   SYSnnn,DISK,VOL=vvvvvv,SHR                         
// DLBL    SDSKIN,'rptdsn'                                    
// EXTENT  SYSnnn,vvvvvv                                      
* PRINT PRECOMPILER REPORT                                    
// EXEC  DITTO,SIZE=1M                                        
$$DITTO SFD FILEIN=SDSKIN,RECSIZE=133                         
$$DITTO EOJ                                                   
/*                                                            
* COMPILER STEP                                               
// UPSI 0                                                     
// LIBDEF *,SEARCH=(cuslib,cussub,lib.csublib,lib.lesublib)   
// DLBL    IJSYSLN,'syslink',0,SD                             
// EXTENT  SYSLNK,vvvvvv,1,0,strk,ntrks                       
// DLBL    IJSYS01,'work1',1,SD                               
// EXTENT  SYS001,vvvvvv,1,0,strk,ntrks                   
// DLBL    IJSYS02,'work2',1,SD                           
// EXTENT  SYS002,vvvvvv,1,0,strk,ntrks                   
// DLBL    IJSYS03,'work3',1,SD                           
// EXTENT  SYS003,vvvvvv,1,0,strk,ntrks                   
// DLBL    IJSYS04,'work4',1,SD                           
// EXTENT  SYS004,vvvvvv,1,0,strk,ntrks                   
// ASSGN   SYS005,DISK,VOL=vvvvvv,SHR                     
// ASSGN   SYS006,DISK,VOL=vvvvvv,SHR                     
// ASSGN   SYS007,DISK,VOL=vvvvvv,SHR                     
// DLBL    IJSYS05,'work5',1,SD                           
// EXTENT  SYS005,vvvvvv,1,0,strk,ntrks                   
// DLBL    IJSYS06,'work6',1,SD                           
// EXTENT  SYS006,vvvvvv,1,0,strk,ntrks                   
// DLBL    IJSYS07,'work7',1,SD                           
// EXTENT  SYS007,vvvvvv,1,0,strk,ntrks                   
// DLBL    SYSUT1,'CEE001'                                
// EXTENT  SYSnnn,vvvvvv                                  
// ASSGN  SYSnnn,DISK,VOL=vvvvvv,SHR                                     
// OPTION  CATAL,NODECK                                                  
// EXEC EDCCOMP,SIZE=EDCCOMP,PARM='/INFILE(DD:SYSnnn-SYSUT1),          X 
               NAME(CEE001)'                                             
/*                                                                       
* LNKEDT                                                                 
 INCLUDE urtname                                                         
 ENTRY BEGIN                                                             
// EXEC LNKEDT,PARM='AMODE=31,RMODE=ANY'                                 
/*                                                                       
/&                                                                       
* $$ EOJ