Is it possible to reorganize a batch database in ONE SINGLE step instead of running an Unload step followed by a Reload step? (Replacement for BMC's Fast Reorg Facility FRF)
One-step reorganization is already available, but so far the database to be reorganized had to be allocated to an online system. 'Full Function Online Reorg' (FFOR), which is part of Database Organizer for IMS for z/OS (DBO), can be used to reorganize the database concurrently to being accessed by an online system. Our competition (BMC) offers a tool which enables ONE-STEP batch reorganizations against databases being 'offline' (Fast Reorg Facility FRF).
Beginning with release r11.5 SP0 and PTF UIDE140, DBO allows running a ONE-STEP reorganization against a batch database by executing DBO Unload and using execution options DIRECTRELOAD and OLDDDNAMEMASK.
This example is a one-step reorganization of a HIDAM database which has 1 secondary index:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //REORG EXEC PGM=IDIDBO,REGION=6M //STEPLIB DD DSN=ca.loadlib,DISP=SHR // DD DSN=ims.reslib,DISP=SHR //DFSRESLB DD DSN=ims.reslib,DISP=SHR //IMS DD DSN=ims.dbdlib,DISP=SHR //* //* shadow database //* DD names as used in DBD //maindd DD DISP=SHR,DSN=maindb.shadow //priixdd DD DISP=SHR,DSN=priix.shadow //secixdd DD DISP=SHR,DSN=secix.shadow //* //* original database //* DD names as used in DBD, but 1st character replaced by 'O' //* (because of using option 'OLDDDNAMEMASK=O' - see below) //Oaindd DD DISP=SHR,DSN=maindb //Oriixdd DD DISP=SHR,DSN=priix //Oecixdd DD DISP=SHR,DSN=secix //* //* secix work file(s) (1 per secix) //* xxxxx =>1st 5 char of maindb DD (or less, if DD name <5 ) //* @ =>constant //* nn =>sequno for secix (starting with '01' for 1st secix) //xxxxx@nn DD UNIT=3390,SPACE=(CYL,(200,200),RLSE) //* //DBOMSGS DD SYSOUT=* //DBORPTS DD SYSOUT=* //* //DBOCTRL DD * FUNCTION=UNLOAD, DBRC=N, * dbd name main db DBDNAME=maindbd, * use DIRECTRELOAD (FRF replacement) DIRECTRELOAD=Y, * override character for 1st char of maindb, priix, secix DD OLDDDNAMEMASK=O, * build sec index AUTOINDEXBUILD=Y //* //SRT1WK01 DD UNIT=3390,SPACE=(CYL,200) //SRT1WK02 DD UNIT=3390,SPACE=(CYL,200) //SRT1WK03 DD UNIT=3390,SPACE=(CYL,200) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++