VSAMREC CLIST

VSAMREC is the name of a list command and line operator that can be issued from the ISMF Data Set List panel. Use the ISMF data set list feature to group VSAM spheres based on user-defined selection criteria.

Issue VSAMREC from the ISMF data set list to call CICS® VR panels, allowing you to create a recovery job for individual or all data sets in the list. See CICS VR User's Guide for more information.

VSAMREC is actually an alias for data set DWWRECVR. VSAMREC is a member of the SDWWCNTL data set. Before VSAMREC can be started, you must tailor the VSAMREC member to match your specific installation.

VSAMREC must be allocated to the SYSPROC ddname. You must either allocate the entire SDWWCNTL PDS to the SYSPROC ddname (possibly in the TSO/E logon procedure) or you must copy the VSAMREC member to a PDS that is already allocated to the SYSPROC ddname. Enter the TSO ISRDDN command to display all ddnames allocated to your current TSO session. See z/OS® TSO/E CLISTs for more information.

The VSAMREC CLIST, Figure 1, verifies that it was issued as an ISMF line operator or by list command from the ISMF data set list panel. The VSAMREC CLIST then allocates the data sets required for the execution of the CICS VR dialog interface. Edit these data set allocations to match your CICS VR installation. Refer to the comments before each allocation for further description. If you have included these allocations in your TSO/E logon procedure, you can remove or “comment-out” these allocations in the VSAMREC CLIST. The VSAMREC CLIST then starts the CICS VR dialog interface, passing the appropriate variables to indicate if it was started as a line operator or list command.

If you want to capture tracing and diagnostic information while executing the CICS VR dialog, add allocations for the DWWDUMP and DWWDMSG ddnames to VSAMREC. The DCB for these data sets is (RECFM=VBA,LRECL=84,BLKSIZE=3120).

