DSNTEJ65

This JCL does the following.

//*********************************************************************
//*  Name = DSNTEJ65
//*
//*  Descriptive Name =
//*    DB2 Sample Application
//*    Phase 6
//*    - Sample C Caller for DB2 SQL Procedures Processor (DSNTPSMP)
//*    - Sample SQL Procedure for DSNTPSMP to prepare
//*    - Sample C Caller for SQL Procedure prepared by DSNTPSMP
//*
//*
//*    LICENSED MATERIALS - PROPERTY OF IBM
//*    5650-DB2
//*    (C) COPYRIGHT 1982, 2016 IBM CORP.  ALL RIGHTS RESERVED.
//*
//*    STATUS = VERSION 12
//*
//*  Function =
//*    This JCL does the following:
//*    (1) Prepares and binds DSN8ED4, a sample caller for DSNTPSMP,
//*        the DB2 Stored Procedures Processor.
//*    (2) Invokes DSN8ED4 to prequalify that the server has DSNTPSMP
//*        at the proper interface level supported by the this client
//*    (3) Invokes DSN8ED4 to pass a sample SQL Procedure, DSN8.DSN8ES2,
//*        to DSNTPSMP for preparation
//*    (4) Prepares, binds, and executes DSN8ED5, a sample caller for
//*        DSN8.DSN8ES2
//*
//*  Pseudocode =
//*    PH065S01 Step   Prepare DSN8ED4 (sample caller of DSNTPSMP)
//*    PH065S02 Step   Bind DSN8ED4
//*    PH065S03 Step   Call DSN8ED4 to request DSNTPSMP QUERYLEVEL
//*    PH065S04 Step   Call DSN8ED4 to pass DSN8.DSN8ES2 to DSNTPSMP
//*    PH065S05 Step   Prepare DSN8ED5 (sample caller of DSN8.DSN8ES2)
//*    PH065S06 Step   Bind DSN8ED5
//*    PH065S07 Step   Call DSN8ED5 to call DSN8.DSN8ES2
//*
//*  Dependencies =
//*    (1) Sample program requires DSNTPSMP (the DB2 SQL Procedures
//*        Processor)
//*
//*  Notes =
//*
//*  Change Activity =
//*    10/16/2013 Don't use prelinker by default         PI13612 DM1812
//*    08/18/2014 Single-phase migration            s21938_inst1 s21938
//*
//*********************************************************************
//JOBLIB   DD  DISP=SHR,DSN=DSN!!0.SDSNEXIT
//         DD  DISP=SHR,DSN=DSN!!0.SDSNLOAD
//         DD  DISP=SHR,DSN=CEE.V!R!M!.SCEERUN
//         DD  DISP=SHR,DSN=DSN!!0.RUNLIB.LOAD
//*
//*********************************************************************
//*  Step 1:  Prepare DSN8ED4, caller for DSNTPSMP
//*********************************************************************
//PH065S01 EXEC DSNHC,MEM=DSN8ED4,
//         PARM.PC=('HOST(C),CCSID(1047),MARGINS(1,72),STDSQL(NO)',
//             SOURCE,XREF),
//         PARM.C='SOURCE LIST MAR(1,72) LO RENT OPTFILE(DD:CCOPTS)',
//         PARM.LKED='AMODE=31,RMODE=ANY,MAP,NORENT,UPCASE'
//PC.DBRMLIB   DD DSN=DSN!!0.DBRMLIB.DATA(DSN8ED4),
//             DISP=SHR
//PC.SYSLIB    DD DSN=DSN!!0.SRCLIB.DATA,
//             DISP=SHR
//PC.SYSIN     DD DSN=DSN!!0.SDSNSAMP(DSN8ED4),
//             DISP=SHR
//LKED.SYSLMOD DD DSN=DSN!!0.RUNLIB.LOAD(DSN8ED4),
//             DISP=SHR
//LKED.SYSIN   DD *
  INCLUDE SYSLIB(DSNELI)
  INCLUDE SYSLIB(DSNTIAR)
//*
//*********************************************************************
//*  Step 2:  Bind DSN8ED4's PLAN
//*********************************************************************
//PH065S02 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)
//DBRMLIB  DD  DISP=SHR,DSN=DSN!!0.DBRMLIB.DATA
//SYSTSPRT DD  SYSOUT=*
//SYSPRINT DD  SYSOUT=*
//SYSUDUMP DD  SYSOUT=*
//SYSIN    DD  *
  SET CURRENT SQLID = 'SYSADM';
  GRANT BIND, EXECUTE ON PLAN DSN8ED4
    TO PUBLIC;
