View - Message received of "SARTPO61 DATABASE TAPE UTILIZATION CAPACITY IS FULL"
search cancel

View - Message received of "SARTPO61 DATABASE TAPE UTILIZATION CAPACITY IS FULL"

book

Article ID: 234144

calendar_today

Updated On:

Products

View

Issue/Introduction

Our SARSTC task failed with Abend U0061 and message "SARTPO61 DATABASE TAPE UTILIZATION CAPACITY IS FULL". 

We are looking for ways to recover it , as it impacts a production System.

Environment

Release : 14.0

Component : View

Resolution

The client's environment consisted of the following:

 . SARINIT: NGENI=007
            STORGRP0=/.../09999/...
            STORGRP1=.../.../09999/...
            STORGRP2=.../.../00001/...
            STORGRP3=.../.../09999/...
            STORGRP4=.../.../00001/...
            STORGRP5=.../.../09999/...
            STORGRP6=.../.../00001/...
            STORGRP7=.../.../09999/...
            STORGRP8=.../.../00001/...
            STORGRP9=.../.../09999/...

 . The client has not run SARPAC. 

----------------------------------------------------------------------------------------------------------------------------------------

To get an understanding of what content was on the tapes, asked that the client run a SARPAC REPORT:

//XXXXXXXX JOB ...                                                   
//SARPAC   EXEC PGM=SARPAC,PARM='VIEW_HLQ,REPORT'   <=== MODIFY DB NAME
//STEPLIB  DD  DISP=SHR,DSN=VIEW.CVDELOAD     <=== MODIFY, IF USED   
//SYSPRINT DD  SYSOUT=*                                              
//SYSUDUMP DD  SYSOUT=*                                              
//SYSIN    DD  DUMMY                                                 
//                                                                   

The SARPAC REPORT showed:

 . All 65,535 tape slots were occupied by an active tape. 
 . Some tapes showed a status of "INDEX ONLY". 
 . Most tapes contained 5 reports or less. 
 . Many tapes were 8 years or older. 

------------------------------------------------------------------------------

Instructed the client to do the following:

 . Set SARINIT NGENI=1
 . In the STORGRPn parameters, change 00001 to 00020

 . As there were no tape slots available:

 . . Set SARINIT TBACKUP=NO

 . Recycle the SARSTC task.

 . Run a View backup, using "/F sarstc,DUMP".
 . . As the View backup expires tapes with no active reports, several tapes were made available. 

 . Review the SARPAC REPORT, to find groups of tapes that can be run in SARPAC. 

 . Run SARPAC, for tape groups, using:
  
