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).
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 */
/* */
/* 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)