Start of change
Figure 1. VSAMREC CLIST
PROC 0  TEST(NO) LIST(NO)
/**********************************************************************/
/*                                                                    */
/*  $MAC(DWWRECVR) COMP(P3001): INVOKE CICSVR TO RECOVER THE          */
/*                              REQUESTED DATA SET(S)                 */
/*                                                                    */
/* @BANNER_START                                                      */
/* Licensed Materials - Property of IBM                               */
/*                                                                    */
/* 5655-P30 DWWRECVR                                                  */
/*                                                                    */
/* (C) Copyright IBM Corp. 2002, 2008                                 */
/*                                                                    */
/*                                                                    */
/*   DESCRIPTIVE NAME: CLIST TO INVOKE THE CICSVR DIALOG              */
/*                     FROM THE ISMF DATA SET LIST PANEL.             */
/*                                                                    */
/*   ALIAS:            VSAMREC IS THE ALIAS FOR THE DWWRECVR CLIST.   */
/*                                                                    */
/*   STATUS: CICS VSAM RECOVERY VERSION 4 RELEASE 2                   */
/*                                                                    */
/*   FUNCTION:                                                        */
/*     THIS CLIST CAN BE INVOKED AS A LINE OPERATOR OR LIST COMMAND.  */
/*     IT WILL INVOKE THE CICSVR ISPF INTERFACE TO CREATE A RECOVERY  */
/*     JOB FOR THE SELECTED VSAM DATA SETS.                           */
/*       1. DISABLE ATTENTION DURING CICSVR DIALOG EXECUTION          */
/*       2. ISSUE A CONTROL STATEMENT TO SET RUN OPTIONS              */
/*       3. ISSUE ISPF VGET TO OBTAIN REQUIRED VARIABLES FROM SHARED  */
/*          VARIABLE POOL:                                            */
/*            - APPLICATION ID                     &ZAPPLID           */
/*            - CMD/LINEOP INDICATOR               &DGTTYPEC          */
/*            - NAME OF COMMAND                    &DGTCMDNM          */
/*       4. ENSURE VSAMREC IS INVOKED ONLY FROM DATA SET APPLICATION  */
/*       5. DISPLAY VARIABLE NAMES AND VALUES THEN RETURN IF TEST MODE*/
/*       6. ALLOCATE REQUIRED DATA SETS FOR THE CICSVR ISPF INTERFACE */
/*       7. INVOKE CICSVR PASSING THE APPROPRIATE PARAMETERS          */
/*       8. FREE ALL ALLOCATIONS MADE FOR THE CICSVR ISPF INTERFACE   */
/*       9. PLACE VARIABLES AND MESSAGES INTO SHARED VARIABLE POOL    */
/*                                                                    */
/*   INPUT:                                                           */
/*           1-TEST PARAMETER: &TEST                                  */
/*           2-LIST PARAMETER: &LIST                                  */
/*           3-COMMAND NAME: &DGTCMDNM                                */
/*           4-ISMF SHARED POOL VARIABLES: &XXXXXXXX                  */
/*                                                                    */
/*   OUTPUT:                                                          */
/*           TEST MODE: ALL CLIST VARIABLES                           */
/*           NON TEST MODE:                                           */
/*             RCSAVE:                                                */
/*               0        = FUNCTION PERFORMED                        */
/*               4        = VSAM SPHERE NOT FOUND                     */
/*               >4       = FUNCTION FAILED                           */
/*             SHORT ERROR MESSAGE           (DGTCSMSG)               */
/*             LONG ERROR MESSAGE            (DGTCLMSG)               */
/*             CONTINUE LIST PROCESSING FLAG (DGTCONTN)               */
/*             LINEOP HISTORY UPDATE FLAG    (DGTLISTC)               */
/*                                                                    */
/*   MESSAGES:                                                        */
/*        SHORT MESSAGE: "VSAMREC ERROR"                              */
/*        LONG MESSAGE:                                               */
/*            "CICSVR DIALOG COMPLETED, RC = X"                       */
/*              - IF ERROR > 4 FROM CICSVR DIALOG EXECUTION           */
/*            "ALLOCATE OF DDNAME XXXXXXXX FAILED WITH RC= XX"        */
/*              - IF ERROR FROM ALLOCATIONS OF DATA SETS FOR CICSVR   */
End of change
/*                                                                    */
/*   PROCESSOR: TSO CLIST PROCESSOR                                   */
/*                                                                    */
/*   NOTE: PLEASE UPDATE THE CICSVR DATA SET ALLOCATIONS TO REFLECT   */
/*         YOUR CICSVR INSTALLATION.  YOU MAY REMOVE OR               */
/*         "COMMENT-OUT" THESE ALLOCATIONS IF THEY ARE INCLUDED IN    */
/*         YOUR ISPF LOGON PROCEDURE.                                 */
/*                                                                    */
/*   CHANGE ACTIVITY:                                                 */
/**********************************************************************/
SET &DGTCSMSG = &STR()
SET &DGTCLMSG = &STR()

/**********************************************************************/
/* DISABLE ATTENTION KEY SO CICSVR DIALOG WILL TERMINATE NORMALLY     */
/**********************************************************************/

ATTN +
  DO
    RETURN
  END
/**********************************************************************/
/* SET THE RUN OPTIONS VIA CONTROL STATEMENT                          */
/**********************************************************************/

IF &STR(&LIST) EQ &STR(YES) THEN +
      CONTROL LIST MSG  NOPROMPT NOFLUSH
  ELSE +
    CONTROL NOLIST NOMSG  NOPROMPT NOFLUSH

/**********************************************************************/
/* GET NEEDED VARIABLES FROM SHARED VARIABLE POOL                     */
/**********************************************************************/

ISPEXEC  VGET (ZAPPLID DGTTYPEC DGTCMDNM) SHARED
SET &DGTCMDNM = &STR(VSAMREC)
/**********************************************************************/
/* ENSURE VSAMREC IS INVOKED ONLY FROM DATA SET APPLICATION           */
/**********************************************************************/

