Preventing duplicate recovery runs

You can prevent a Forward Recovery job from running, if it is a duplicate of a previously run job.

To prevent the same recovery job from running twice use the Recovery Submission Manager (RSM). The RSM checks whether a recovery job run is or is not required. You can add a step with a call to the RSM to:
  • recovery jobs which have already been stored, and
  • recovery jobs which have not been run, using the CICS® VR ISPF Dialog Interface.
To add an automatic RSM step to the job, check the Prevent duplicate runs field in the CICS® VR forward recovery only window and carry on with the job construction, no further settings are required. The default is Prevent duplicate runs option turned off.
Figure 1. CICS® VR forward recovery parameters window
DWWPPFR3              CICSVR forward recovery only                  
                                                                         
Press Enter to create a job with default values. Or, select one or more  
choices below, and press Enter to override current values.               
                                                                         
                                                                         
  S  Forward-recovery parameters related to:                             
  _  Sequence checking                                                   
  _  VSAM buffer pools                                                   
  _  CICSVR exits                                                        
  _  Selective forward recovery
  /  Prevent duplicate runs   
                              
Command ===>                                                             
 F1=Help    F12=Cancel                                                   
You can also provide a duplicate recovery run prevention in the constructed batch jobs. However, you have to update the job manually by adding an RSM utility step before any restore and Recovery steps:
Figure 2. Sample RSM step structure
//VSAMRRY1 JOB CLASS=A,MSGCLASS=H,REGION=4096K,NOTIFY=&SYSUID,
//             MSGLEVEL=(1,1)                                        
//RSMSTEP   EXEC   PGM=DWWRZ                    
//DWWCON1  DD DISP=SHR,DSN=DWW.DWWCON1.GRPPROD 
//DWWCON2  DD DISP=SHR,DSN=DWW.DWWCON2.GRPPROD 
//DWWCON3  DD DISP=SHR,DSN=DWW.DWWCON3.GRPPROD 
//DWWDUMP  DD     SYSOUT=*                     
//DWWMSG   DD     SYSOUT=*                     
//DWWPRINT DD     SYSOUT=*                     
//DWWIN    DD     *                            
  
    CHECK                   		- 	
       JOBNAME(VSAMRRY1)     		- 	
       SPHERE(USER.KSDS1)   		- 	
       NEWSPHERE(USER.KSDS1.REC) 		- 	
       STARTTIME(07.081/11:00:00)		- 	
       STOPTIME(07.081/20:00:00) 		- 	
       MVSLOGNAME(USER.FILELOG1)		- 	
       RETURNCODE(0) 		 

/* 
//RSMIF    IF RSMSTEP.RC=0 THEN 
//*** RESTORE STEP *** 
//RESTORE  EXEC   PGM=IDCAMS 
... 
//*** RECOVERY STEP *** 
//RECOVERY EXEC   PGM=DWWCO 
... 
//*** ADDITIONAL STEPS *** 
//PRNTVSAM EXEC   PGM=IDCAMS 
... 
//RSMIF ENDIF 
// 
                                                                  

See CICS® VR Implementation Guide and Reference CICS VR commands for the description on the syntax of the CHECK command.