|
|
This appendix includes sample JCL. It includes these sections:
//RPCIBMC JOB //* //* SAMPLE JCL TO COMPILE, LINK, AND EXECUTE A NONREENTRANT //* USER PROGRAM USING THE TCP/API C SOCKET LIBRARY, THE //* TCP/API RPC/XDR LIBRARY, AND THE IBM C/370 C COMPILER. //* //* EDIT THE JOB JCL STATEMENT, VERIFY THE DATA SET NAME(S) //* OF THE USER'S DATA SETS, AND VERIFY THAT THE DATA SET //* NAMES REFERENCED BELOW MATCH THE NAMES THAT YOU SELECTED //* FOR THE TCP/IP TARGET DATA SETS (DSN'S TO BE VERIFIED //* ARE MARKED BELOW WITH "<=== VERIFY ..."). THIS JOB ASSUMES //* THAT THE STANDARD IBM C/370 EDCCLG JCL PROCEDURE IS //* AVAILABLE IN YOUR INSTALLATION'S PROCLIB(S). //* //CLGNRENT EXEC EDCCLG, // INFILE='USER.C(CPROG)', <=== VERIFY DSNAME // PARM='NORENT,DEF(IBMC)', // GPARM='PROGRAM PARAMETERS' <=== VERIFY PARAMETERS //* //* INCLUDE THE TCP/API SOCKET INCLUDE (.H) DATA SET IN THE //* COMPILER SYSLIB CONCATENATION. BOTH THE SOCKET AND RPC/XDR //* INCLUDE FILES ARE FOUND IN THE SAME SYSLIB DATA SET. //* //COMPILE.SYSLIB DD DISP=SHR,DSN=TRGINDX.H <=== VERIFY DSNAME // DD DISP=SHR,DSN=&VSCCHD&CVER&EDCHDRS //* INCLUDE THE TCP/API SOCKET SUBROUTINE LIBRARY DATA SET IN //* THE LINKAGE EDITOR SYSLIB CONCATENATION. BOTH THE SOCKET //* AND RPC/XDR LOAD MODULES ARE INCLUDED IN THE SAME SYSLIB //* DATA SET. //* //LKED.SYSLIB DD // DD // DD DISP=SHR,DSN=TRGINDX.CILIB <=== VERIFY DSNAME // //LKED.SYSIN DD DUMMY,DCB=(LRECL=80,RECFM=FB,BLKSIZE=3120)
This JCL is for the C/370 version of the compiler.
If you are using the Ad/Cycle compiler, replace the following line (shown in bold in the JCL):
// DD DISP=SHR,DSN=&VSCCHD&CVER&EDCHDRS with this line: // DD DISP=SHR,DSN=&LNGPRFX..SEDCDHDR //RPCIBMCR JOB //* //* SAMPLE JCL TO COMPILE, LINK, AND EXECUTE A REENTRANT USER //* PROGRAM USING THE TCP/API C SOCKET LIBRARY, THE TCP/API //* RPC/XDR LIBRARY, AND THE IBM C/370 C COMPILER. //* //* EDIT THE JOB JCL STATEMENT, VERIFY THE DATA SET NAME(S) //* OF THE USER'S DATA SETS, AND VERIFY THAT THE DATA SET //* NAMES REFERENCED BELOW MATCH THE NAMES THAT YOU SELECTED //* FOR THE TCP/IP TARGET DATA SETS (DSN'S TO BE VERIFIED ARE //* MARKED BELOW WITH "<=== VERIFY ..."). THIS JOB ASSUMES THAT //* THE STANDARD IBM C/370 EDCCPLG JCL PROCEDURE IS AVAILABLE //* IN AVAILABLE IN YOUR INSTALLATION'S PROCLIB(S). //* //CLGRENT EXEC EDCCPLG, // INFILE='USER.C(CPROG)', <=== VERIFY DSNAME // CPARM='RENT,DEF(IBMC)', // GPARM='PROGRAM PARAMETERS' <=== VERIFY PARAMETERS //* //* INCLUDE THE TCP/API SOCKET INCLUDE (.H) DATA SET IN THE //* COMPILER SYSLIB CONCATENATION. BOTH THE SOCKET AND RPC/XDR //* INCLUDE FILES ARE FOUND IN THE SAME SYSLIB DATA SET. //* //COMPILE.SYSLIB DD DISP=SHR,DSN=TRGINDX.H <=== VERIFY DSNAME // DD DISP=SHR,DSN=&VSCCHD&CVER&EDCHDRS <=== VERIFY Ad/Cycle name //* //* INCLUDE THE TCP/API SOCKET SUBROUTINE OBJECT LIBRARY //* DATA SET IN THE PREPROCESSOR SYSLIB CONCATENATION. //* BOTH THE SOCKET AND RPC/XDR OBJECT MODULES ARE INCLUDED //* IN THE SAME SYSLIB DATA SET. //* //PLKED.SYSLIB DD DISP=SHR, // DSN=TRGINDX.CIROBJ <=== VERIFY DSNAME //PLKED.SYSIN DD DSN=*.COMPILE.SYSLIN,DISP=(OLD,DELETE) // DD * INCLUDE SYSLIB(S0SKCF) INCLUDE SYSLIB(S0INTR) INCLUDE SYSLIB(RPCFDS) ENTRY CEESTART /* //
//RPCSASC JOB //* //* SAMPLE JCL TO COMPILE, LINK, AND EXECUTE A NONREENTRANT //* USER PROGRAM USING THE TCP/API C SOCKET LIBRARY, THE //* TCP/API C RPC/XDR LIBRARY, AND THE SAS/C COMPILER. THIS //* SAMPLE WORKS WITH SAS/C 4.50, 5.00, AND 5.01. //* //* EDIT THE JOB JCL STATEMENT, VERIFY THE DATA SET NAME(S) //* OF THE USER'S DATA SETS, AND VERIFY THAT THE DATA SET //* NAMES REFERENCED BELOW MATCH THE NAMES THAT YOU SELECTED //* FOR THE TCP/IP TARGET DATA SETS (DSN'S TO BE VERIFIED //* ARE MARKED BELOW WITH "<=== VERIFY ..."). THIS JOB ASSUMES //* THAT THE STANDARD SAS SAS/C LC370CLG JCL PROCEDURE IS //* AVAILABLE IN YOUR INSTALLATION'S PROCLIB(S). //* //CLNORENT EXEC LC370CLG, // PARM.C='NORENT,DEF(SASC)', // PARM.GO='PROGRAM PARAMETERS' <=== VERIFY PARAMETERS //* //* TCP/IP INCLUDE FILE DATA SET MUST PRECEDE SAS/C //* DATA SET. BOTH THE SOCKET AND RPC/XDR INCLUDE FILES //* ARE IN THE SAME DATA SET. //* //C.SYSLIB DD DISP=SHR,DSN=TRGINDX.H <=== VERIFY DSNAME // DD DISP=SHR,DSN=&MACLIB //C.SYSIN DD DISP=SHR, // DSN=USER.C(CPROG) <=== VERIFY DSNAME //* //* TCP/IP OBJECT SYSLIB DATA SET MUST PRECEDE SAS/C //* DATA SETS. BOTH THE SOCKET AND RPC/XDR LOAD //* MODULES ARE IN THE SAME SYSLIB DATA SET. //* //LKED.SYSLIB DD DISP=SHR, // DSN=TRGINDX.CSLIB <=== VERIFY DSNAME // DD DISP=SHR,DSN=SASC.&ENV.LIB <=== VERIFY DSNAME // DD DISP=SHR,DSN=&SYSLIB // DD DISP=SHR,DSN=&CALLLIB //LKED.SYSIN DD DUMMY,DCB=(LRECL=80,RECFM=FB,BLKSIZE=3120)
//RPCSASCR JOB //* //* SAMPLE JCL TO COMPILE, LINK, AND EXECUTE A REENTRANT C //* PROGRAM USING THE TCP/API C SOCKET LIBRARY, THE TCP/IP //* C RPC/XDR LIBRARY, AND THE SAS/C C COMPILER. THIS SAMPLE //* WORKS WITH SAS/C 4.50, 5.00, AND 5.01. //* //* EDIT THE JOB JCL STATEMENT, VERIFY THE DATA SET NAME(S) //* OF THE USER'S DATA SETS, AND VERIFY THAT THE DATA SET //* NAMES REFERENCED BELOW MATCH THE NAMES THAT YOU SELECTED //* FOR THE TCP/IP TARGET DATA SETS (DSN'S TO BE VERIFIED //* ARE MARKED BELOW WITH "<=== VERIFY ..."). THIS JOB ASSUMES //* THAT THE STANDARD SAS SAS/C LC370C AND LC370LRG JCL //* PROCEDURES ARE AVAILABLE IN YOUR INSTALLATION'S PROCLIB(S). //* STEP 1: COMPILE USER PROGRAM REENTRANTLY. //* //CCRENT EXEC LC370C, // PARM.C='RENT,DEF(SASC)' //* //* TCP/IP INCLUDE FILE DATA SET MUST PRECEDE SAS/C //* DATA SET. BOTH THE SOCKET AND RPC/XDR INCLUDE FILES //* ARE IN THE SAME DATA SET. //* //C.SYSLIB DD DISP=SHR,DSN=TRGINDX.H <=== VERIFY DSNAME // DD DISP=SHR,DSN=&MACLIB //C.SYSIN DD DISP=SHR, // DSN=USER.C(CPROG) <=== VERIFY DSNAME //* //* STEP 2: LINK USER PROGRAM USING SAS/C CLINK //* PREPROCESSOR AND THEN EXECUTE. //* //LKRENT EXEC LC370LRG,PARM.LKED='LIST,MAP,RENT', // PARM.GO='PROGRAM PARAMETERS' <=== VERIFY PARAMETERS //* //* TCP/IP OBJECT SYSLIB DATA SET MUST PRECEDE SAS/C //* DATA SETS. BOTH THE SOCKET AND RPC/XDR LOAD MODULES //* ARE IN THE SAME SYSLIB DATA SET. //* //* TCP/IP OBJECT SYSLIB DATA SET MUST PRECEDE SAS/C //* DATA SETS. BOTH THE SOCKET AND RPC/XDR LOAD MODULES //* ARE IN THE SAME SYSLIB DATA SET. //* //LKED.SYSLIB DD DISP=SHR,DSN=TRGINDX.CSROBJ <=== VERIFY DSNAME // DD DDNAME=AR#&ALLRES // DD DISP=SHR,DSN=SASC.&ENV.OBJ <=== VERIFY DSNAME // DD DISP=SHR,DSN=&SYSLIB // DD DISP=SHR,DSN=&CALLLIB //LKED.SYSIN DD DISP=(OLD,DELETE),DSN=*.CCRENT.C.SYSLIN // DD * INCLUDE SYSLIB(S0SKCF) INCLUDE SYSLIB(S0INTR) INCLUDE SYSLIB(RPCFDS) ENTRY MAIN //
|
|