z/OS DFSMS OAM Planning, Installation, and Storage Administration Guide for Object Support
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


CBRSG100

z/OS DFSMS OAM Planning, Installation, and Storage Administration Guide for Object Support
SC23-6866-00

SAMPLIB member CBRSG100, as shown here, helps you merge OAM administration databases and catalog entries and OAM object storage databases for use with DB2 data sharing in an OAMplex. You must perform the prerequisites and modify and run the job successfully before you use OAM.
//CBRSG100 JOB MSGLEVEL=(1,1),MSGCLASS=A
//*********************************************************************
//*
//*  $SEG(CBRSG100) COMP(DBM) PROD(OAM):
//*
//*  OAM Catalog Merge Job (combining collection name catalogs
//*  from multiple systems)
//*  OAM DB2 Admin Database Merge Job (combining OAM administration
//*  databases from multiple systems)
//*  OAM DB2 Object Database Merge Job (combining object directories
//*  and object storage databases from multiple systems)
//*
//*  ---------------------------------------------------------------
//*  ---------------------------------------------------------------
//*
//*  CBRSG100
//*
//*  This job is intended to assist in the task of merging OAM
//*  administration databases and catalog entries, and OAM object
//*  storage databases, for use with DB2 datasharing in an OAMplex
//*  environment.
//*  DFSMS 1.5.0 provides OAM support in a parallel sysplex
//*  environment using XCF communications and DB2 data sharing.
//*
//*  This job will:
//*   1. Load data from other system (DB2 data from other
//*      system's DB2 tables) into this system's OAM's tables.
//*
//*******************************************************************
//*
//*  Before running this job, you MUST verify the following:
//*
//*    1. There are no two storage groups across any systems
//*       which are being combined, which have the same collection
//*       name associated with them. A collection CANNOT span object
//*       storage groups, therefore may belong to one and only one
//*       object storage group.
//*       If this condition exists:
//*          - the collection name on one of the systems being
//*            combined must change, and the ACS routines updated
//*            accordingly.
//*            OR
//*          - the two storage groups must be combined into a
//*            single storage group.
//*
//*    2. There are no two collection names across any systems
//*       that are being combined, which have the same collection
//*       ID.  Objects are associated with a collection by its ID,
//*       and the collection ID is unique in the collection table.
//*       Any collections across systems being combined, which had
//*       the same collection ID, must have been changed, and the
//*       object directory entries using these collections IDs,
//*       must have been updated.
//*
//*    3. There are no two management classes across any systems
//*       that are being combined, which have the same management
//*       class ID.  Objects are associated with a management class
//*       in the object directory by its ID, and the management class
//*       ID is unique in the management class table.
//*       Any management classes across systems being combined which
//*       had the same ID, must have been changed, and the object
//*       directory entries using the modified management class' ID
//*       must have been updated.
//*
//*    4. There are no two storage classes across any systems
//*       that are being combined, which have the same storage
//*       class ID.  Objects are associated with a storage class
//*       in the object directory by its ID, and the storage class
//*       ID is unique in the storage class table.
//*       Any storage classes across systems being combined which
//*       had the same ID, must have been changed, and the object
//*       directory entries using the modified storage class' ID
//*       must have been updated.
//*
//*
//*   NOTE1:  In order to 'correct' a duplicate collection ID
//*           situation you can do the following:
//*           - it is best to make changes to the data that is
//*             being moved rather than the data on the system
//*             where the data is being combined.
//*           1. On the system where the data is to be combined,
//*              determine what the next available collection ID
//*              is that can be used.
//*           2. On the system where the data is coming from, with
//*              the duplicate collection ID, change the collection
//*              ID associated with the collection name in the
//*              collection table to the ID determined in step 1.
//*           3. Change all of the object directory entries in the
//*              object directory for the storage group to which the
//*              collection belongs, where the collection ID is the
//*              ID previously associated with the collection to
//*              the new collection ID used from step 2.
//*           4. Use IDCAMS to catalog the new collection in the
//*              catalog on the target system.
//*           example:
//*           Object directories on system 1 and system 2 are to be
//*           combined.  COLL.SYS1.DATA1997 on system 1 has the
//*           same collection ID as COLL.SYS2.DATA1997 on system 2.
//*
//*           BEFORE:
//*           -------
//*           System 1                       System 2
//*           Coll-name          Coll-ID     Coll-name          Coll-ID
//*
//*           OBJCOLL.SYS1.TEST   001        OBJCOLL.SYS2.TEST   001
//*           COLL.SYS1.DATA1997  002        COLL.SYS2.DATA1997  002
//*           COLL.SYS1.DATA1998  004        COLL.SYS2.DATA1998  003
//*           COLL.SYS1.REPORTS   005
//*
//*           System 1 will be the target system where data is combined
//*           OBJCOLL.SYS2.TEST will not be moved, as this is test data
//*           that is not needed on the combined system
//*
//*           Step 1:  The next available collection ID on
//*                    system 1 is 006
//*
//*           Step 2:  On System 2 before attempting the combine:
//*                    SQL UDPATE OAMADMIN.CBR_COLLECTION_TBL
//*                        SET ODCLID = 6 WHERE
//*                        ODCLNAME = 'COLL.SYS2.DATA1997';
//*                    COMMIT;
//*
//*           Step 3:  On System 2 before attempting the combine:
//*                    SQL UDPATE hlq.OSM_OBJ_DIR
//*                        SET ODCLID = 6 WHERE
//*                            ODCLID = 2;
//*                    COMMIT;
//*
//*           Step 4:  On System 1 before attempting the combine:
//*                    IDCAMS DEFINE NONVSAM RECATALOG -
//*                        COLLECTION NAME(COLL.SYS2.DATA1997)
//*
//*           AFTER:
//*           ------
//*           System 1                       System 2
//*           Coll-name          Coll-ID     Coll-name          Coll-ID
//*
//*           OBJCOLL.SYS1.TEST   001        OBJCOLL.SYS2.TEST   001
//*           COLL.SYS1.DATA1997  002        COLL.SYS2.DATA1997  006
//*           COLL.SYS1.DATA1998  004        COLL.SYS2.DATA1998  003
//*           COLL.SYS1.REPORTS   005
//*
//*
//* WARNING:  In order to 'correct' a duplicate collection name
//*           situation, you will have to investigate your SMS
//*           CDS more closely and see where the storage group is
//*           assigned based on the collection name and see if the
//*           data can be combined under one storage group, or if
//*           objects in one collection need to be changed to another
//*           collection altogether.  Then the ACS routines would have
//*           to also be updated to handle the new collection.
//*           This needs to be done with the assistance of your
//*           application interface and your systems programmer to
//*           determine the best plan for your installation.
//*
//*   NOTE2:  In order to 'correct' a duplicate management class
//*           number situation you can do similar steps as the ones
//*           to correct duplicate collection IDs, with the exception
//*           that the catalog step is not needed.
//*           In brief the steps would be:
//*           1. determine the next available management class number
//*              'x' below is the new management class number
//*              'y' below is the old management class number
//*           2. Change the management class number on the
//*              'from' system
//*              SQL UDPATE OAMADMIN.CBR_MGT_CLASS_TBL
//*                  SET MCNUM = x WHERE
//*                  ODMCNAME = 'duplicate.mc.name';
//*              COMMIT;
//*           3. Change all of the object directory entries with the
//*              old management class number to the new management
//*              class number on the 'from' system
//*                    SQL UDPATE hlq.OSM_OBJ_DIR
//*                        SET ODMCNUM = x WHERE
//*                            ODMCNUM = y;
//*                    COMMIT;
//*
//*   NOTE3:  In order to 'correct' a duplicate storage class number
//*           situation you can do similar steps as the ones to
//*           correct duplicate collection IDs, with the exception
//*           that the catalog step is not needed.
//*           In brief the steps would be:
//*           1. determine the next available storage class number
//*              'x' below is the new storage class number
//*              'y' below is the old storage class number
//*           2. Change the storage class ID on the 'from' system
//*              SQL UDPATE OAMADMIN.CBR_STO_CLASS_TBL
//*                  SET SCNUM = x WHERE
//*                  ODMCNAME = 'duplicate.sc.name';
//*              COMMIT;
//*           3. Change all of the object directory entries with the
//*              old storage class number to the new storage class
//*              number on the 'from' system
//*                    SQL UDPATE hlq.OSM_OBJ_DIR
//*                        SET ODSCNUM = x WHERE
//*                            ODSCNUM = y;
//*                    COMMIT;
//*
//*******************************************************************
//*
//*  It is recommended that you create a DB2 image copy of the
//*  existing tables:
//*    OAM administration database tables:
//*       OAMADMIN.CBR_MGT_CLASS_TBL
//*       OAMADMIN.CBR_STO_CLASS_TBL
//*       OAMADMIN.CBR_COLLECTION_TBL
//*    OAM object directory and object storage database tables:
//*       all GROUPxx.OSM_OBJ_DIR tables
//*       all GROUPxx.OSM_04K_OBJ_TBL tables
//*       all GROUPxx.OSM_32K_OBJ_TBL tables
//*     where GROUPxx = GROUP00 - GROUP99
//*
//*******************************************************************
//*
//*  Before running this job, you must change the following:
//*
//*    1.Change the PARM='DB2' in the JOB STEP statements to
//*      the name of the DB2 Subsystem in your installation.
//*
//*    2.Change the data set name SYS1.DB2.V4R1M0.SDSNLOAD
//*      in the STEPLIB statements to the data set name used
//*      for the DB2 SDSNLOAD dataset if necessary.
//*
//*    3.Change RESUME YES to RESUME NO if you are loading
//*      into empty tables.
//*
//*    4. Change the data set names in the job steps to the
//*       appropriate data set names for loading the DB2
//*       tables from other systems (this sample job is set up
//*       as though datasets are pre-allocated):
//*
//*       sg100.map       = map dataset for DB2 in the job (reused
//*                         in this job, or can use separate data
//*                         sets for each job step if desired
//*       sg100.err       = error dataset for DB2 in the job (reused
//*                         in this job, or can use separate data
//*                         sets for each job step if desired
//*
//*       input.clntable  = DSN with the collection table row values
//*                         from the system to be merged
//*       workdsn.forcln  = work dataset for DB2 in job step
//*       sortdsn.forcln  = sort dataset for DB2 in job step
//*       discard.forcln  = DSN for the output of rows that could
//*                         not be merged from the other system
//*
//*       input.mctable   = DSN with the management class table row
//*                         values from the system to be merged
//*       workdsn.formc   = work dataset for DB2 in job step
//*       sortdsn.formc   = sort dataset for DB2 in job step
//*       discard.formc   = DSN for the output of rows that could
//*                         not be merged from the other system
//*
//*       input.sctable   = DSN with the storage class table row
//*                         values from the system to be merged
//*       workdsn.forsc   = work dataset for DB2 in job step
//*       sortdsn.forsc   = sort dataset for DB2 in job step
//*       discard.forsc   = DSN for the output of rows that could
//*                         not be merged from the other system
//*
//*       input.objdir    = DSN with the object directory table row
//*                         values from the system to be merged
//*       workdsn.forodir = work dataset for DB2 in job step
//*       sortdsn.forodir = sort dataset for DB2 in job step
//*       discard.forodir = DSN for the output of rows that could
//*                         not be merged from the other system
//*
//*       input.obj04k    = DSN with the object 4K table row
//*                         values from the system to be merged
//*       workdsn.for04k  = work dataset for DB2 in job step
//*       sortdsn.for04k  = sort dataset for DB2 in job step
//*       discard.for04k  = DSN for the output of rows that could
//*                         not be merged from the other system
//*
//*       input.obj32k    = DSN with the object 32K table row
//*                         values from the system to be merged
//*       workdsn.for32k  = work dataset for DB2 in job step
//*       sortdsn.for32k  = sort dataset for DB2 in job step
//*       discard.for32k  = DSN for the output of rows that could
//*                         not be merged from the other system
//*
//*      **NOTE: For these datasets, use size calculations that
//*              would be needed for your installation, using the
//*              DB2 guidelines in the DB2 Command and Utility
//*              Reference for the LOAD utility.
//*
//*    5. Change storage_group_hlq in the job steps to the
//*       high level qualifier for the object storage group
//*       tables that are being merged.
//*
//*    6. Load the information from the OAM administration database
//*       tables and the object storage group databases tables from
//*       the other OAM/system where data is to be copied from into
//*       datasets on this system
//*       The simplest way to do this is to do an SQL SELECT * from
//*       the OAM tables to be merged on the other system and editing
//*       the column headers out of the resulting output so that just
//*       the data from the rows remains.
//*
//*    7. Note the beginning, (and ending if needed), columns
//*       where the data for each column resides in the table rows.
//*
//*    8. If necessary, change the POSITION(xx:yy) in the job
//*       steps to correlate to the actual beginning (and ending)
//*       columns where the data for each column resides in the
//*       input datasets (the SYSREC DD statement dataset).
//*
//*       - For columns which are defined as specific length,
//*         like CHAR(2), only the start position is needed and
//*         the end will be determined by the length of the column
//*       - For columns which are defined as VARCHAR, only a
//*         start position is needed if the first 2 bytes of
//*         the data is the length of the following data.
//*         Otherwise, a beginning and ending designation are
//*         needed.
//*
//*    9. The integer fields are set up as EXTERNAL(zz) in the job
//*       steps, be sure that any integer values in the columns that
//*       are not the full length are padded with preceding zeros
//*       in the input dataset (the SYSREC DD statement dataset).
//*
//*   10. If your input dataset (DD SYSREC) does not have the data
//*       always in specific columns because of the varying length
//*       fields, the easiest way to change the POSITION(xx:yy)
//*       statements would be to make the POSITION start column
//*       an offset from the end of the previous field.  For
//*       example:
//*
//*       LOAD DATA INDDN(SYSREC)
//*            REPLACE
//*            INTO TABLE OAMADMIN.CBR_COLLECTION_TBL
//*          (ODCLSCNM   POSITION(1 )  VARCHAR(30),
//*           ODCLMCNM   POSITION(+2)  VARCHAR(30),
//*           ODCLSGNM   POSITION(+2)  VARCHAR(30),
//*           ODCLID     POSITION(+2)     INTEGER,
//*           ODCLNAME   POSITION(+2)  VARCHAR(44));
//*
//*       In this example, the data for each subsequent column is
//*       expected to be 2 positions from the end of the preceding
//*       data, with the first 2 bytes of the VARCHAR fields being
//*       the actual length of the field's data.
//*
//*   11. Repeat steps CBRSG104-CBRSG106 for each set of object
//*       storage group tables that are being merged.
//*
//*******************************************************************
//*
//*  After running this job, do the following:
//*
//*    1. Check the return codes from the job to verify success
//*       or failure of the data merge.
//*
//*    2. Check the data sets below for any rows that could not
//*       be merged into the configuration database.  The most
//*       likely cause of failure would be duplicate rows.
//*
//*       discard.forcln  = DSN for the output of rows that could
//*                         not be merged from the other system
//*
//*       discard.formc   = DSN for the output of rows that could
//*                         not be merged from the other system
//*
//*       discard.forsc   = DSN for the output of rows that could
//*                         not be merged from the other system
//*
//*       discard.forodir = DSN for the output of rows that could
//*                         not be merged from the other system
//*
//*       discard.for04k  = DSN for the output of rows that could
//*                         not be merged from the other system
//*
//*       discard.for32k  = DSN for the output of rows that could
//*                         not be merged from the other system
//*******************************************************************
//*
//*
//*  CHANGE ACTIVITY:
//*    $L0=HDZ11E0  150 970812 TUCLJT: Initial Release
//*    $P1=K1B0989  R1B 090306 TUCBLC: Add new columns (ODLOBFL,   @P1A
//*                            ODBK2LOC, ODBK2SEC, ODSTATF,        @P1A
//*                            ODRETDT, ODINSTID)                  @P1A
//*
//*********************************************************************
//*********************************************************************
//*  Load configuration tables from different DB2 database
//*********************************************************************
//CBRSG101 EXEC PGM=DSNUTILB,DYNAMNBR=20,COND=(4,LT),PARM='DB2',
//         REGION=4096K
//STEPLIB  DD DSN=SYS1.DB2.V4R1M0.SDSNLOAD,DISP=SHR
//SYSTSPRT DD SYSOUT=*
//SYSREC   DD DSN=input.clntable,DISP=(OLD,KEEP)
//SYSUT1   DD DSN=workdsn.forcln,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SORTOUT  DD DSN=sortdsn.forcln,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SYSDISC  DD DSN=discard.forcln,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SYSMAP   DD DSN=sg100.map,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SYSERR   DD DSN=sg100.err,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SYSPRINT DD SYSOUT=*
//UTPRINT  DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN    DD *

 LOAD DATA INDDN(SYSREC)
      REPLACE
      INTO TABLE OAMADMIN.CBR_COLLECTION_TBL
    (ODCLSCNM   POSITION(xx)     VARCHAR,
     ODCLMCNM   POSITION(xx)     VARCHAR,
     ODCLSGNM   POSITION(xx)     VARCHAR,
     ODCLID     POSITION(xx)     INTEGER EXTERNAL(3),
     ODCLNAME   POSITION(xx)     VARCHAR)