IF &ZAPPLID NE &STR(DGT1) THEN +
  DO
    IF &SUBSTR(1:3,&ZAPPLID) NE &STR(DGT) THEN +
      DO                                            /* NOT ISMF */
        SET &COMMAND = &STR(VSAMREC )
        ISPEXEC SETMSG MSG(DGTSX000)
        SET &RCSAVE = 8
        GOTO TERM
      END                                        /* NOT DATA SET LIST */
    ELSE +
      DO
        ISPEXEC GETMSG MSG(DGTSX001) SHORTMSG(SHMSG)
        ISPEXEC GETMSG MSG(DGTSX001) LONGMSG(LONGMSG)
        SET &DGTCONTN = &STR(N)
        SET &DGTLISTC = &STR(N)
        SET &RCSAVE = 8
        GOTO  ENDCLIST
      END
  END

/**********************************************************************/
/* DISPLAY VARIABLE VALUES AND RETURN IF TEST MODE IS INVOKED         */
/**********************************************************************/
IF &STR(&TEST) EQ &STR(YES) THEN +
  DO
    WRITE
    WRITE    CLIST "VSAMREC" RECEIVED CONTROL.
    WRITE
    WRITE          VARIABLE    CURRENT
    WRITE            NAME       VALUE
    WRITE          ________    _______
    WRITE          ZAPPLID     &ZAPPLID
    WRITE          DGTCMDNM    &DGTCMDNM
    WRITE          DGTTYPEC    &DGTTYPEC
    WRITE
    ISPEXEC GETMSG MSG(DGTSX002) SHORTMSG(SHMSG)
    ISPEXEC GETMSG MSG(DGTSX002) LONGMSG(LONGMSG)
    IF &DGTTYPEC = &STR(C) THEN +
      DO
        SET &DGTCONTN = &STR(N)
        SET &DGTLISTC = &STR(N)
      END
    SET &RCSAVE = 8
    GOTO  ENDCLIST
  END

/**********************************************************************/
/* THE FOLLOWING WILL ALLOCATE THE REQUIRED DATA SETS FOR THE         */
/* INVOCATION OF THE CICSVR ISPF INTERFACE.  PLEASE UPDATE THE CICSVR */
/* DATA SET ALLOCATIONS TO REFLECT YOUR CICSVR INSTALLATION.  YOU     */
/* MAY REMOVE OR "COMMENT-OUT" THESE ALLOCATIONS IF THEY ARE INCLUDED */
/* IN YOUR ISPF LOGON PROCEDURE.                                      */
/**********************************************************************/
 ISPEXEC CONTROL ERRORS RETURN       /* RETURN ISPF ERRORS TO CLIST   */

 ISPEXEC VGET ZUSER SHARED           /* GET USERID                    */
 ISPEXEC VGET ZPFSHOW PROFILE        /* CHANGE PFSHOW SO THAT THE     */
 SET PFSAVE = &ZPFSHOW               /* PF-KEYS ARE DISPLAYED DURING  */
 SET PFCMD  = &STR(PFSHOW ON)        /* THE CICSVR DIALOG INTERFACE   */
 ISPEXEC DISPLAY COMMAND(PFCMD)
 ISPEXEC LIBDEF ISPFILE
 ISPEXEC LIBDEF ISPPLIB
 ISPEXEC LIBDEF ISPMLIB
 ISPEXEC LIBDEF ISPTLIB
 FREE FI(DWWCON1,DWWCON2,DWWCON3,DWWMSG,DWWPRINT,MYFILE,ISPFILE)
 FREE FI(DWWSLIB,DWWLLIB)
 FREE FI(DWWLOAD)
/* ---------------------------------------------------- DWWCON1  */
/* ------------------------------------------------------------- */
/*  CICSVR RCDS DATA SET:                                        */
/*  CHANGE 'DWW.DWWCON1' TO MATCH YOUR CICSVR INSTALLATION.      */
/* ------------------------------------------------------------- */
 ALLOC FI(DWWCON1) DA('DWW.DWWCON1') SHR
 SET RCSAVE = &LASTCC
 IF &RCSAVE ^= 0 THEN DO
    SET DDNAME = DWWCON1
    GOTO SETMSG3
 END

