Preparing for Automated Recovery

Perform the following steps to prepare for Automated Recovery.

Procedure

  1. At CICS® cold start, the RCDS must not contain any incomplete CICS backout fail requests. This is because backout failed entries that remain in RCDS during a previous CICS run blocks new CICS Alerts for the same VSAM data sets, if any occur after the cold start. Use the CICS VR CICS Backout Failed sphere list panel to deregister any incomplete requests before CICS cold start. There might also be security considerations. See CICS VR security.
  2. Ensure that the default for job generation is set to the value that you require. CBAUTO must be set to YES for automated job generation. CBAUTO must be set to NO for manual job generation. The current setting for CBAUTO can be determined as described in Defining a CICS VR general control parameter. If CBAUTO is set to YES, the automatically generated job is put into the data set defined by the ISPFILE DD statement in DWWCBRRY. The job is then automatically submitted. In the DWWCBRRY sample included with the product, the ISPFILE DD statement defines a temporary data set which is deleted after the job is submitted. Change the current default setting for CBAUTO using the Administrate menu from the main menu, as described in the CICS VSAM Recovery User's Guide.
  3. Add resource definitions to the CICS CSD. The DWWCSD sample as shown in the figure The DFHCSDUP job sample to create resource definitions for Automated Recovery which creates two resource groups, DWWCICVR and DWWEXCI. Before using this sample job replace the default parameter values with the values of your CICS installation.
    1. Install the group DWWCICVR, which contains the definitions needed for CICS VR Automated Recovery operation. The recommended way is to add the group to the current grouplist for the CICS region.
    2. If the CICS region does not have a EXCI generic connection defined, install the group DWWEXCI. This group contains definitions for the EXCI generic connection and session needed. The installation of group DWWEXCI fails if there is already an EXCI generic connection installed. If you do add this second group you need a DELETE GROUP(DWWEXCI) at the start.
  4. Check that the CICS initialization parameter IRCSTRT is set to YES. This is a requirement for CICS EXCI.
  5. Enable the DWWXFCBF exit program at the XFCBFAIL exit point. The exit is enabled in one of three ways:
    • CICS VR provides an enable program called DWWEFCBF which can be run at CICS startup through a program list table (PLT). A sample list DWWPLTI1 is provided in the CICS VR SDWWCNTL library, and is shown in the DFHCSDUP job sample to create resource definitions for Automated Recovery. This sample list specifies that the DWWEFCBF program must be run in the first PLT phase of CICS start up. The list is included at initialization time by using the PLTPI=I1 system initialization parameter.
    • The exit program itself, DWWXFCBF, can be specified to be enabled by CICS using the TBEXITS=(,,DWWXFCBF) CICS initialization parameter.
    • The enable program DWWEFCBF can be run after CICS has initialized using the CVRE transaction or by using EXEC CICS LINK.
      Note: To disable DWWXFCBF dynamically when CICS is up and running run CICS transaction CVRD or EXEC CICS LINK to program DWWDFCBF.
  6. Add the CICS VR load library SDWWLOAD to the CICS RPL library list.
  7. Ensure that the proper CICS EXCI library SDFHEXCI is available to CICS VR generated jobs. This can be done in one of two :
    • Include your CICS EXCI library SDFHEXCI in the proper LNKLST list in your PARMLIB. A default version of the EXCI options table DFHXCOPT is shipped in SDFHEXCI. If SDFHEXCI is included in the link list, the default table is used automatically. If you need DFHXCOPT to use modified EXCI options, you must include the library with your DFHXCOPT table in the link list, in front of SDFHEXCI library, to ensure your version of the table is picked up.
    • Alternatively, you can specify your CICS SDFHEXCI library in STEPLIB DD statements of CICS VR-shipped skeletons. For that you must uncomment the STEPLIB DD statements in the skeletons that CICS VR uses for job generation, and change the value of the DSN parameters to the proper name of the SDFHEXCI library on your CICS installation. It is recommended that you create your own private skeleton library, copy the DWWFIMNG, DWWPUJ and DWWRPUJ members from the CICS VR SDWWSENU library into your library, edit them, and include your library in CICS VR CLIST as the first in the ISPSLIB concatenation with the SDWWSENU library.
  8. Modify the DWWCBINF, DWWCBRRY and DWWCBRRG jobs according to the installation requirements. Details of possible customization are included in the jobs themselves.
    The following started tasks are required for Automated recovery:
    • DWWCBINF
    • DWWCBRRY
    • DWWCBRRG
    Note: Normally, the started task DWWCBRRG does not run if CICS signals that Forward Recovery is required. However, CICS might signal that Reorganization is required, and so DWWCBRRG must be set up in advance to be ready for use.
    Since the source JCL for these started tasks are jobs, the members containing these jobs must be parts of a data set in the IEFPDSI DD or the IEFJOBS DD concatenation of the Master JCL MSTJCLxx. It is recommended that a new data set is defined in MSTJCLxx. The IEFJOBS DD statement must point to this new data set. The data set must have copies of the DWWCBINF, DWWCBRRY and DWWCBRRG jobs from the SDWWCNTL library.
    Note: Further details about setting up started tasks can be found in the section “Understanding the master scheduler job control language” of the z/OS® MVS Initialization and Tuning Reference.
  9. If RACF® or a similar security product is in place, and you are using CICS VR automated recovery, ensure that the started tasks DWWCBINF, DWWCBRRY and DWWCBRRG are defined in the security product.
    Note: Assign a user ID with appropriate authorization to access the data sets that are explicitly defined using DD statements in the DWWCBINF, DWWCBRRY and DWWCBRRG jobs. The user ID must also be permitted to browse the output from these jobs.
  10. You can activate the CICS VR server during CICS Stage 3 initialization using CICS second phase PLTP1 program DWWSFCBF. DWWSFCBF provides the following:
    • The ability to determine the status of the CICS VR server address space.
    • If the CICS server is inactive, it initiates startup of the server by submitting a job to the internal reader using CICS spool commands. This requires CICS to be running with the SIT parameter SPOOL=YES.
    • A message is issued to CSMT to indicate that a startup of the CICS VR server was initiated.
    The sample PLT table DWWPLTI1 is updated with a new entry for DWWSFCBF after the DFHDELIM entry.

