JCL examples for API mode
The following figure shows QUICKSTART sample JCL for API mode:
//* SAMPLE API MODE EXECUTION JCL USING DB2'S TSO ATTACH
//*
//DB2TSO EXEC PGM=IKJEFT01,REGION=4M,DYNAMNBR=30
//STEPLIB DD DSN=DSNT.DSNLOAD,DISP=SHR
// DD DSN=QSTART.LOADLIB,DISP=SHR
//ISPMLIB DD DSN=SYS1.V2R3M0.ISPMLIB,DISP=SHR
//ISPTLIB DD DSN=SYS1.V2R3M0.ISPTLIB,DISP=SHR
//ISPPROF DD UNIT=SYSDA,SPACE=(TRK,(9,1,4)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3120)
//SYSPROC DD DSN=QMF240.DSQCLSTE,DISP=SHR
//SYSEXEC DD DSN=QMF240.DSQEXECE,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//EDT DD DSN=&EDIT,UNIT=SYSDA,SPACE=(1688,(40,12))
//UTL DD DSN=&SYSUT1,UNIT=SYSDA,SPACE=(1688,(40,12))
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(DSN)
RUN PROGRAM(DB2DEMO) PLAN(QSTART) LIB('QSTART.LOADLIB')
END
//INFILEA DD DSN=my.input.file,DISP=SHR
//OUTFILED DD DSN=my.output.file,DISP=(,CATLG),UNIT=SYSDA,
// SPACE=(CYL,(10,5)),DCB=my.input.file
//QSTART DD DSN=hlq.anyname.jobname,DISP=(MOD,DELETE,DELETE),
// SPACE=(TRK,0),UNIT=SYSDA
//*
//* SAMPLE COMPILE/LINK/BIND USING BATCHCAF.
//* THE BIND USES A CALLED SUBROUTINE FOR CKPTRTN AND
//* THE QSSTATS STATISTICS FUNCTION IS INSTALLED.
//*
//J10 EXEC COBCL,MBR=myprog
//COB.SYSLIN DD DSN=&&OBJLIB,DISP=(,PASS),UNIT=SYSDA,
// SPACE=(80,(500,100))
//LKED.SYSLIN DD *
INCLUDE QSTART(BATCHCAF)
INCLUDE OBJLIB
ENTRY myprog
NAME myprog(R)
//LKED.QSTART DD DSN=QSTART.LOADLIB,DISP=SHR
//LKED.OBJLIB DD DSN=&&OBJLIB,DISP=OLD
//BIND EXEC PGM=IKJEFT01,REGION=4M,DYNAMBR=20,COND=(4,LT)
//STEPLIB DD DSN=DSNT.DSNLOAD,DISP=SHR
//DBRMLIB DD DSN=your.dbrm.library,DISP=SHR
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(DSN)
BIND PLAN(myprog) MEMBER(myprog,CKPTRTN,QSSTATS) ACTION(REPLACE) +
RETAIN VALIDATE(BIND) ISOLATION(CS) ACQUIRE(USE) RELEASE(COMMIT)
//*
//* SAMPLE API MODE EXECUTION JCL USING BATCHCAF, QUICKSTART’s DB2 CALL ATTACH
FACILITY
//*
//DB2CALL EXEC PGM=DB2DEMO,REGION=4M
//STEPLIB DD DSN=DSNT.DSNLOAD,DISP=SHR
// DD DSN=QSTART.LOADLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//INFILEA DD DSN=my.input.file,DISP=SHR
//OUTFILED DD DSN=my.output.file,DISP=(,CATLG),UNIT=SYSDA,
// SPACE=(CYL,(10,5)),DCB=my.input.file
//QSTART DD DSN=hlq.anyname.jobname,DISP=(MOD,DELETE,DELETE),
// SPACE=(TRK,0),UNIT=SYSDA
//DSNPARMS DD DSN=hlq.DB2name.Planname.jobname,DISP=(MOD,DELETE,DELETE),
// SPACE=(TRK,0),UNIT=SYSDA
//*
//DB2TSO EXEC PGM=IKJEFT01,REGION=4M,DYNAMNBR=30
//STEPLIB DD DSN=DSNT.DSNLOAD,DISP=SHR
// DD DSN=QSTART.LOADLIB,DISP=SHR
//ISPMLIB DD DSN=SYS1.V2R3M0.ISPMLIB,DISP=SHR
//ISPTLIB DD DSN=SYS1.V2R3M0.ISPTLIB,DISP=SHR
//ISPPROF DD UNIT=SYSDA,SPACE=(TRK,(9,1,4)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3120)
//SYSPROC DD DSN=QMF240.DSQCLSTE,DISP=SHR
//SYSEXEC DD DSN=QMF240.DSQEXECE,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//EDT DD DSN=&EDIT,UNIT=SYSDA,SPACE=(1688,(40,12))
//UTL DD DSN=&SYSUT1,UNIT=SYSDA,SPACE=(1688,(40,12))
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(DSN)
RUN PROGRAM(DB2DEMO) PLAN(QSTART) LIB('QSTART.LOADLIB')
END
//INFILEA DD DSN=my.input.file,DISP=SHR
//OUTFILED DD DSN=my.output.file,DISP=(,CATLG),UNIT=SYSDA,
// SPACE=(CYL,(10,5)),DCB=my.input.file
//QSTART DD DSN=hlq.anyname.jobname,DISP=(MOD,DELETE,DELETE),
// SPACE=(TRK,0),UNIT=SYSDA
//*
//* SAMPLE COMPILE/LINK/BIND USING BATCHCAF.
//* THE BIND USES A CALLED SUBROUTINE FOR CKPTRTN AND
//* THE QSSTATS STATISTICS FUNCTION IS INSTALLED.
//*
//J10 EXEC COBCL,MBR=myprog
//COB.SYSLIN DD DSN=&&OBJLIB,DISP=(,PASS),UNIT=SYSDA,
// SPACE=(80,(500,100))
//LKED.SYSLIN DD *
INCLUDE QSTART(BATCHCAF)
INCLUDE OBJLIB
ENTRY myprog
NAME myprog(R)
//LKED.QSTART DD DSN=QSTART.LOADLIB,DISP=SHR
//LKED.OBJLIB DD DSN=&&OBJLIB,DISP=OLD
//BIND EXEC PGM=IKJEFT01,REGION=4M,DYNAMBR=20,COND=(4,LT)
//STEPLIB DD DSN=DSNT.DSNLOAD,DISP=SHR
//DBRMLIB DD DSN=your.dbrm.library,DISP=SHR
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(DSN)
BIND PLAN(myprog) MEMBER(myprog,CKPTRTN,QSSTATS) ACTION(REPLACE) +
RETAIN VALIDATE(BIND) ISOLATION(CS) ACQUIRE(USE) RELEASE(COMMIT)
//*
//* SAMPLE API MODE EXECUTION JCL USING BATCHCAF, QUICKSTART’s DB2 CALL ATTACH
FACILITY
//*
//DB2CALL EXEC PGM=DB2DEMO,REGION=4M
//STEPLIB DD DSN=DSNT.DSNLOAD,DISP=SHR
// DD DSN=QSTART.LOADLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//INFILEA DD DSN=my.input.file,DISP=SHR
//OUTFILED DD DSN=my.output.file,DISP=(,CATLG),UNIT=SYSDA,
// SPACE=(CYL,(10,5)),DCB=my.input.file
//QSTART DD DSN=hlq.anyname.jobname,DISP=(MOD,DELETE,DELETE),
// SPACE=(TRK,0),UNIT=SYSDA
//DSNPARMS DD DSN=hlq.DB2name.Planname.jobname,DISP=(MOD,DELETE,DELETE),
// SPACE=(TRK,0),UNIT=SYSDA
Related topic
Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*