|
Yes, I know that CHKTAP will tell you the volume. You missed my point. My concern, based on experience dealing with remote site backup, was that someone would forget to rotate a tape and the mounted tape would contain 'live' backup data. INZTAP would wipe that out unless conditioned the INZTAP based on verifying the volume ID returned matched what you expected to be mounted for the current backup session. Turns out the OP didn't care what volume was mounted. Your CL has the same approach - it will wipe out whatever tape is mounted.
rob@xxxxxxxxx 01/29/2007 8:26:19 AM >>>
Roger, Read it again. :-) When you do a CHKTAP it echo's back the volume id. You use that in your INZTAP. I wrote a command called CHKINZTAP that call's a CLP to do this. /* Group Dekko Services, LLC */ /* */ /* This program will use CHKTAP to verify that the tape is loaded */ /* then it will use the volume id retrieved from the CHKTAP and */ /* use that on the INZTAP. */ /* */ /* Modification log: */ /* 01/03/03 by R.Berendt, CDP GDS,LLC */ /* Created */ /* 01/17/03 by R.Berendt, CDP GDS,LLC */ /* Changed INZTAP to CHECK(*YES) */ /* 04/28/03 by R.Berendt, CDP GDS,LLC */ /* Vary off/on tape drive in case backup immediately prior */ /* left drive in a failed state. */ /* 04/29/03 by R.Berendt, CDP GDS,LLC */ /* Changed INZTAP to CHECK(*NO) due to concerns regarding */ /* holidays, and inordinate amount of time for INZTAP. */ /* */ PGM ( + &TAPEDRIVE /* Tape drive to process */ + &STATUSCODE /* Status code: */ + /* 0 = Success */ + /* 50 = Vary off failed */ + /* 51 = Vary on failed */ + /* 52 = Invalid device status */ + /* 100 = Generic CHKTAP failed */ + /* 200 = Generic INZTAP failed */ + ) DCL &MSG *CHAR 132 /* First level message text */ DCL &MSGDTA *CHAR 132 /* Message data */ DCL &MSGID *CHAR 7 /* Message id */ DCL &STATUSCODE *DEC 5 /* Status code: */ + /* 0 = Success */ + /* 50 = Vary off failed */ + /* 51 = Vary on failed */ + /* 52 = Invalid device status */ + /* 100 = Generic CHKTAP failed */ + /* 200 = Generic INZTAP failed */ DCL &TAPEDRIVE *CHAR 10 /* Tape drive to process */ DCL &VOLID *CHAR 14 /* Volume id of the tape */ CHGVAR VAR(&VOLID) VALUE(*BLANKS) CHGVAR VAR(&STATUSCODE) VALUE(0) /* + | Check tape drive status + */ CALL PGM(CHKTAPSTS) PARM(&TAPEDRIVE &STATUSCODE) If (&StatusCode = 0) Do /* Valid device status */ /* + | CHKTAP to retrieve the volume id, then use that to INZTAP. + */ SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) + MSGDTA('Checking tape volume') + TOPGMQ(*EXT) MSGTYPE(*STATUS) CHKTAP DEV(&TAPEDRIVE) ENDOPT(*REWIND) MONMSG MSGID(CPF0000) RCVMSG MSGQ(*PGMQ) MSG(&MSG) MSGDTA(&MSGDTA) MSGID(&MSGID) + MSGTYPE(*LAST) IF COND(&MSGID = 'CPC6778') THEN(DO) /* Volume &2 found + on device &1. CHKTAP worked. */ CHGVAR VAR(&VOLID) VALUE(%SST(&MSGDTA 11 6)) SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) + MSGDTA('Initializing tape volume') + TOPGMQ(*EXT) MSGTYPE(*STATUS) INZTAP DEV(&TAPEDRIVE) NEWVOL(&VOLID) + NEWOWNID(DEKKO) CHECK(*NO) MONMSG MSGID(CPF0000) EXEC(DO) /* INZTAP failed */ CHGVAR VAR(&STATUSCODE) VALUE(200) ENDDO /* INZTAP failed */ ENDDO /* CHKTAP worked */ ELSE CMD(DO) /* CHKTAP failed */ CHGVAR VAR(&STATUSCODE) VALUE(100) ENDDO /* CHKTAP failed */ ENDDO /* Tape drive was either varied on, or abled to be varied off/on */ END: ENDPGM Rob Berendt
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 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.