//XXXXXXXX JOB ...                                                   
//SARPAC   EXEC PGM=SARPAC,PARM='VIEW_HLQ,REPORT'   <=== MODIFY DB NAME
//STEPLIB  DD  DISP=SHR,DSN=VIEW.CVDELOAD     <=== MODIFY, IF USED   
//SYSPRINT DD  SYSOUT=*                                              
//SYSUDUMP DD  SYSOUT=*                                              
//SYSIN    DD  *
TAPESEQ=nnnnn-nnnnn
TAPESEQ=nnnnn-nnnnn
/*                                                 
//                                                                   

 . Run SARPAC several times before the next View backup. 

 . Set SARINIT TBACKUP=YES, and recycle SARSTC.   

 . At the next View backup, more tapes will expire, expanding the available tape pool. 

 . Continue to run SARPACs, to move reports to new tapes. 

----------------------------------------------------------------------------------------------------------

To recover the lost reports from another database/tape, the client was given this procedure:

 . As none of the reports can be recalled from the tape in question, first would be to run a SARTSLST job, to create a //CTLCARDS file of SARBCH /DELETE transactions. 

 . Run the //CTLCARDS file through program SARBCH, which will remove the report entries from the index of the database. 

 . At the next View backup, View will expire the tape in question. 

The client had another database from which the reports could be recovered. 

A procedure to migrate the recovered reports to the current database would be to:

 . Create files of SARBCH /LOAD transactions, to load reports to the secondary database disk layer:

//XXXXXXXX JOB ...                                                
//SARBCH   EXEC PGM=SARBCH,PARM='VIEW_HLQ'  <=== MODIFY DB NAME   
//STEPLIB  DD  DISP=SHR,DSN=VIEW.CVDELOAD     <=== MODIFY, IF USED
//SYSPRINT DD  SYSOUT=*                                           
//REPORT   DD  SYSOUT=*                                          
//SYSIN    DD  DISP=SHR,DSN=load.file_n    <=== Modify /LOAD file name
//                                                                

 
 . Create files of SARDBASE Selective UNLOAD transactions, to extract reports from the secondary database disk layer:

//XXXXXXXX JOB ...                                                
//SARDBASE EXEC PGM=SARDBASE,PARM='VIEW_HLQ'  <=== MODIFY DB NAME 
//STEPLIB  DD  DISP=SHR,DSN=VIEW.CVDELOAD     <=== MODIFY, IF USED
//SYSPRINT DD  SYSOUT=*                                           
//*******************************************                   
//*  USE THE FOLLOWING SARUNLTB STATEMENT   *                   
//*  TO DO A "SELECTIVE" UNLOAD             *                   
//*******************************************                   
//SARUNLTB DD  DISP=SHR,DSN=unload.file_n   <=== Modify, UNLOAD table file name
//SARUNLD  DD  DISP=(,CATLG,DELETE),                              
//             DSN=XXXXXX.XXXXXX.SARUNLDn,                         
//             DCB=(RECFM=VB,LRECL=32756,BLKSIZE=32760),          
//             UNIT=tape,LABEL=(1,SL)
//SYSPRINT DD SYSOUT=*                                            
//SYSIN    DD *                                                   
UNLOAD                                                            
/*                                                                
//                                                                 

Run the FIXGCRG program (supplied by Support) to change the generation number of the reports extracted from the secondary database to the generation number used on the primary database:

//FIXUNLD  JOB ...
//$$$$$$@  EXEC PGM=IRXJCL,PARM='FIXGCRG'
//SYSEXEC   DD  DSN=YOUR.REXX.LIBRARY,DISP=SHR  <=== Modify REXX library name
//SYSTSPRT  DD  SYSOUT=*
//SYSTSIN   DD  DUMMY
//SYSUDUMP  DD  SYSOUT=*
//INDD      DD  DSN=XXXXXX.XXXXXX.SARUNLDn, 
//          DISP=SHR
//OUTDD     DD  DSN=YOUR.NEW.UNLOAD.DSN,
//          DISP=(,CATLG),UNIT=SYSDA,
//          SPACE=(CYL,(500,50),RLSE),
//          DCB=(RECFM=VB,LRECL=32756,BLKSIZE=32760)

Perform a backup of the primary database, using DFDSS or FDR utilities, or can be run using SARDBASE UNLOAD. 

Run the below SARDBASE LOAD job, to load reports to the disk layer of the primary database:

//XXXXXXXX JOB ...                                                
//SARDBASE EXEC PGM=SARDBASE,PARM='VIEW_HLQ'  <=== MODIFY DB NAME 
//STEPLIB  DD  DISP=SHR,DSN=VIEW.CVDELOAD     <=== MODIFY, IF USED
//SYSPRINT DD  SYSOUT=*                                           
//SARLOAD  DD  DISP=SHR,DSN=YOUR.NEW.UNLOAD.DSN
//SYSPRINT DD SYSOUT=*                                            
//SYSIN    DD *                                                   
LOAD                                                            
/*                                                                
//                                                                 

 Note: Please ensure that there is sufficient disk space on both the primary and secondary databases, for the SARBCH /LOAD step and the SARDBASE LOAD steps.