//SYSTSIN  DD  *
  DSN SYSTEM(DSN)
    BIND PACKAGE(DSN8ED!!) MEMBER(DSN8ED4) APPLCOMPAT(V!!R1) +
         ACT(REP) ISO(CS) CURRENTDATA(YES) ENCODING(EBCDIC)
    BIND PACKAGE(SAMPLOC.DSN8ED!!) MEMBER(DSN8ED4) -
         APPLCOMPAT(V!!R1) +
         ACT(REP) ISO(CS) CURRENTDATA(YES) ENCODING(EBCDIC)
    BIND PLAN(DSN8ED4) -
         PKLIST(DSN8ED!!.DSN8ED4, -
                SAMPLOC.DSN8ED!!.DSN8ED4, -
                SAMPLOC.DSNREXCS.DSNREXX) -
         ACTION(REPLACE) RETAIN +
         ISO(CS) CURRENTDATA(YES) ENCODING(EBCDIC)
    RUN PROGRAM(DSNTIAD) PLAN(DSNTIA!!) -
        LIB('DSN!!0.RUNLIB.LOAD')
  END
//*
//*********************************************************************
//*  STEP 3: Invoke DSN8ED4 to pass a QUERYLEVEL request to DSNTPSMP.
//*          This is a prequalification that the server has a DSNTPSMP
//*          at the correct Interface level for our DSN8ED4 client.
//*          Parms: (* used as place holders)
//*          (1) QUERYLEVEL
//*          (2) *
//*          (3) *
//*          (4) (optional) name of server where DSNTPSMP is to be run
//*          Note: DSN8ED4 requires all the same definitions be present
//*                as on a BUILD request, even though only the function
//*                request QUERYLEVEL is passed to DSNTPSMP.
//*********************************************************************
//PH065S03 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)
//SYSTSPRT DD  SYSOUT=*
//SYSPRINT DD  SYSOUT=*
//SYSUDUMP DD  SYSOUT=*
//SYSTSIN  DD  *
  DSN SYSTEM(DSN)
    RUN PROGRAM(DSN8ED4) PLAN(DSN8ED4) -
    PARMS('QUERYLEVEL * * SAMPLOC')
  END
//PCOPTS   DD  *
//COPTS    DD  *
//PLKDOPTS DD  *
//LKEDOPTS DD  *
//BINDOPTS DD  *
//SQLIN    DD  *
//*
//REPORT01 DD  SYSOUT=*,DCB=(RECFM=FBA)
//REPORT02 DD  SYSOUT=*
//REPORT03 DD  SYSOUT=*
//REPORT04 DD  SYSOUT=*
//REPORT05 DD  SYSOUT=*
//REPORT06 DD  SYSOUT=*
//*
//*********************************************************************
//*  STEP 4:  Invoke DSN8ED4 to pass sample SQL Procedure DSN8.DSN8ES2
//*           to DSNTPSMP
//*           Parms:
//*           (1) operation to be performed by DSNTPSMP
//*           (2) schema.name of SQL proc to be prepared by DSNTPSMP
//*           (3) SQL authid to be used when calling DSNTPSMP
//*           (4) (optional) name of server where DSNTPSMP is to be run
//*           Note: Options passed in the PCOPTS, COPTS, PLKDOPTS, and
//*                 BINDOPTS DDs can span more than one input record.
//*                 Do not use continuation characters (+ or -) to
//*                 continue BIND options onto the next BINDOPTS record
//*********************************************************************
//PH065S04 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)
//SYSTSPRT DD  SYSOUT=*
//SYSPRINT DD  SYSOUT=*
//SYSUDUMP DD  SYSOUT=*
//SYSTSIN  DD  *
  DSN SYSTEM(DSN)
    RUN PROGRAM(DSN8ED4) PLAN(DSN8ED4) -
    PARMS('REBUILD DSN8.DSN8ES2 AUTHID SAMPLOC')
  END
//PCOPTS   DD  *
  SOURCE,XREF,MAR(1,80),STDSQL(NO)
//COPTS    DD  *
  SOURCE LIST MAR(1,80) NOSEQ LO RENT
