GENJCL.IC

After considering the points discussed in GENJCL for the Image Copy function, do the following to generate Image Copy function JCL:

  1. Write a skeletal JCL member for the Image Copy function. A sample skeletal JCL member is listed in Figure 1. You must place skeletal JCL members in your JCLPDS library.
    • Specify the libraries that contain the modules of Image Copy function and HD Pointer Checker.
    • Specify Y, N, or a blank for position 39 in the SYSIN DD statement. Use the keyword %COMP to specify this. You can specify any user-defined keywords like this within the DBRC convention. User-defined keywords are replaced by values in an appropriate default member when the JCL is generated.
    • Specify the DD statements for the HASH Check option.
    Figure 1. Sample skeletal JCL FABJICS0
       //IC%STPNO  EXEC PGM=DFSUDMP0,REGION=800K
       //*
       //*      JCL FOR IMAGE COPY WITH HPIC DATA COMPRESSION
       //*
       //STEPLIB   DD DSN=HPS.SHPSLMD0,DISP=SHR
       //          DD DSN=IMSESA.SDFSRESL,DISP=SHR
       //SYSPRINT  DD SYSOUT=A
       %DELETE  (%RCNDSN1 EQ '')
       //RECON1    DD DSN=%RCNDSN1,DISP=SHR
       %ENDDEL
       %DELETE  (%RCNDSN2 EQ '')
       //RECON2    DD DSN=%RCNDSN2,DISP=SHR
       %ENDDEL
       %DELETE  (%RCNDSN3 EQ '')
       //RECON3    DD DSN=%RCNDSN3,DISP=SHR
       %ENDDEL
       //IMS       DD DSN=IMSESA.DBDLIB,DISP=SHR
       %SELECT  DBDS((%DBNAME,%DBDDN))
       %DELETE  (%DBADSAV NE 'AVAIL')
       //%DBADDN   DD DSN=%DBDSN,DISP=OLD
       %ENDDEL
       %DELETE  (%DBADSAV NE '')
       //%DBDDN    DD DSN=%DBDSN,DCB=BUFNO=10,DISP=OLD
       %ENDDEL
       %ENDSEL
       //DATAOUT1  DD DSN=%ICDSN1,UNIT=%ICUNIT1,
       //             VOL=(PRIVATE,,,%ICVCNT1,SER=(%ICVOLS1)),
       //             LABEL=(%ICFSEQ1,SL),
       //             DISP=(NEW,KEEP),DCB=BUFNO=10
       %DELETE  (%COPIES EQ '1')
       //DATAOUT2  DD DSN=%ICDSN2,UNIT=%ICUNIT2,
       //             VOL=(PRIVATE,,,%ICVCNT2,SER=(%ICVOLS2)),
       //             LABEL=(%ICFSEQ2,SL),
       //             DISP=(NEW,KEEP),DCB=BUFNO=10
       %ENDDEL
       //SYSIN     DD *
       %DELETE  (%COPIES EQ '2')
       D1 %KDBN %KDDN DATAOUT1         %COMP
       %ENDDEL
       %DELETE  (%COPIES EQ '1')
       D2 %KDBN %KDDN DATAOUT1 DATAOUT2%COMP
       %ENDDEL
       /*
       %DELETE  (%HASH NE 'Y')
       //DBDEFCTL DD DISP=SHR,DSN=HPS.DBDEFCTL
       //PRIMAPRT DD SYSOUT=A
       //STATIPRT DD SYSOUT=A
       //VALIDPRT DD SYSOUT=A
       //SNAPPIT  DD SYSOUT=A
       //FSESTAT  DD DISP=(NEW,DELETE,DELETE),UNIT=SYSDA,
       //            SPACE=(CYL,(1,1))
       //SORTEX   DD DISP=(NEW,CATLG,DELETE),UNIT=SYSDA,
       //            SPACE=(CYL,(1,1)),
       //            DSN=HPS.%DBNAME.%DBDDN.SORTEX
       %ENDDEL
  2. Write a default member containing the default values to be replaced by the user-defined keywords. When JCL is generated, the user-defined keywords in skeletal JCL member (Figure 1) are replaced with values in the appropriate default member. Figure 2 shows a sample default member FABJICD1.
    Figure 2. Default member FABJICD1
       GENJCL.IC DEFAULT MEMBER FOR HPIC IMAGE COPY FUNCTION
       DEFAULT MEMBER NAME (FABJICD1)
    
        IF YOU WISH TO USE:
           - DATA COMPRESSION FOR IC RECORDS
           - HDPC HASH CHECK OPTION
        FOR TAKING IMAGE COPY BY GENJCL.IC, REFER TO THIS DEFAULT MEMBER
        AND THE 'FABJICS0' SKELETAL JCL MEMBER OF THE DISTRIBUTED
        SAMPLE JCL LIBRARY.
    
        TO USE THIS DEFAULT MEMBER, YOU ARE REQUIRED TO SPECIFY
        DEFLTJCL(FABJICD1) ON INIT.DBDS COMMAND OR DEFAULTS(FABJICD1)
        ON GENJCL.IC COMMAND.
    
        SAMPLE GENJCL.IC COMMAND FORMAT ARE:
    
         1. IF YOU WANT TO COMPRESS IMAGE COPY,
    
           GENJCL.IC DBD(DBDNAME1) DDN(DDNAME1)
    
    
         2. IF YOU WANT TO COMPRESS IMAGE COPY AND INVOKE THE
            HASH FUNCTION,
    
           GENJCL.IC DBD(DBDNAME1) DDN(DDNAME1) -
           USERKEYS((%HASH,'Y'))
    
    
         3. IF YOU DO NOT WANT TO COMPRESS IMAGE COPY,
    
           GENJCL.IC DBD(DBDNAME1) DDN(DDNAME1) -
           USERKEYS((%COMP,' '))
    
        DEFAULT VALUES:
    
        FOLLOWING DEFAULT VALUES SUBSTITUTE FOR THE SIMPLE KEYWORDS
        DEFINED IN THE SKELETAL JCL EXECUTION MEMBER 'FABJICS0'.
    
    %KDBN='DBDNAME1'     DBNAME MUST BE 8 CHARACTERS
    %KDDN='DDNAME1 '     DBDDN MUST BE 8 CHARACTERS
    %COMP='Y'            COMPRESSION: YES
    %HASH='N'            HASH CHECK: NO

    Specify DBDNAME to replace %KDBN. Add blanks to fill any character string that has fewer than 8 characters.

    Specify DDNAME to replace %KDDN. As in Figure 2, blanks must be added to any character string of fewer than 8 characters.

    Specify Y, N, or a blank to replace %COMP-Y for IMS HP Image Copy with compression; N or a blank for IMS HP Image Copy without compression.

    Specify Y, N, or a blank to replace %HASH-Y for IMS HP Image Copy with the HD Pointer Checker HASH evaluation; N or a blank for IMS HP Image Copy without the HD Pointer Checker HASH evaluation.

  3. Register the members to the RECON data set.
    1. Initialize the RECON data set and register the required information to it. For details about initialization, registration, and modification of RECON, see IMS System Utilities.
    2. Register to the RECON data set the name of the skeletal JCL member and the default member you want to use.

      Use the INIT.DBDS command to register the names. The ICJCL parameter specifies the name of the skeletal JCL member. The DEFLTJCL parameter specifies the name of the default JCL member.

      INIT.DBDS   DBD(db1) DDN(dd1)    -
                  DSN(dsn1) GENMAX(n)  -
                  ICJCL(FABJICS0) DEFLTJCL(FABJICD1)

      where n=2-255.

  4. Run the GENJCL.IC command to generate the JCL for the Image Copy function.
    GENJCL.IC DBD(db1) DDN(dd1)

    The DBRC uses the skeletal JCL and the default JCL that are registered to the RECON to generate the JCL for the Image Copy function.

    The following is the resulting IMS HP Image Copy control statement:

    //SYSIN     DD * 
    D1 DB1      DD1      DATAOUT1         Y 
    /*