IBM Support

DFSMSrmm: Procedure to define and convert/move from basic format VSAM control data set(CDS) to extended format (EF)

How To


Summary

You can define the DFSMSrmm control data set as either an extended format (EF) or a basic format VSAM data set. Using a basic format data set for the DFSMSrmm control data set, limits the control data set size to a maximum of 4 GB. Using an EF data set enables you to use VSAM functions such as multivolume allocation, compression, or striping. EF also enables you to define a control data set that uses VSAM extended addressability (EA) to enable the control data set to grow above 4 GB.

Objective

Convert basic vsam DFRMM control data set to extended format/extended addressibility

Steps

You can define the DFSMSrmm control data set as either an extended format (EF) or a basic format VSAM data set. Using a basic format data set for the DFSMSrmm control data set, limits the control data set size to a maximum of 4 GB. Using an EF data set enables you to use VSAM functions such as multivolume allocation, compression, or striping. EF also enables you to define a control data set that uses VSAM extended addressability (EA) to enable the control data set to grow above 4 GB. 
 
The steps to move the control data set are documented in the I&C manual:
 
z/OS DFSMSrmm Implementation and Customization Guide SC23-6874-00
    Steps for moving the control data set and journal using the DFSMSrmm
    EDGHSKP utility with the PARM='BACKUP' parameter
.                       .
https://www.ibm.com/docs/en/zos/3.1.0?topic=mcdsjdd-steps-moving-control-data-set-journal-using-dfsmsrmm-edghskp-utility-parmbackup-parameter
.
Below are step by step procedures which are similar to moving control data set outlined in above manual. 
 
To convert over to extended format(EF), the control dataset(CDS) must be system managed.  This requires you to make changes to your SMS ACS routines, define new SMS constructs.  In this procedure we will use DFRMM.CDS, DFRMM.CDS.NEW and DFRMM.CDS.OLD as an example for CDS names and DFRMM.JOURNAL as your current journal name.  Check your EDGRMMxx DSNAME and JRNLNAME parameters in OPTION command to obtain the data set names used at your installation.
 
If you have a test environment where the CDS is not shared, you may want test this procedure out before invoking it in your shared or production environments.
 
1) In SMS SCDS create a storage group that is dedicated for RMM CDS, it is recommended not to allocate the RMM CDS in non-dedicated storage group as RMM puts reserves on the volume  and the volume will be locked when updates are occurring to the CDS which can impact both RMM and other data sets/applications.  Therefore, RMM CDS must be allocated to its own dedicated volume(s).
 
2) SMS configuration/ACS routine changes are required for data set/mask for DFRMM.CDS and DFRMM.CDS.**.  In addition you will need to define DATACLAS, STORGRP constructs and finally initializing volumes(s). 
 
  • Dataclas - Define a DATACLAS with following attributes(if one does not exist) and assign this DATACLAS construct to these data sets in your DATACLAS ACS routine:
 
        Data Set Name Type  . . . . . : EXTENDED
          If Extended . . . . . . . . : REQUIRED
          Extended Addressability . . : YES
 
 
  • Storclas - Update Storclas ACS routine to assign a storage class for these data sets
    
  • Mgmtclas - Update Mgmtclas ACS routine to assign a mgmtclas with no action attributes, that is no backup by hsm, expiration, migration and partial release. This is to ensure DFSMShsm does not process these data sets which could lead to lock out conditions.
image-20241007095654-1
    
  • Storgrp  - Update Storgrp ACS routine to assign a storgrp based on above storclas and data set names and ensure the Auto Migrate, Auto Backup and Auto Dump are set to NO.  This will prevent DFSMShsm from doing space management and availability management and contention issues.
    •   Define   - Define volume(s) to the Storgrp that will be used to allocate the CDS
    
  • Translate/Validate SMS Configuration and Implement the new SMS configuration
  • Initialize a volume(s) for this storage group.
 
3) Once SMS configuration has been implemented and volume(s) have been initialized for the storage group, proceed with Step 4.  
   
NOTE: You can execute step 9 to allocate new RMM CDS(DFRMM.CDS.NEW) ahead time.  This will validate that your SMS ACS routines are setup correctly.
.
4) Verify control data set.  This will verify the current state of records in the CDS and you can use this report to compare with the VERIFY output after the procedure is completed.  They should both be in same state:


   

//* -------------------------------------------------------------- *
   //* VERIFIES CONTROL DATA SET INFORMATION FORMAT                   *
   //* -------------------------------------------------------------- *
   //VERIFY   EXEC PGM=EDGUTIL,PARM='VERIFY'
   //MASTER   DD DISP=SHR,DSN=DFRMM.CDS,AMP=('BUFND=50,BUFNI=50')
   //SYSPRINT DD SYSOUT=*
   //SORTWK01 DD UNIT=SYSALLDA,SPACE=(CYL,(45,10))
   //SORTWK02 DD UNIT=SYSALLDA,SPACE=(CYL,(45,10))
   //SORTWK03 DD UNIT=SYSALLDA,SPACE=(CYL,(45,10))
   //SYSIN    DD DUMMY
   //