Example

Figure 1. The DWWCSD job sample to create resource definitions for Automated Recovery
//DWWCSD   JOB (ACCOUNT),MSGLEVEL=(1,1),MSGCLASS=H                              
//********************************************************************/         
//* Function:                                                        */         
//*                                                                  */         
//* This is the sample of the DFHCSDUP job to create the resource    */         
//* definitions required for CICSVR automated recovery support.      */         
//* It defines two resource groups:                                  */         
//*    DWWCICVR contains definitions needed for CICSVR operation;    */         
//*    DWWEXCI contains definitions for the EXCI generic connection  */         
//*    and session needed.                                           */         
//* The user must install group DWWCICVR, he is recommended to add   */         
//* group DWWCICVR to his current grouplist for the CICS region.     */         
//* Group  DWWEXCI need only be installed if the user does not       */         
//* have a EXCI generic connection defined. The installation of group*/         
//* DWWEXCI fails if there is already an EXCI generic connection */         
//* installed.                                                       */         
//*                                                                  */         
//* Before using this sample job replace the default parameter       */         
//* values with the values of your CICS installation.                */         
//*                                                                  */         
//********************************************************************/         
//*- - SET SYMBOLIC PARAMETERS                                      -*/         
//*                                                                             
//SETLOAD SET CICSLOAD=CTS510.CICS680.SDFHLOAD ! SDFHLOAD                       
//SETCSD SET DFHCSD=TTCICS3.CICS.DFHCSD        ! CICS CSD                              
//DFHCSDUP EXEC PGM=DFHCSDUP,REGION=4M                                          
//STEPLIB DD DISP=SHR,DSN=&CICSLOAD                                             
//DFHCSD DD DISP=SHR,DSN=&DFHCSD                                                
//SYSPRINT DD SYSOUT=*                                                          
//SYSIN    DD *                                                                 
*                                                                               
  DELETE  GROUP(DWWCICVR)                                                       
*                                                                               
  DEFINE TRANSACTION(CVRD) GROUP(DWWCICVR) PROGRAM(DWWDFCBF)                    
  DESCRIPTION(CICS Server Transaction required by CICSVR)                       
     PROFILE(DFHCICSA)                                                          
*                                                                               
  DEFINE TRANSACTION(CVRE) GROUP(DWWCICVR) PROGRAM(DWWEFCBF)                    
  DESCRIPTION(CICS Server Transaction required by CICSVR)                       
     PROFILE(DFHCICSA)                                                          
*                                                                               
  DEFINE TRANSACTION(CVRX) GROUP(DWWCICVR) PROGRAM(DFHMIRS)                     
  DESCRIPTION(CICS Server Transaction required by CICSVR)                       
     PROFILE(DFHCICSA)                                                          
*                                                                               
* Programs                                                                      
*                                                                               
  DEFINE PROGRAM(DWWAUXCS) GROUP(DWWCICVR) LANGUAGE(ASSEMBLER)                  
  DESCRIPTION(CICS Server Program required by CICSVR)                           
       DATALOCATION(ANY) EXECKEY(USER)                                          