/* ---------------------------------------------------- DWWCON2  */
/* ------------------------------------------------------------- */
/*  CICSVR RCDS DATA SET:                                        */
/*  CHANGE 'DWW.DWWCON2' TO MATCH YOUR CICSVR INSTALLATION.      */
/* ------------------------------------------------------------- */ 
 ALLOC FI(DWWCON2) DA('DWW.DWWCON2') SHR
 SET RCSAVE = &LASTCC
 IF &RCSAVE ^= 0 THEN DO
    SET DDNAME = DWWCON2
    GOTO SETMSG3
 END

/* ---------------------------------------------------- DWWCON3  */
/* ------------------------------------------------------------- */
/*  CICSVR RCDS DATA SET:                                        */
/*  CHANGE 'DWW.DWWCON3' TO MATCH YOUR CICSVR INSTALLATION.      */
/* ------------------------------------------------------------- */
 ALLOC FI(DWWCON3) DA('DWW.DWWCON3') SHR
 SET RCSAVE = &LASTCC
IF &RCSAVE ^= 0 THEN DO
    SET DDNAME = DWWCON3
    GOTO SETMSG3
 END

/* ---------------------------------------------------- DWWMSG   */
/*  CICSVR MESSAGE DATA SET                                      */
/*  THE DWWMSG DATA SET CONTAINS ALL MESSAGES WRITTEN DURING THE */
/*  EXECUTION OF THE CICSVR ISPF INTERFACE.                      */
/*  CHANGE 'DWW.&ZUSER..DWWMSG' TO MATCH YOUR CICSVR             */
/*  INSTALLATION.                                                */
/* ------------------------------------------------------------- */
 ALLOC FI(DWWMSG) DA('DWW.&ZUSER..DWWMSG') SHR
 SET RCSAVE = &LASTCC
 IF &RCSAVE ^= 0 THEN DO
    SET DDNAME = DWWMSG
     GOTO SETMSG3
 END

/* ---------------------------------------------------- DWWPRINT */
/*  CICSVR REPORT DATA SET                                       */
/*  THE DWWPRINT DATA SET CONTAINS ALL REPORTS WRITTEN DURING    */
/*  THE EXECUTION OF THE CICSVR ISPF INTERFACE.                  */
/*  CHANGE 'DWW.&ZUSER..DWWPRINT' TO MATCH YOUR CICSVR           */
/*  INSTALLATION.                                                */
/* ------------------------------------------------------------- */
 ALLOC FI(DWWPRINT) DA('DWW.&ZUSER..DWWPRINT') SHR
 SET RCSAVE = &LASTCC
 IF &RCSAVE ^= 0 THEN DO
    SET DDNAME = DWWPRINT
     GOTO SETMSG3
 END

/* ---------------------------------------------------- ISPLLIB  */
/*  LOAD LIBRARY:                                                */
/*  CHANGE 'DWW.SDWWLOAD' AND 'DWW.SDWWLENU' TO MATCH YOUR       */
/*  CICSVR INSTALLATION.                                         */
/* ------------------------------------------------------------- */
 ISPEXEC LIBDEF ISPLLIB DATASET ID('DWW.SDWWLOAD', +
 'DWW.SDWWLENU')

/* ---------------------------------------------------- DWWLOAD  */
/*  CICSVR LOAD LIBRARY:                                         */
/*  CHANGE 'DWW.SDWWLOAD' AND 'DWW.SDWWLENU' TO MATCH YOUR       */
/*  CICSVR INSTALLATION.                                         */
/*---------------------------------------------------------------*/
 SET &LIBS = &STR('DWW.SDWWLOAD')
 SET &DSN = &STR('DWW.SDWWLENU')
 SET &LIBS = &STR(&LIBS , &DSN)
 ALLOC FI(DWWLOAD) DA(&LIBS) SHR
 SET RCSAVE = &LASTCC
 IF &RCSAVE ^= 0 THEN DO
    SET DDNAME = DWWLOAD
    GOTO SETMSG3
 END

