How to Address a RC=16 Condition in SARTCHK?
search cancel

How to Address a RC=16 Condition in SARTCHK?

book

Article ID: 52548

calendar_today

Updated On:

Products

Output Management Document Viewer Deliver View Output Management Web Viewer

Issue/Introduction

The information presented explains the procedures for correcting uncatalogued tapes that are indicated by a RC=16 condition in SARTCHK.

    •  

Environment

Release: CMASLI00200-11.5-Spool-Print Management-Interface for HP Laser
Component:

Resolution

When a return code of 16 (RC=16) is received in a run of SARTCHK, that is an indication that one of the CA View primary or duplex tapes has been prematurely uncatalogued.

Per the SARINIT parameter EXPDT=99000, CA View continues ownership of its tapes (created in a CA View standard backup (SARSTC) or in SARPAC) until all of the reports on the tape have expired and there is no more use for any occurrences of a backup of the CA View Master Index on the tape (Determined by SARINIT parameter NGENI).

When a tape is deemed as expired, after a standard backup when retentions of the database's reports have been evaluated, CA View sends a message to MVS to uncatalogued and scratch the primary tape and the duplex tape (if one exists).

A tape can be prematurely uncatalogued due to the following:

  • A tape has been written over by another application.

  • A tape was being written to and either the CA View started task or SARPAC job abended, and the Tape Management System has not been instructed to retain any tapes that are output from any abended CA View procedure.

Here is a list of procedures on how to address a problem tape:

  • If only a duplex tape was lost, and the primary tape still exists, you can run a SARTCP COPY to recreate the duplex tape from the primary. Below is sample JCL:
    //XXXXXXXX JOB ...
    //SARTCP EXEC PGM=SARTCP,PARM='COPYASIS' 
    //STEPLIB DD DISP=SHR,DSN=VIEW.CAILIB <=== Modify, if used
    //SYSPRINT DD SYSOUT=* 
    //TAPEIN DD DISP=OLD,DSN=VIEW.DB1.SARTAPE.T00nnnnn 
    //TAPEOUT DD DISP=(,CATLG), 
    // DSN=VIEW.DB1.SARDPLX.T00nnnnn,
    // UNIT=(xxxx,,DEFER),VOL=(,RETAIN),
    // LABEL=(,SL,EXPDT=99000)
    //SYSIN DD DUMMY
    //
  • If only a primary tape was lost, and the duplex tape still exists, you can run a SARTCP COPY to recreate the primary tape from the duplex tape. The JCL would be similar to the above except that the //TAPEIN would be the SARDPLX (duplex) tape and the //TAPEOUT would be the SARTAPE (primary) tape.

  • If both the primary and duplex tapes have been lost:

  • If you create a Disaster Recovery tape (SARINIT DRTAPE=YES):

    • Determine what DR tape(s) are associated with the primary tape in question:

      • Run SARBCH /LIST ID=* GEN=*.

      • Note the "Tseq" and "DRseq" columns which identify the tape sequence number:

        • Tseq nnnnn equates to dataset name VIEW.DB1.SARTAPE.T00nnnnn

        • DRseq nnnnn equates to dataset name VIEW.DB1.SARDRTP.T00nnnnn

    • Change SARINIT parm to DRTAPE=ACTIVE.

    • Recycle SARSTC.

    • Run SARTDR /TLOAD, to load all reports from the DR tape(s) to disk:
      //XXXXXXXX JOB ...
      //SARTDR EXEC PGM=SARTDR,PARM='VIEW.DB1' <=== Modify DB name 
      //STEPLIB DD DISP=SHR,DSN=VIEW.CAILIB <=== Modify, if used
      //SYSPRINT DD SYSOUT=* 
      //SYSIN DD * 
      /TLOAD TAPESEQ=nnnnn <=== Modify nnnnn to the tape sequence of the DR tape 
      // (VIEW.DB1.SARDRTP.T00nnnnn)
    • Change SARINIT parm to DRTAPE=YES.

    • Recycle SARSTC.

    • Run SARTSLST, creating a //CTLCARDS file:
      //XXXXXXXX JOB ...
      //SARTSLST EXEC PGM=SARTSLST,PARM='VIEW.DB1,nnnnn' <=== Modify DB name
      //* <=== Modify nnnnn from VIEW.DB1.SARTAPE.T00nnnnn
      //STEPLIB DD DISP=SHR,DSN=VIEW.CAILIB <=== Modify, if used
      //SYSPRINT DD SYSOUT=* 
      //SYSUDUMP DD SYSOUT=* 
      //CTLCARDS DD DISP=(NEW,KEEP),DSN=XXXXXX.XXXXXX.CTLCARDS,
      //            UNIT=SYSDA,SPACE=(TRK,(1,1),RLSE), 
      //            DCB=(RECFM=FB,LRECL=80,BLKSIZE=3120) 
      //
    • Ensure that all entries in the CTLCARDS file contain

      /CHANGE ID=... ... BACKUP=OFF.

    • Run SARBCH with the CTLCARDS as input:
      //XXXXXXXX JOB ...
      //SARBCH EXEC PGM=SARBCH,PARM=VIEW.DB1' <=== Modify DB name
      //STEPLIB DD DISP=SHR,DSN=VIEW.CAILIB <=== Modify, if used
      //SYSPRINT DD SYSOUT=* 
      //REPORT DD SYSOUT=* 
      //SYSIN DD DISP=SHR,DSN=XXXXXX.XXXXXX.CTLCARDS
      //
    • At the next CA View standard backup, all of the reports affected by a /CHANGE transaction will show a location of DISK, will get backed up again, and will show a new tape as their primary and duplex.

      Since all of the reports will be on the new tape, the old tape will no longer be needed and will be expired.

  • If you do not create a Disaster Recovery tape (SARINIT DRTAPE=NO):

    • Run SARTSLST, creating a //CTLCARDS file:
      //XXXXXXXX JOB ...
      //SARTSLST EXEC PGM=SARTSLST,PARM='VIEW.DB1,nnnnn' <=== Modify DB name
      //* <=== Modify nnnnn from VIEW.DB1.SARTAPE.T00nnnnn
      //STEPLIB DD DISP=SHR,DSN=VIEW.CAILIB <=== Modify, if used
      //SYSPRINT DD SYSOUT=* 
      //SYSUDUMP DD SYSOUT=* 
      //CTLCARDS DD DISP=(NEW,KEEP),DSN=XXXXXX.XXXXXX.CTLCARDS,
      //            UNIT=SYSDA,SPACE=(TRK,(1,1),RLSE), 
      //            DCB=(RECFM=FB,LRECL=80,BLKSIZE=3120) 
      //
    • Ensure that all entries in the CTLCARDS file contain either
      /DELETE ID=... or /CHANGE ID=... ... BACKUP=OFF
    • Run SARBCH with the CTLCARDS as input:
      //XXXXXXXX JOB ...
      //SARBCH EXEC PGM=SARBCH,PARM=VIEW.DB1' <=== Modify DB name
      //STEPLIB DD DISP=SHR,DSN=VIEW.CAILIB <=== Modify, if used
      //SYSPRINT DD SYSOUT=* 
      //REPORT DD SYSOUT=* 
      //SYSIN DD DISP=SHR,DSN=XXXXXX.XXXXXX.CTLCARDS
      //
    • At the next CA View standard backup, the entries in the master index for all of the reports that are only on the tape will be deleted, and the reports from the tape that are on disk will be backed up on the current backup tape. The tape that the reports were on will be expired.