/*
//*********************************************************************
//CBRSG102 EXEC PGM=DSNUTILB,DYNAMNBR=20,COND=(4,LT),PARM='DB2',
//         REGION=4096K
//STEPLIB  DD DSN=SYS1.DB2.V4R1M0.SDSNLOAD,DISP=SHR
//SYSTSPRT DD SYSOUT=*
//SYSREC   DD DSN=input.mctable,DISP=(OLD,KEEP)
//SYSUT1   DD DSN=workdsn.formc,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SORTOUT  DD DSN=sortdsn.formc,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SYSDISC  DD DSN=discard.formc,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SYSMAP   DD DSN=sg100.map,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SYSERR   DD DSN=sg100.err,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SYSPRINT DD SYSOUT=*
//UTPRINT  DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN    DD *

 LOAD DATA INDDN(SYSREC)
      REPLACE
      INTO TABLE OAMADMIN.CBR_MGT_CLASS_TBL
    (ODMCNUM    POSITION(xx)     INTEGER EXTERNAL(2),
     ODMCNAME   POSITION(xx)     VARCHAR)
 /*
//*********************************************************************
//CBRSG103 EXEC PGM=DSNUTILB,DYNAMNBR=20,COND=(4,LT),PARM='DB2',
//         REGION=4096K
//STEPLIB  DD DSN=SYS1.DB2.V4R1M0.SDSNLOAD,DISP=SHR
//SYSTSPRT DD SYSOUT=*
//SYSREC   DD DSN=input.sctable,DISP=(OLD,KEEP)
//SYSUT1   DD DSN=workdsn.forsc,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SORTOUT  DD DSN=sortdsn.forsc,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SYSDISC  DD DSN=discard.forsc,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SYSMAP   DD DSN=sg100.map,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SYSERR   DD DSN=sg100.err,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SYSPRINT DD SYSOUT=*
//UTPRINT  DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN    DD *

 LOAD DATA INDDN(SYSREC)
      REPLACE
      INTO TABLE OAMADMIN.CBR_STO_CLASS_TBL
    (ODSCNUM    POSITION(xx)     INTEGER EXTERNAL(2),
     ODSCNAME   POSITION(xx:yy)  VARCHAR)
 /*
//*********************************************************************
//*  Combine hlq.OSM_OBJ_DIR tables from different
//*  DB2 systems for object storage group.
//*********************************************************************
//CBRSG104 EXEC PGM=DSNUTILB,DYNAMNBR=20,COND=(4,LT),PARM='DB2',
//         REGION=4096K
//STEPLIB  DD DSN=SYS1.DB2.V4R1M0.SDSNLOAD,DISP=SHR
//SYSTSPRT DD SYSOUT=*
//SYSREC   DD DSN=input.objdir,DISP=(OLD,KEEP)
//SYSUT1   DD DSN=workdsn.forodir,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SORTOUT  DD DSN=sortdsn.forodir,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SYSDISC  DD DSN=discard.forodir,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SYSMAP   DD DSN=sg100.map,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SYSERR   DD DSN=sg100.err,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SYSPRINT DD SYSOUT=*
//UTPRINT  DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN    DD *

 LOAD DATA INDDN(SYSREC)
      REPLACE
      INTO TABLE storage_group_hlq.OSM_OBJ_DIR
    (ODVER      POSITION(xx)     CHAR(1),
     ODSIZE     POSITION(xx)     INTEGER EXTERNAL(3),
     ODCREATS   POSITION(xx)     TIMESTAMP EXTERNAL(26),
     ODEXPDT    POSITION(xx)     DATE EXTERNAL(10),
     ODLREFDT   POSITION(xx)     DATE EXTERNAL(10),
     ODPENDDT   POSITION(xx)     DATE EXTERNAL(10),
     ODMCASDT   POSITION(xx)     DATE EXTERNAL(10),
     ODSCNUM    POSITION(xx)     INTEGER EXTERNAL(2),
     ODMCNUM    POSITION(xx)     INTEGER EXTERNAL(2),
     ODLOCFL    POSITION(xx)     CHAR(1),
     ODLSLOC    POSITION(xx)     CHAR(6),
     ODSECLOC   POSITION(xx)     INTEGER EXTERNAL(4),
     ODBKLOC    POSITION(xx)     CHAR(6),
     ODBKSEC    POSITION(xx)     INTEGER EXTERNAL(4),
     ODCLID     POSITION(xx)     INTEGER EXTERNAL(4),
     ODNAME     POSITION(xx:yy)  VARCHAR)
     ODBK2LOC   POSITION(xx)     CHAR(6),
     ODBK2SEC   POSITION(xx)     INTEGER EXTERNAL(4),
     ODLOBFL    POSITION(xx)     CHAR(1),
     ODSTATF    POSITION(xx)     INTEGER EXTERNAL(2),
     ODRETDT    POSITION(xx)     DATE EXTERNAL(10),
     ODINSTID   POSITION(xx)     INTEGER EXTERNAL(4))
/*
/*
//*********************************************************************
//*  Combine hlq.OSM_04K_OBJ_DIR tables from different
//*  DB2 systems for object storage group.
//*********************************************************************
//CBRSG105 EXEC PGM=DSNUTILB,DYNAMNBR=20,COND=(4,LT),PARM='DB2',
//         REGION=4096K
//STEPLIB  DD DSN=SYS1.DB2.V4R1M0.SDSNLOAD,DISP=SHR
//SYSTSPRT DD SYSOUT=*
//SYSREC   DD DSN=input.obj04k,DISP=(OLD,KEEP)
//SYSUT1   DD DSN=workdsn.for04k,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SORTOUT  DD DSN=sortdsn.for04k,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SYSDISC  DD DSN=discard.for04k,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SYSMAP   DD DSN=sg100.map,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SYSERR   DD DSN=sg100.err,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SYSPRINT DD SYSOUT=*
//UTPRINT  DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN    DD *

 LOAD DATA INDDN(SYSREC)
      REPLACE
      INTO TABLE storage_group_hlq.OSM_04K_OBJ_TBL
    (OTVER      POSITION(xx)     CHAR(1),
     OTSEG      POSITION(xx)     INTEGER EXTERNAL(2),
     OTCLID     POSITION(xx)     INTEGER EXTERNAL(3),
     OTNAME     POSITION(xx:yy)  VARCHAR,
     OTOBJ      POSITION(xx:yy)  VARCHAR)
/*
//*********************************************************************
//*  Combine hlq.OSM_32K_OBJ_DIR tables from different
//*  DB2 systems for object storage group.
//*********************************************************************
//CBRSG106 EXEC PGM=DSNUTILB,DYNAMNBR=20,COND=(4,LT),PARM='DB2',
//         REGION=4096K
//STEPLIB  DD DSN=SYS1.DB2.V4R1M0.SDSNLOAD,DISP=SHR
//SYSTSPRT DD SYSOUT=*
//SYSREC   DD DSN=input.obj32k,DISP=(OLD,KEEP)
//SYSUT1   DD DSN=workdsn.for32k,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SORTOUT  DD DSN=sortdsn.for32k,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SYSDISC  DD DSN=discard.for32k,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SYSMAP   DD DSN=sg100.map,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SYSERR   DD DSN=sg100.err,DISP=(MOD,KEEP),UNIT=3390,
//         VOL=SER=DBPACK
//SYSPRINT DD SYSOUT=*
//UTPRINT  DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN    DD *

 LOAD DATA INDDN(SYSREC)
      REPLACE
      INTO TABLE storage_group_hlq.OSM_32K_OBJ_TBL
    (OTVER      POSITION(xx)     CHAR(1),
     OTSEG      POSITION(xx)     INTEGER EXTERNAL(2),
     OTCLID     POSITION(xx)     INTEGER EXTERNAL(3),
     OTNAME     POSITION(xx:yy)  VARCHAR,
     OTOBJ      POSITION(xx:yy)  VARCHAR)
/*

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014