Reorganize an IMS database in one JCL step.

Document ID : KB000054825
Last Modified Date : 14/02/2018
Show Technical Document Details

Description:

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)

Solution:

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 CA 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)                       
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++