.
5) Hold and allow tape processing to complete on ALL lpars that are sharing this CDS. This means also stopping or holding tasks that use tape by started tasks such as DFSMShsm.
 
6) Stop RMM on all Lpars EXCEPT for Lpar where you will be doing the moving/converting of CDS activity.
 
7) Run PGM=EDGHSKP,PARM='BACKUP'  This will backup the CDS and JOURNAL using IDCAMS REPRO, and clear the journal.
Some records might be written to the journal if any updates are made to the control data set before the RMM procedure is stopped. This is not a problem because the CDS forward recovery will be done in STEP10.
 
Make note of the NUMBER OF RECORDS PROCESSED  for MASTER in SYSPRINT DD.  This value needs to be cross referenced to confirm the number of records restored in STEP10 of CDS RESTORE.
 
//BACKUP EXEC PGM=EDGHSKP,PARM='BACKUP'
//MESSAGE  DD DISP=SHR,DSN=messages
//SYSPRINT DD SYSOUT=*
//BACKUP   DD DISP=(,CATLG),DSN=cds.backup.Dyyyyddd.Thhmm,UNIT=SYSALLDA
//         RECFM=VB,LRECL=9216,BLKSIZE=0,SPACE=(CYL,(xx,yy))
//JRNLBKUP DD DISP=(,CATLG),
//         DSN=journal.backup.Dyyyyddd.Thhmm,UNIT=SYSALLDA
//         RECFM=VB,LRECL=9248,BLKSIZE=0,BUFNO=30,SPACE=(CYL,(xx,yy))
 
 
Here is an example of the information returned in SYSPRINT DD:
 
image-20240920095411-1

8) Shutdown RMM on this last remaining Lpar and verify that RMM is also down on all Lpars sharing this CDS.  
 
  • RO *ALL,P DFRMM
  • Verify the tasks are down on ALL lpars. Use the following command to check if any tasks are up: RO *ALL,D A,DFRMM  
  • Hold all jobs using PGM=EDGHSKP/EDGBKUP or any RMM related functions in your batch scheduling system and automation tool(s).
  • Verify nothing is allocated to RMM CDS and Journal by issuing command: RO *ALL,D GRS,RES=(SYSDSN,DFRMM.CDS)
 
9) Allocate your new RMM CDS for example DFRMM.CDS.NEW.    
 
    z/OS DFSMSrmm Implementation and Customization Guide
    Allocating space for the control data set
 
    https://www.ibm.com/docs/en/zos/3.1.0?topic=set-allocating-space-control-data
    
  • The DFRMM.CDS.NEW should have been allocated on SMS volume residing in storgrp created in step 2.
  • Verify DFRMM.CDS.NEW was allocated with extended attributes by issuing LISTCAT ENT('DFRMM.CDS.NEW') ALL.  The LISTCAT should show the  CDS allocated as "EXTENDED EXT-ADDR" attributes.
    
  
10) Restore the CDS to NEW CDS from backup taken in Step 7.
 
 This JCL example does forward recovery of the CDS into the new control data set and uses the OLD journal to forward recover the
  control data set backup to the point where the you stopped the DFRMM procedure.  This procedure using DFRMM.JOURNAL as your current journal.  
 
Make note of the NUMBER OF RECORDS PROCESSED  for OUTFILE(MASTER) in SYSPRINT DD.  This value will needs to be cross referenced to confirm the number of records that were backed up in STEP7.


         

//RESTORE EXEC PGM=EDGBKUP,PARM='RESTORE'
//SYSPRINT DD SYSOUT=*
//BACKUP DD DISP=SHR,DSN=cds.backup.Dyyyyddd.Thhmm
//MASTER DD DISP=SHR,DSN=DFRMM.CDS.NEW
//JOURNAL DD DISP=SHR,DSN=journal.backup.Dyyyyddd.Thhmm   
//        DD DISP=SHR,DSN=DFRMM.JOURNAL 
//*                                             
Here is an example of the information returned in SYSPRINT DD:
 
image-20240920100142-2


 
11) Rename CDSs.  This will rename your current CDS to **.OLD and **.NEW to data set name specified in EDGRMMxx DSNAME parameter in OPTION command.
 
    Use IDCAMS ALTER command to rename the new control data set and new
    journal, after renaming the old data sets
   

