Are there any tips for ensuring that RESET INTEGRITY is always run against TPX VSAM files when required

Document ID : KB000026781
Last Modified Date : 14/02/2018
Show Technical Document Details

Description:

Intermittently, the TPX VSAM files (ADMIN1, ADMIN2, NOTES, MAIL, and VIEW) need to be expanded, rebuilt, moved or copied.

Since this is not a regular occurrence, running BATCHINI to RESET INTEGRITY is sometimes overlooked and TPX will get errors.

Are there any suggestions for integrating the RESET INTEGRITY process into our TPX setup so that this is no longer a consideration?

Solution:

One method is to include RESET INTEGRITY as the first step of the TPX started task proc. In this way, it is executed each time that TPX is started.

WARNING: If you run more than one TPX region, the RESET INTEGRITY should only be placed in one of the TPX start task procs and this TPX must be started before any of the other TPX regions is started. If this is not done, one of the other TPX regions could start using the VSAM files before the RESET INTEGRITY is run and this could cause the problem that you are trying to avoid. (INTEGRITY reset may only run when TPX is INACTIVE - EXCLusive ENQueue is required for TPX VSAM databases).

Here is an example of how you might code the procedure to implement this for TPX 5.3 and above:

//TPX1     JOB (acct),'TPX',...
//*                                            
//TPXPROC PROC TPREFIX='TPX.TPX53',  TPX DATASET NAME PREFIX         
//             VNODE=APTPX,           THE TPX APPL MEMBER IN VTAMLST  
//             SMRT=SMRTTEST,         SYSTEM OPTIONS TABLE            
//             ACT=ACTTEST,           APPL CHARACTERISTICS TABLE      
//             PRTB=,                 PRINT DESTINATION TABLE         
//             VMSK=,                 VIRTUAL TERMINAL MASKING TABLE  
//             TMSK=,                 TERMINAL OPTIONS TABLE          
//             PPS=,                  USER PASSTHRU PRINT TABLE       
//             OVAC=,                 OV/MVS APPL CONNECTIVITY TABLE  
//             SAMT=,                 SECURITY ACTION/MESSAGE TABLE   
//             MODETAB=,              MODE TABLE NAME                 
//             DUMP=H,                DUMP SYSOUT CLASS               
//             OUT=H                  LOG AND OTHER SYSOUTS           
//*
//RESET   EXEC PGM=NVISION,                                           
//  PARM=('SMRT=&SMRT','VMSK=&VMSK','ACT=&ACT','VNODE=*BATCH*',        
//           'PPS=&PPS','PRTB=&PRTB','TMSK=&TMSK','OVAC=&OVAC',       
//           'SAMT=&SAMT','MODETAB=&MODETAB'),                        
//            TIME=1440,REGION=5000K,DPRTY=(15,15)                    
//STEPLIB   DD DSN=&TPREFIX..CB0VLOAD,DISP=SHR
//ACLLIB    DD DSN=&TPREFIX..CB0VSCRI,DISP=SHR
//VTAMLST   DD DSN=SYS1.VTAMLST,DISP=SHR                              
//VTAMLIB   DD DSN=SYS1.VTAMLIB,DISP=SHR                              
//XTRACE    DD DSN=&TPREFIX..TRACE,DISP=SHR                           
//PANELS    DD DSN=&TPREFIX..CB0VPENU,DISP=SHR
//ADMIN1    DD DSN=&TPREFIX..ADMIN1,DISP=SHR                          
//ADMIN2    DD DSN=&TPREFIX..ADMIN2,DISP=SHR                          
//NOTES     DD DSN=&TPREFIX..NOTES,DISP=SHR                           
//VIEW      DD DSN=&TPREFIX..VIEW,DISP=SHR                            
//MAIL      DD DSN=&TPREFIX..MAIL,DISP=SHR                            
//SYSUDUMP  DD SYSOUT=&DUMP                                           
//SNAP      DD SYSOUT=&DUMP                                           
//LOG       DD SYSOUT=&OUT
//SYSIN DD *                                                         
RESET INTEGRITY (ADMIN1 ADMIN2 NOTES MAIL VIEW)                      
//*
//TPX     EXEC PGM=NVISION,                                           
//  PARM=('SMRT=&SMRT','VMSK=&VMSK','ACT=&ACT','VNODE=&VNODE',        
//           'PPS=&PPS','PRTB=&PRTB','TMSK=&TMSK','OVAC=&OVAC',       
//           'SAMT=&SAMT','MODETAB=&MODETAB'),                        
//            TIME=1440,REGION=5000K,DPRTY=(15,15)
//STEPLIB   DD DSN=&TPREFIX..CB0VLOAD,DISP=SHR
//ACLLIB    DD DSN=&TPREFIX..CB0VSCRI,DISP=SHR
//VTAMLST   DD DSN=SYS1.VTAMLST,DISP=SHR                              
//VTAMLIB   DD DSN=SYS1.VTAMLIB,DISP=SHR                              
//XTRACE    DD DSN=&TPREFIX..TRACE,DISP=SHR                           
//PANELS    DD DSN=&TPREFIX..CB0VPENU,DISP=SHR                        
//ADMIN1    DD DSN=&TPREFIX..ADMIN1,DISP=SHR                          
//ADMIN2    DD DSN=&TPREFIX..ADMIN2,DISP=SHR                          
//NOTES     DD DSN=&TPREFIX..NOTES,DISP=SHR                           
//VIEW      DD DSN=&TPREFIX..VIEW,DISP=SHR                            
//MAIL      DD DSN=&TPREFIX..MAIL,DISP=SHR                            
//SYSUDUMP  DD SYSOUT=&DUMP                                           
//SNAP      DD SYSOUT=&DUMP                                           
//LOG       DD SYSOUT=&OUT
//         PEND                        END OF TPX PROC  
//*
//START    EXEC TPXPROC,SMRT=SMRTPROD,ACT=ACTPROD
 
