In our company, we use tape cartridges with different kinds of density. Each time you want to initialize a cartridge, you have to look for the specified density on the cartridge. On some cartridges it's impossible to find the density.
The tape device we use on our AS/400 model E35 is 6368. This unit checks the kind of cartridge installed. If you try to initialize a tape cartridge at an invalid density you'll receive message number CPF6762. I wrote a program to initialize tape cartridges and used the the Monitor Message (MONMSG) command to trap for an invalid density. By using this technique I was able to write a command that would initialize a variety of tape densities. The Auto Initialize Tape (AUTINZTAP) command (see 1) processes the CL program INZ001CL (see 2). The command prompts you for three parameters: the device name, the volume ID, and the owner ID. For us, this command works well for everyday use.
The tape device we use on our AS/400 model E35 is 6368. This unit checks the kind of cartridge installed. If you try to initialize a tape cartridge at an invalid density you'll receive message number CPF6762. I wrote a program to initialize tape cartridges and used the the Monitor Message (MONMSG) command to trap for an invalid density. By using this technique I was able to write a command that would initialize a variety of tape densities. The Auto Initialize Tape (AUTINZTAP) command (see Figure 1) processes the CL program INZ001CL (see Figure 2). The command prompts you for three parameters: the device name, the volume ID, and the owner ID. For us, this command works well for everyday use.
Auto Initialize Tape Utility
Figure 1 The AUTINZTAP Command
/*===============================================================*/ /* To compile: */ /* */ /* CRTCMD CMD(XXX/AUTINZTAP) PGM(XXX/INZ001CL) + */ /* SRCFILE(XXX/QCMDSRC) */ /* */ /*===============================================================*/ CMD PROMPT('Auto Initialize Tape') PARM KWD(DEV) TYPE(*NAME) LEN(10) MIN(1) + PROMPT('Tape device') PARM KWD(NEWVOL) TYPE(*CHAR) LEN(6) DFT(*NONE) + SPCVAL((*NONE)) PROMPT('New volume + identifier') PARM KWD(NEWOWNID) TYPE(*CHAR) LEN(17) + DFT(*BLANK) PROMPT('New owner identifier')
Auto Initialize Tape Utility
Figure 2 CL Program INZ001CL
/*===============================================================*/ /* To compile: */ /* */ /* CRTCLPGM PGM(XXX/INZ001CL) SRCFILE(XXX/QCLSRC) */ /* */ /*===============================================================*/ PGM PARM(&DEV &NEWVOL &NEWOWNID) DCL VAR(&DEV) TYPE(*CHAR) LEN(10) DCL VAR(&NEWVOL) TYPE(*CHAR) LEN(6) DCL VAR(&NEWOWNID) TYPE(*CHAR) LEN(17) DCL VAR(&MSGID) TYPE(*CHAR) LEN(10) DCL VAR(&MSGF) TYPE(*CHAR) LEN(10) DCL VAR(&MSGFLIB) TYPE(*CHAR) LEN(10) DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(132) MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR)) CHKTAP DEV(&DEV) QIC1000: + INZTAP DEV(&DEV) NEWVOL(&NEWVOL) NEWOWNID(&NEWOWNID) CHECK(*NO) + DENSITY(*QIC1000) MONMSG MSGID(CPF6762) EXEC(GOTO CMDLBL(QIC525)) GOTO CMDLBL(MSG) QIC525: + INZTAP DEV(&DEV) NEWVOL(&NEWVOL) NEWOWNID(&NEWOWNID) CHECK(*NO) + DENSITY(*QIC525) MONMSG MSGID(CPF6762) EXEC(GOTO CMDLBL(QIC120)) GOTO CMDLBL(MSG) QIC120: + INZTAP DEV(&DEV) NEWVOL(&NEWVOL) NEWOWNID(&NEWOWNID) CHECK(*NO) + DENSITY(*QIC120) MONMSG MSGID(CPF6762) EXEC(GOTO CMDLBL(ERROR)) MSG: + RCVMSG MSGTYPE(*COMP) MSGDTA(&MSGDTA) MSGID(&MSGID) MSGF(&MSGF) + MSGFLIB(&MSGFLIB) SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) MSGDTA(&MSGDTA) GOTO CMDLBL(ENDPGM) ERROR: + RCVMSG MSGDTA(&MSGDTA) MSGID(&MSGID) MSGF(&MSGF) MSGFLIB(&MSGFLIB) SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) MSGDTA(&MSGDTA) ENDPGM: + ENDPGM
LATEST COMMENTS
MC Press Online