HALDB Testing, As Easy as 1, 2, 3

Version 1
    Share This:

    The amount of data actively being managed in IMS continues to expand at a significant rate each year.  Some statistics cite the growth at 20 percent per year.  This puts significant pressure on DBA staffs to implement database techniques such as HALDB partitioning which extends database storage limitations from 4 gigabytes for VSAM or 8 gigabytes for OSAM to over 40 terabytes of data. This data expansion comes with additional complexity especially with application testing.  The complexity stems from the requirement to define HALDB partitions to the DBRC RECON datasets versus being defined by DBD parameters.
    Moving the HALDB partition specifications to the RECON datasets means that DBRC RECONs must be used during application testing.  Application testing complexity is increased based on the number of developers who will be testing, and the number of applications using the HALDB databases.  Each application tester will need their own set of RECONs and their own set of HALDB databases so that they can conduct early stage testing in parallel.  Many times this application testing highlights partition specification errors requiring HALDB partition definition modifications to the RECON at every level of development or testing.
    BMC’s MAXM Reorg solution restores “As Easy as 1, 2, 3” to the test or development environment via the RECON Substitution Facility.  The RSF provides a pseudo-RECON environment so that you can use HALDBs in a test environment, even if the test HALDB partitions are not defined to DBRC. The end result is that application developers can once again control their data and database structures.
    AS_easy_1_2_3_shutterstock_272836778 snipped.JPG
    Let’s highlight the RSF usage in 3 simple steps:
    1. RSF works for any DLI batch application or BMC IMS database REORG utility by simply adding the BMC load library to the STEPLIB concatenation.
    2. Specify standard DBRC INIT.DB and INIT.PART control statements in a dataset.  You can create these statements in any of the following ways:
      1. Manually, by entering them in a standard 80 byte PDS member or sequential data set
      2. Automatically, by using the MAXM Database Advisor HALDB migration tool:
        HALDB Testing 1 2 3 Simple Image.png
      3. Automatically, by using the RSF RECON Extract function:

        //BMCRCNEX JOB (acct…),CLASS=Q,MSGCLASS=X,MSGLEVEL=(1,1)
        //*
        //*HERE IS SOME JCL THAT EXTRACTS THE DBRC DEFINITIONS INTO DSPURX00
        //*FORMAT
        //*     RECON DATA SETS ARE DYNAMICLLY ALLOCATED
        //*
        //DLIGENTR  EXEC PGM=DLIGENTR
        //STEPLIB  DD DISP=SHR,DSN=IMSVS.MDALIB
        //         DD DISP=SHR,DSN=BMCDLI.IMLIB
        //         DD DISP=SHR,DSN=BMC.PASSWORD
        //         DD DISP=SHR,DSN=IMSVS.SDFSRESL
        //IMS      DD DISP=SHR,DSN=IMSVS.DBDLIB
        //BMCTRACE DD SYSOUT=*
        //SYSUDUMP DD SYSOUT=*
        //RCNOUT   DD SYSOUT=*
        //PLUSIN   DD *
          READRCN DBRC(Y) SSID(IMSA) INITRCN(Y) -
             DBD(XIU0DBD) RELATED(Y
             DSNPREFX(IMSVS.IMSA.&DBDNAME.&PARTNAME)
        /*
        //
        THE UTILITY STATEMENTS ARE WRITTEN TO THE RCNOUT DD.  YOU COULD POINT THIS TO A PDS OR FLAT FILE.  THESE UTILITY STATEMENTS ARE THEN PUT IN THE DLI BATCH JOB WITH THE BMCRECON DD AND WE THEN READ HALDB DEFINITIONS FROM BMCRECON RATHER THAN THE IMS RECONS. 


    3. ADD BMCRECON DD data set to the DLI batch or REORG utility JCL step for interception during execution:

    //BMCDLIJ JOB (acct…),CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)

    //*

    //******************************************************************

    //*     DLI JOB JCL

    //******************************************************************

    //*

    //*

    //DLISTP01  EXEC PGM=DFSRRC00,REGION=0M,

    //     PARM='DLI,DBREAD,PSBNM,,,,,,,,,IMSA,,Y'

    //STEPLIB   DD DISP=SHR,DSN=BMC.PASSWORD

    //          DD DISP=SHR,DSN=BMCDLI.IMLIB

    //          DD DISP=SHR,DSN=IMSVS.MDALIB

    //          DD DISP=SHR,DSN=IMSVS.RESLIB

    //DFSRESLB  DD DISP=SHR,DSN=IMSVS.RESLIB

    //IMS       DD DISP=SHR,DSN=IMSVS.DBDLIB

    //          DD DISP=SHR,DSN=IMSVS.PSBLIB

    //BMCRECON  DD DISP=SHR,DSN=DBU.QA.RCNTST.TEMP.RCNOUT(HDB0001)

    //*

     

    Once development and testing has been completed, then import the HALDB database partition definitions to the production IMS RECON.  RSF provides HALDB testing simplification that eliminates unnecessary DBRC RECON manipulation and usage during the development and testing cycles.