For example:

        //IDCAMS EXEC PGM=IDCAMS
        //SYSPRINT DD SYSOUT=*
        //SYSIN    DD *
         ALTER DFRMM.CDS        NEWNAME(DFRMM.CDS.OLD)
         ALTER DFRMM.CDS.DATA   NEWNAME(DFRMM.CDS.OLD.DATA)
         ALTER DFRMM.CDS.INDEX  NEWNAME(DFRMM.CDS.OLD.INDEX)

          IF LASTCC=0 THEN DO

          LISTCAT ENT(DFRMM.CDS.OLD) ALL
          LISTCAT ENT(DFRMM.CDS.NEW) ALL

          IF LASTCC=0 THEN DO

          ALTER DFRMM.CDS.NEW        NEWNAME(DFRMM.CDS)
          ALTER DFRMM.CDS.NEW.DATA   NEWNAME(DFRMM.CDS.DATA)
          ALTER DFRMM.CDS.NEW.INDEX  NEWNAME(DFRMM.CDS.INDEX)

          IF LASTCC=0 THEN DO

          LISTCAT ENT(DFRMM.CDS) ALL
        /*


 

  • Verify the record counts from the output created from LISTCAT(DFRMM.CDS.OLD vs DFRMM.CDS vs DFRMM.CDS.NEW) they should all be the same.
 
12) Start RMM on Lpar where this activity is taking place. 
 
When you bring up RMM(S DFRMM,M=xx), you MAY encounter the following message:


    

   nn EDG2106D JOURNAL AND CONTROL DATA SET DO NOT MATCH - REPLY "C" TO
             CANCEL, "D" TO DISABLE OR "L" TO LOCK
 

     
          Respond either 'D' or 'L', RMM will come up without journaling.
 
  • Run EDGHSKP PARM='BACKUP', Journaling will be re-enabled once you take a new backup of the CDS/Journal and once the journal is cleared, journaling will be enabled: 

    Example:
 

//BACKUP EXEC PGM=EDGHSKP,PARM='BACKUP'
//MESSAGE  DD DISP=SHR,DSN=messages
//SYSPRINT DD SYSOUT=*
//BACKUP   DD DISP=(,CATLG),DSN=?RMM.CDS.BKUP(+1),UNIT=SYSALLDA
//         RECFM=VB,LRECL=9216,BLKSIZE=0,SPACE=(CYL,(xx,yy))
//JRNLBKUP DD DISP=(,CATLG),
//         DSN=?RMM.JRNL.BKUP(+1),UNIT=SYSALLDA
//         RECFM=VB,LRECL=9248,BLKSIZE=0,BUFNO=30,SPACE=(CYL,(xx,yy))
 
  
 
13) Verify control data set:
//* -------------------------------------------------------------- *
//* VERIFIES CONTROL DATA SET INFORMATION FORMAT                   *
//* -------------------------------------------------------------- *
//VERIFY   EXEC PGM=EDGUTIL,PARM='VERIFY'
//MASTER   DD DISP=SHR,DSN=DFRMM.CDS,AMP=('BUFND=50,BUFNI=50')
//SYSPRINT DD SYSOUT=*
//SORTWK01 DD UNIT=SYSALLDA,SPACE=(CYL,(45,10))
//SORTWK02 DD UNIT=SYSALLDA,SPACE=(CYL,(45,10))
//SORTWK03 DD UNIT=SYSALLDA,SPACE=(CYL,(45,10))
//SYSIN    DD DUMMY
 

 
14) Verify the output with output created in Step 4.
 
15) Run a test to create a tape, read a tape and verify RMM is managing and recording the tape data set correctly.
 
16) Bring up RMM on remaining Lpars sharing the CDS, release HSM, any other tasks you may have held, including automation, batch scheduling and tape processing.  
 
17) Update any of your disaster recovery procedures if you are re-defining the CDS at DR as it is now in EF format. 
 
 

Additional Information

NOTE:

Once the REORG process completes, there is little or no room for insertion of records into the existing CI/CA structure. Therefore, each new record has a great likelihood of causing a split and degrading performance. While splits for insertions are normal, requiring one to be made for nearly every record update is a performance hit.

After a reorg, the CDS is compressed and there is an apparent decrease in the percentage of used space. However, activity in the next several days results in a rapid increase in the percent full for the CDS files as record insertions cause CA/CI splits. Doing frequent reorgs compresses the file about the time it is becoming a mature, efficient data set. CDS files typically settle in around 80% used when allocated at the correct size. The rapid increase in used space is to be expected after a reorg but the level will stabilize after a few days of normal processing. If it stabilizes at a value over 90%, consider allocating a larger CDS.

 

Document Location

Worldwide

[{"Type":"MASTER","Line of Business":{"code":"LOB56","label":"Z HW"},"Business Unit":{"code":"BU070","label":"IBM Infrastructure"},"Product":{"code":"SWG90","label":"z\/OS"},"ARM Category":[{"code":"a8m0z0000000AGPAA2","label":"DFSMS-\u003ERMM-\u003ECDS Recovery"}],"ARM Case Number":"TS016635902","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]

Document Information

Modified date:
15 December 2025

UID

ibm17165095