/* ---------------------------------------------------- DWWLLIB  */
/*  CICSVR LOAD LIBRARY:                                         */
/*  CHANGE 'DWW.SDWWLOAD', 'DWW.SDWWLENU' AND 'DWW.DWWEXLD'      */
/*  TO MATCH YOUR CICSVR INSTALLATION.                           */
/* ------------------------------------------------------------- */
 SET &LIBS = &STR('DWW.SDWWLOAD')
 SET &DSN1 = &STR('DWW.SDWWLENU')
 SET &DSN2 = &STR('DWW.DWWEXLD')
 SET &LIBS = &STR(&LIBS , &DSN1 , &DSN2)
 ALLOC FI(DWWLLIB) DA(&LIBS) SHR
 SET RCSAVE = &LASTCC
 IF &RCSAVE ^= 0 THEN DO
    SET DDNAME = DWWLLIB
    GOTO SETMSG3
 END

/* ---------------------------------------------------- ISPPLIB  */
/*  PANEL LIBRARY:                                               */
/*  CHANGE 'DWW.SDWWPENU' TO MATCH YOUR CICSVR INSTALLATION.     */
/* ------------------------------------------------------------- */
 ISPEXEC LIBDEF ISPPLIB DATASET ID('DWW.SDWWPENU')
 SET RCSAVE = &LASTCC
 IF &RCSAVE ^= 0 THEN DO
    SET DDNAME = ISPPLIB
    GOTO SETMSG3
 END

/* ---------------------------------------------------- ISPMLIB  */
/*  MESSAGE LIBRARY:                                             */
/*  CHANGE 'DWW.SDWWMENU' TO MATCH YOUR CICSVR INSTALLATION.     */
/* ------------------------------------------------------------- */
 ISPEXEC LIBDEF ISPMLIB DATASET ID('DWW.SDWWMENU')
 SET RCSAVE = &LASTCC
 IF &RCSAVE ^= 0 THEN DO
    SET DDNAME = ISPMLIB
    GOTO SETMSG3
 END

/* ---------------------------------------------------- ISPTLIB  */
/*  TABLE LIBRARY:                                               */
/*  CHANGE 'DWW.SDWWTENU' TO MATCH YOUR CICSVR INSTALLATION.     */
/* ------------------------------------------------------------- */
 ISPEXEC LIBDEF ISPTLIB DATASET ID('DWW.SDWWTENU')
 SET RCSAVE = &LASTCC
 IF &RCSAVE ^= 0 THEN DO
    SET DDNAME = ISPTLIB
    GOTO SETMSG3
 END

/* ---------------------------------------------------  DWWSLIB  */
/*  CICSVR SKELETON LIBRARY:                                     */
/*  CHANGE 'DWW.&ZUSER..ISPFILE' AND 'DWW.SDWWSENU' TO MATCH     */
/*  YOUR CICSVR INSTALLATION.                                    */
/* ------------------------------------------------------------- */
 SET &LIBS = &STR('DWW.&ZUSER..ISPFILE')
 SET &DSN  = &STR('DWW.SDWWSENU')
 SET &LIBS = &STR(&LIBS , &DSN)
 ALLOC FI(DWWSLIB) DA(&LIBS) SHR
 SET RCSAVE = &LASTCC
 IF &RCSAVE ^= 0 THEN DO
    SET DDNAME = DWWSLIB
    GOTO SETMSG3
 END

