×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) midrange.com.




CHKTAP should be sufficient instead of DSPTAP.  Your tape volume id's ARE
unique aren't they ?   ;-)

Here's part of my nightly backup job.

             DCL        VAR(&CHKTAP) TYPE(*LGL) VALUE('1') /* 1 = +
                          CHKTAP not run; 0 = CHKTAP already run */
             DCL        VAR(&MSGID) TYPE(*CHAR) LEN(7)
             DCL        VAR(&MSGDTA) TYPE(*CHAR) LEN(100)
             DCL        VAR(&MSGKEY) TYPE(*CHAR) LEN(4)
             DCL        VAR(&TAPEDEV) TYPE(*CHAR) LEN(10) +
                          VALUE(TAP01) /* Device name defaulted to +
                          TAP01. */

/* CHECK THAT TAPE DRIVE IS READY WITH CORRECT TAPE.                 */
/*  (Volume ids for Nightly Backup tapes begin with:                 */
/*  DCMONn, DCTUEn, DCWEDn, DCTHUn, DCFRIn, DCSATn, DCSUNx (n=seq #).*/
CHKTAP:      CHKTAP     DEV(&TAPEDEV) ENDOPT(*REWIND)

             MONMSG     MSGID(CPF6708) /* Command ended due to error +
                          - possibly "CPF4120 Tape device +
                          equipment check" if tape from last nights +
                          backup sitting unloaded in drive with +
                          drive door open. */
             MONMSG     MSGID(CPF6718) /* Cannot allocate device. */
             MONMSG     MSGID(CPF6760) /* Device not ready. */
             MONMSG     MSGID(CPF6772) /* Volume cannot be processed */
             RCVMSG     MSGTYPE(*LAST) RMV(*NO) KEYVAR(&MSGKEY) +
                          MSGDTA(&MSGDTA) MSGID(&MSGID)

             IF         COND(&MSGID *EQ CPF6760) THEN(DO)
             SNDPGMMSG  MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('>>> +
                          Tape device ' *CAT %SST(&MSGDTA 1 10) +
                          *TCAT ' was not ready.  Nightly backup +
                          job ended') TOUSR(*SYSOPR)
             GOTO       CMDLBL(BYPASS)
             ENDDO

             ELSE       CMD(DO)

             IF         COND(&MSGID *EQ CPF6708) THEN(DO)
/* If CHKTAP fails first time and we get a CPF6708 it may be caused  */
/*  by a CPF4168/MCH1668 and tape device may be in a FAILED state.   */
/*  Try once to vary off/on the tape device and retry CHKTAP.        */
              IF         &CHKTAP THEN(DO)
              CHGVAR     VAR(&CHKTAP) VALUE('0') /* CHKTAP run once */
              VRYCFG     CFGOBJ(&TAPEDEV) CFGTYPE(*DEV) STATUS(*OFF)
              MONMSG     MSGID(CPF2600) /* Ignore vary command error */
              DLYJOB     DLY(5)
              VRYCFG     CFGOBJ(&TAPEDEV) CFGTYPE(*DEV) STATUS(*ON)
              MONMSG     MSGID(CPF2600) /* Ignore vary command error */
              GOTO       CMDLBL(CHKTAP)
              ENDDO
             RCVMSG     MSGTYPE(*PRV) MSGKEY(&MSGKEY) RMV(*NO) +
                          MSGDTA(&MSGDTA) MSGID(&MSGID)
             SNDPGMMSG  MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('>>> +
                          CHKTAP command ended due to error.  See +
                          message ' *CAT &MSGID *CAT ' in joblog.  +
                          Nightly backup job ended') TOUSR(*SYSOPR)
             GOTO       CMDLBL(BYPASS)
             ENDDO

             ELSE       CMD(DO)

             IF         COND(&MSGID *EQ CPF6718) THEN(DO)
             SNDPGMMSG  MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('>>> +
                          Cannot allocate device ' *CAT +
                          %SST(&MSGDTA 1 10) *TCAT ' - in use by +
                          another job.  Nightly backup job ended') +
                          TOUSR(*SYSOPR)
             GOTO       CMDLBL(BYPASS)
             ENDDO

             ELSE       CMD(DO)

             IF         COND(&MSGID *EQ CPF6772) THEN(DO)
             SNDPGMMSG  MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('>> Tape +
                          volume on device ' *CAT %SST(&MSGDTA 1 +
                          10) *TCAT ' cannot be processed.  Tape +
                          may be un-initialized, or initialized in +
                          an unsupported format or density.  +
                          Nightly backup job ended') TOUSR(*SYSOPR)
             GOTO       CMDLBL(BYPASS)
             ENDDO

             ELSE       CMD(DO)

             CHGVAR     VAR(&TAPVOLID) VALUE(%SST(&MSGDTA 11 6))

             IF         COND((&MSGID *EQ CPC6778) & +
                          (%SST(&MSGDTA 11 5) *NE 'DCMON') & +
                          (%SST(&MSGDTA 11 5) *NE 'DCTUE') & +
                          (%SST(&MSGDTA 11 5) *NE 'DCWED') & +
                          (%SST(&MSGDTA 11 5) *NE 'DCTHU') & +
                          (%SST(&MSGDTA 11 5) *NE 'DCFRI') & +
                          (%SST(&MSGDTA 11 5) *NE 'DCSAT') & +
                          (%SST(&MSGDTA 11 5) *NE 'DCSUN')) THEN(DO)
             SNDPGMMSG  MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('>>> +
                          Tape volume ' *CAT &TAPVOLID *TCAT ' +
                          found on device ' *CAT %SST(&MSGDTA 1 10) +
                          *TCAT ' - not a 1/4" Nightly Backup tape +
                          (volid starting with "DC" + first 3 +
                          letters of day of week).  Nightly backup +
                          job ended') TOUSR(*SYSOPR)
             GOTO       CMDLBL(BYPASS)
             ENDDO
             ENDDO

             ENDDO
             ENDDO
             ENDDO



...Neil





"Jim Langston" <jlangston@celsinc.com>
Sent by: midrange-l-admin@midrange.com
2001/09/24 12:46
Please respond to midrange-l


        To:     <midrange-l@midrange.com>
        cc:
        Subject:        DSPTAP takes too long


I've been given the task to write something to start checking the tape in
our tape drive around 7:00 in the morning and start sending a message
every
hour until the tape is changed.

Not a difficult task, it would seem, simply do a DSPTAP, get a file
date/time or tape date/time and save the value, and compare every hour
until
it changes.

I do a DSPTAP to an outfile, and it takes quite a long time to complete
(over half hour).  I tried to see if I can just get the first label, but
with outfile it starts at the label number you specify.

So... my question is, are there any tap APIs I could use that could
perhaps
be faster?  Just allow me to grab the beginning tape information as that's
all I need.

Thanks in advance,

Jim Langston






As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2026 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.