*                                                                               
  DEFINE PROGRAM(DWWDFCBF) GROUP(DWWCICVR) LANGUAGE(ASSEMBLER)                  
  DESCRIPTION(Program to disable CICSVR GLUE at exit point XFCBFAIL)            
       DATALOCATION(ANY) EXECKEY(USER)                                          
*                                                                               
  DEFINE PROGRAM(DWWEFCBF) GROUP(DWWCICVR) LANGUAGE(ASSEMBLER)                  
  DESCRIPTION(Program to enable CICSVR GLUE at exit point XFCBFAIL)             
       DATALOCATION(ANY) EXECKEY(USER)                                          
                                   
*                                                                               
  DEFINE PROGRAM(DWWSFCBF) GROUP(DWWCICVR) LANGUAGE(ASSEMBLER)                  
  DESCRIPTION(Program to issue CICSVR activation request)                       
       DATALOCATION(ANY) EXECKEY(USER)                                          
*                                                                               
  DEFINE PROGRAM(DWWXFCBF) GROUP(DWWCICVR) LANGUAGE(ASSEMBLER)                  
  DESCRIPTION(CICSVR global user exit program for XFCBFAIL)                     
       DATALOCATION(ANY) EXECKEY(CICS) CONCURRENCY(THREADSAFE)                  
*                                                                               
*                                                                               
  DELETE  GROUP(DWWEXCI)                                                        
*                                                                               
  DEFINE CONNECTION(DWWG)       GROUP(DWWEXCI)                                  
  DESCRIPTION(EXCI Generic connection required by CICSVR)                       
    ACCESSMETHOD(IRC)      SINGLESESS(NO)                                       
    PROTOCOL(EXCI)         CONNTYPE(GENERIC)                                    
    DATASTREAM(USER)       RECORDFORMAT(U)        AUTOCONNECT(NO)               
    INSERVICE(YES)         ATTACHSEC(IDENTIFY)                                  
*                                                                               
  DEFINE SESSIONS(DWWG)         GROUP(DWWEXCI)                                  
  DESCRIPTION(EXCI Generic sessions definition required by CICSVR)              
    CONNECTION(DWWG)       PROTOCOL(EXCI)         MAXIMUM(0,0)                  
    RECEIVEPFX(RG)         RECEIVECOUNT(10)                                     
    SENDSIZE(4096)         RECEIVESIZE(4096)                                    
    SESSPRIORITY(0)        AUTOCONNECT(NO)                                      
    BUILDCHAIN(YES)        IOAREALEN(4096,4096)   RELREQ(NO)                    
    DISCREQ(NO)            NEPCLASS(0)                                          
    RECOVOPTION(SYSDEFAULT)                                                     
*                                                                               
/*                                                                              
//                                           
Figure 2. The DWWPLTI1 sample list to execute the DWWEFCBF program in the first PLT phase
***********************************************************************         
*                                                                     *         
* MODULE NAME = DWWPLTI1                                              *         
*                                                                     *         
* DESCRIPTIVE NAME = list of programs to be executed during CICS      *         
*                    system initialization                            *         
*                                                                     *         
*                                                                     *         
* FUNCTION =                                                          *         
*                                                                     *         
*   This list specifies the CICSVR DWWEFCBF program to be executed    *         
*   during CICS TS system initialization in order to enable           *         
*   the CICSVR GLobal User Exit (GLUE) program DWWXFCBF for the File  *         
*   Control backout failure exit XFCBFAIL, if the CICSVR Automated    *         
*   forward recovery / reorganization is used.                        *         
*   This program required system initialization parameter             *         
*   PLTPI=I1.                                                         *         
*                                                                     *         
*                                                                               
*---------------------------------------------------------------------*         

***********************************************************************         
*                                                                               
*                                                                               
   DFHPLT TYPE=INITIAL,SUFFIX=I1                                                
*                                                                               
   DFHPLT TYPE=ENTRY,PROGRAM=DWWEFCBF                                           
*                                                                               
*  Programs specified before the DFHDELIM program  are run              
*  during second initialization stage.                                          
*  Programs should also be defined to CICS by DFHCSDUP or RDO                   
*                                                                               
   DFHPLT TYPE=ENTRY,PROGRAM=DFHDELIM                                           
*                                                                               
*  Programs that should be run in the third initialization                      
*  phase (if any) can be specified below.                                       
*  Programs should also be defined to CICS by DFHCSDUP or RDO                   
*                                                                               
   DFHPLT TYPE=ENTRY,PROGRAM=DWWSFCBF                                           
*                                                                  @L1A         
   DFHPLT TYPE=FINAL                                                            
*                                                                               
   END