//PLKDOPTS DD  *
//LKEDOPTS DD  *
  AMODE=31,RMODE=ANY,MAP,RENT
//BINDOPTS DD  *
  PACKAGE(DSN8ES!!)
  QUALIFIER(DSN8!!0) ACT(REP) ISO(CS) CURRENTDATA(YES) ENCODING(EBCDIC)
//SQLIN    DD  DSN=DSN!!0.NEW.SDSNSAMP(DSN8ES2),
//             DISP=SHR
//*
//REPORT01 DD  SYSOUT=*,DCB=(RECFM=FBA)
//REPORT02 DD  SYSOUT=*
//REPORT03 DD  SYSOUT=*
//REPORT04 DD  SYSOUT=*
//REPORT05 DD  SYSOUT=*
//REPORT06 DD  SYSOUT=*
//*
//*********************************************************************
//*  Step 5:  Prepare DSN8ED5, sample caller of DSN8.DSN8ES2
//*********************************************************************
//PH065S05 EXEC DSNHC,MEM=DSN8ED5,COND=(4,LT),
//         PARM.PC=('HOST(C),CCSID(1047),MARGINS(1,72),STDSQL(NO)',
//             SOURCE,XREF),
//         PARM.C='SOURCE LIST MAR(1,72) LO RENT OPTFILE(DD:CCOPTS)',
//         PARM.LKED='AMODE=31,RMODE=ANY,MAP,NORENT,UPCASE'
//PC.DBRMLIB   DD DSN=DSN!!0.DBRMLIB.DATA(DSN8ED5),
//             DISP=SHR
//PC.SYSLIB    DD DSN=DSN!!0.SRCLIB.DATA,
//             DISP=SHR
//PC.SYSIN     DD DSN=DSN!!0.SDSNSAMP(DSN8ED5),
//             DISP=SHR
//LKED.SYSLMOD DD DSN=DSN!!0.RUNLIB.LOAD(DSN8ED5),
//             DISP=SHR
//LKED.SYSIN   DD *
 INCLUDE SYSLIB(DSNELI)
 INCLUDE SYSLIB(DSNTIAR)
//*
//*********************************************************************
//*  Step 6:  Bind DSN8ED5's PLAN
//*********************************************************************
//PH065S06 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)
//DBRMLIB  DD  DISP=SHR,DSN=DSN!!0.DBRMLIB.DATA
//SYSTSPRT DD  SYSOUT=*
//SYSPRINT DD  SYSOUT=*
//SYSUDUMP DD  SYSOUT=*
//SYSIN    DD  *
  SET CURRENT SQLID = 'SYSADM';
  GRANT BIND, EXECUTE ON PLAN DSN8ED5
    TO PUBLIC;
//SYSTSIN  DD  *
  DSN SYSTEM(DSN)
    BIND PACKAGE(DSN8ED!!) MEMBER(DSN8ED5) APPLCOMPAT(V!!R1) +
         ACT(REP) ISO(CS) CURRENTDATA(YES) ENCODING(EBCDIC)
    BIND PACKAGE(SAMPLOC.DSN8ED!!) MEMBER(DSN8ED5) -
         APPLCOMPAT(V!!R1) +
         ACT(REP) ISO(CS) CURRENTDATA(YES) ENCODING(EBCDIC)
    BIND PLAN(DSN8ED5) -
         PKLIST(DSN8ED!!.DSN8ED5, -
                SAMPLOC.DSN8ED!!.DSN8ED5, -
                SAMPLOC.DSN8ES!!.*) -
         ACTION(REPLACE) RETAIN +
         ISO(CS) CURRENTDATA(YES) ENCODING(EBCDIC)
    RUN PROGRAM(DSNTIAD) PLAN(DSNTIA!!) -
        LIB('DSN!!0.RUNLIB.LOAD')
  END
//*
//*********************************************************************
//*  STEP 7:  Invoke DSN8ED5 to call sample SQL Procedure DSN8.DSN8ES2
//*********************************************************************
//PH065S07 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)
//SYSTSPRT DD  SYSOUT=*
//SYSPRINT DD  SYSOUT=*
//SYSUDUMP DD  SYSOUT=*
//SYSTSIN  DD  *
  DSN SYSTEM(DSN)
    RUN PROGRAM(DSN8ED5) PLAN(DSN8ED5) -
    PARMS('1500.00 SAMPLOC')
  END