/* ----------------------------------------- MYFILE AND ISPFILE  */
/*  FILE TAILORING OUTPUT AND YOUR SAVED JCL SKELETON:           */
/*  CHANGE 'DWW.&ZUSER..ISPFILE' TO MATCH YOUR CICSVR            */
/*  INSTALLATION.                                                */
/* ------------------------------------------------------------- */
 ALLOC FI(MYFILE) DA('DWW.&ZUSER..ISPFILE') SHR
 SET RCSAVE = &LASTCC
 IF &RCSAVE ^= 0 THEN DO
    SET DDNAME = MYFILE
    GOTO  SETMSG3
 END

ALLOC FI(ISPFILE) DA('DWW.&ZUSER..ISPFILE') SHR
 SET RCSAVE = &LASTCC
 IF &RCSAVE ^= 0 THEN DO
    SET DDNAME = ISPFILE
    GOTO  SETMSG3
 END

/**************************************************************/
/*  BASED ON IF VSAMREC WAS ISSUED AS A LINE OP OR A LIST     */
/*  COMMAND, THE APPROPRIATE CICSVR PARAMETER IS SET          */
/**************************************************************/

 IF &DGTTYPEC = C THEN  +
   SET &PARMVAL = &STR(ISMFLCMD) /* THIS IS A LIST COMMAND */
 IF &DGTTYPEC = L THEN  +
   SET &PARMVAL = &STR(ISMFLIOP) /* THIS IS A LINE OPERATOR */

/**************************************************************/
/*  EXECUTE CICSVR AND SET RETURN CODE                        */
/**************************************************************/

 ISPEXEC SELECT PGM(DWWPM) PARM(&PARMVAL) +
   NEWAPPL(DWW) PASSLIB

 SET RCSAVE = &LASTCC
 SET LONGMSG = &STR(CICSVR DIALOG COMPLETED WITH RC = &RCSAVE)
 GOTO FINISH

/**************************************************************/
/*  SET ALLOCATION ERROR MESSAGE IF IT OCCURRED               */
/**************************************************************/
 SETMSG3:   +
  SET LONGMSG = &STR(ALLOCATE OF DDNAME &DDNAME FAILED WITH RC= &RCSAVE)

/**************************************************************/
/*  CLEANUP ALL CICSVR DATA SET ALLOCATIONS                   */
/**************************************************************/

 FINISH:    +
 ISPEXEC LIBDEF ISPFILE
 ISPEXEC LIBDEF ISPPLIB
 ISPEXEC LIBDEF ISPMLIB
 ISPEXEC LIBDEF ISPTLIB
 ISPEXEC LIBDEF ISPLLIB           /** ONLY IF NOT IN LOGON PROC **/
 FREE FI(DWWCON1,DWWCON2,DWWCON3,DWWMSG,DWWPRINT,MYFILE,ISPFILE)
 FREE FI(DWWSLIB,DWWLLIB)
 FREE FI(DWWLOAD)
 IF &RCSAVE NE 0 THEN    +
    SET SHMSG = &STR(&DGTCMDNM ERROR)
 SET PFCMD = &STR(PFSHOW &PFSAVE) /* RESTORE PFKEY DISPLAY TO     */
 ISPEXEC DISPLAY COMMAND(PFCMD)   /*   PREVIOUS STATUS            */

/**************************************************************/
/*  IF VSAMREC ISSUED AS A LIST COMMAND                       */
/*    DON'T CONTINUE PROCESSING EACH ITEM IN THE LIST         */
/*    DON'T UPDATE LINE OP VALUE                              */
/**************************************************************/
     IF &DGTTYPEC EQ &STR(C) THEN +
    DO
     SET &DGTCONTN = &STR(N)
     SET &DGTLISTC = &STR(N)
    END

/**************************************************************/
/*  SET SHORT AND LONG MESSAGE FOR ISMF DATA SET LIST         */
/**************************************************************/

 ENDCLIST: +
   SET &DGTCSMSG = &STR(&SHMSG)
   SET &DGTCLMSG = &STR(&LONGMSG)
   ISPEXEC VPUT (DGTCONTN DGTLISTC DGTCSMSG DGTCLMSG) SHARED
 TERM:     +
    EXIT CODE(&RCSAVE)