Version for TPX 5.2 with old naming conventions:
 
//TPX1     JOB (acct),'TPX',...
//*                                            
//TPXPROC PROC TPREFIX='TPX.TPX52',  TPX DATASET NAME PREFIX         
//             VNODE=APTPX,           THE TPX APPL MEMBER IN VTAMLST  
//             SMRT=SMRTTEST,         SYSTEM OPTIONS TABLE            
//             ACT=ACTTEST,           APPL CHARACTERISTICS TABLE      
//             PRTB=,                 PRINT DESTINATION TABLE         
//             VMSK=,                 VIRTUAL TERMINAL MASKING TABLE  
//             TMSK=,                 TERMINAL OPTIONS TABLE          
//             PPS=,                  USER PASSTHRU PRINT TABLE       
//             OVAC=,                 OV/MVS APPL CONNECTIVITY TABLE  
//             SAMT=,                 SECURITY ACTION/MESSAGE TABLE   
//             MODETAB=,              MODE TABLE NAME                 
//             DUMP=H,                DUMP SYSOUT CLASS               
//             OUT=H                  LOG AND OTHER SYSOUTS           
//*
//RESET   EXEC PGM=NVISION,                                           
//  PARM=('SMRT=&SMRT','VMSK=&VMSK','ACT=&ACT','VNODE=*BATCH*',        
//           'PPS=&PPS','PRTB=&PRTB','TMSK=&TMSK','OVAC=&OVAC',       
//           'SAMT=&SAMT','MODETAB=&MODETAB'),                        
//            TIME=1440,REGION=5000K,DPRTY=(15,15)                    
//STEPLIB   DD DSN=&TPREFIX..LOADLIB,DISP=SHR                         
//ACLLIB    DD DSN=&TPREFIX..ACLLIB,DISP=SHR                          
//VTAMLST   DD DSN=SYS1.VTAMLST,DISP=SHR                              
//VTAMLIB   DD DSN=SYS1.VTAMLIB,DISP=SHR                              
//XTRACE    DD DSN=&TPREFIX..TRACE,DISP=SHR                           
//PANELS    DD DSN=&TPREFIX..PANELEN,DISP=SHR                         
//          DD DSN=&TPREFIX..PANELCU,DISP=SHR                         
//ADMIN1    DD DSN=&TPREFIX..ADMIN1,DISP=SHR                          
//ADMIN2    DD DSN=&TPREFIX..ADMIN2,DISP=SHR                          
//NOTES     DD DSN=&TPREFIX..NOTES,DISP=SHR                           
//VIEW      DD DSN=&TPREFIX..VIEW,DISP=SHR                            
//MAIL      DD DSN=&TPREFIX..MAIL,DISP=SHR                            
//SYSUDUMP  DD SYSOUT=&DUMP                                           
//SNAP      DD SYSOUT=&DUMP                                           
//LOG       DD SYSOUT=&OUT
//SYSIN DD *                                                         
RESET INTEGRITY (ADMIN1 ADMIN2 NOTES MAIL VIEW)                      
//*
//TPX     EXEC PGM=NVISION,                                           
//  PARM=('SMRT=&SMRT','VMSK=&VMSK','ACT=&ACT','VNODE=&VNODE',        
//           'PPS=&PPS','PRTB=&PRTB','TMSK=&TMSK','OVAC=&OVAC',       
//           'SAMT=&SAMT','MODETAB=&MODETAB'),                        
//            TIME=1440,REGION=5000K,DPRTY=(15,15)                    
//STEPLIB   DD DSN=&TPREFIX..LOADLIB,DISP=SHR                         
//ACLLIB    DD DSN=&TPREFIX..ACLLIB,DISP=SHR                          
//VTAMLST   DD DSN=SYS1.VTAMLST,DISP=SHR                              
//VTAMLIB   DD DSN=SYS1.VTAMLIB,DISP=SHR                              
//XTRACE    DD DSN=&TPREFIX..TRACE,DISP=SHR                           
//PANELS    DD DSN=&TPREFIX..PANELEN,DISP=SHR                         
//          DD DSN=&TPREFIX..PANELCU,DISP=SHR                         
//ADMIN1    DD DSN=&TPREFIX..ADMIN1,DISP=SHR                          
//ADMIN2    DD DSN=&TPREFIX..ADMIN2,DISP=SHR                          
//NOTES     DD DSN=&TPREFIX..NOTES,DISP=SHR                           
//VIEW      DD DSN=&TPREFIX..VIEW,DISP=SHR                            
//MAIL      DD DSN=&TPREFIX..MAIL,DISP=SHR                            
//SYSUDUMP  DD SYSOUT=&DUMP                                           
//SNAP      DD SYSOUT=&DUMP                                           
//LOG       DD SYSOUT=&OUT
//         PEND                        END OF TPX PROC  
//*
//START    EXEC TPXPROC,SMRT=SMRTPROD,ACT=ACTPROD