|
 |
Creating distribution CD
This example reads table CRTCD400P which holds groups of libraries to save.
Currently you must enter these with a file editor.
see figure 1.
In figure 2. you see the create distribution CD main panel.
You may select Tape drive, INZTAP format, Target release and library group code.
Once you press enter from this panel the backup starts.
The API QLPCDRST is called to setup the save environment.
CALL PGM(QLPCDRST) PARM(' ' +
' ' X'00000000' ' ' +
X'00000001' 'SLICSYSTEM' X'00000000' +
X'00000000')
The Program QINSTAPP is created in QTEMP and included in the SAVE.
Once the save is complete a file STAPE is created with a member for each library saved.
Each member must be sent to the PC in BINARY mode.
Then you may use any PC CD burner to copy the files to CD.
Thats it ....now you have a distribution CD.
Figure 3. shows the restore process.
This panel is displayed after keying in LODRUN OPT01.
Press enter and restore the libraries.
DOWNLOAD
Download text files
Figure 1.
Figure 2.
Figure 3.
The main CLP save program
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
/* */
/* */
/* */
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
/* */
/* Program: CRTCD01CL */
/* */
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
PGM
DCL VAR(&STRING) TYPE(*CHAR) LEN(1000)
DCL VAR(&DATE) TYPE(*CHAR) LEN(07)
DCL VAR(&TIME) TYPE(*CHAR) LEN(06)
DCL VAR(&USER) TYPE(*CHAR) LEN(10)
DCL VAR(&Count) TYPE(*DEC)
DCL VAR(&WrkCount) TYPE(*DEC) Len(3 0)
DCLF FILE(CRTCD01D)
MONMSG CPF0000
CHGJOB LOG(*SAME *SAME *SECLVL) LOGCLPGM(*YES)
RTVJOBA USER(&USER) DATE(&DATE)
RTVSYSVAL SYSVAL(QTIME) RTNVAR(&TIME)
CHGVAR VAR(&W1DEVICE) VALUE('TAP01')
CHGVAR VAR(&W1DENSITY) VALUE('*FMT5GB')
CHGVAR VAR(&W1TARGET) VALUE('V5R1M0')
CHGVAR VAR(&W1LIB) VALUE('JJFINSTALL')
CHGVAR VAR(&W1PGM) VALUE('*NONE')
CHGVAR VAR(&W1CODE) VALUE('TEST1')
LOOP: SNDRCVF RCDFMT(WIN1)
MONMSG MSGID(CPF0000)
IF COND(&IN03 *EQ '1' *OR &IN12 *EQ '1') +
THEN(GOTO CMDLBL(EXIT))
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
/* inititalize the tape. */
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
INZTAP DEV(&W1DEVICE) NEWVOL(WRKTAP) NEWOWNID(OAO) +
CHECK(*NO) DENSITY(&W1DENSITY)
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
/* Call API to set up for the save CD */
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
CALL PGM(QLPCDRST) PARM(' ' +
' ' X'00000000' ' ' +
X'00000001' 'SLICSYSTEM' X'00000000' +
X'00000000')
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
/* Add library from initial Panel */
/* library must contain source file SOURCE */
/* with a CL member QINSTAPP */
/* */
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
CRTLIB LIB(&W1LIB)
CRTSRCPF &W1LIB/SOURCE RCDLEN(112)
ADDLIBLE LIB(&W1LIB)
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
/* QINSTAPP must be save from QTEMP and */
/* must be saved on first sequence of */
/* Tape or CD. */
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
DLTPGM PGM(QTEMP/QINSTAPP)
MONMSG MSGID(CPF0000)
CRTCLPGM PGM(QTEMP/QINSTAPP) SRCFILE(&W1LIB/SOURCE) +
TEXT('OAO INSTALLATION PROGRAM') +
TGTRLS(&W1TARGET)
CHGOBJOWN OBJ(QTEMP/QINSTAPP) OBJTYPE(*PGM) +
NEWOWN(QDFTOWN) CUROWNAUT(*SAME)
/*Sequence 1*/
SAVOBJ OBJ(QINSTAPP) LIB(QTEMP) DEV(&W1DEVICE) +
OBJTYPE(*PGM) SEQNBR(1) ENDOPT(*LEAVE) +
TGTRLS(&W1TARGET) DTACPR(*NO)
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
/* Create the data area with install */
/* information. */
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
CRTDTAARA DTAARA(&W1LIB/INSTALL) TYPE(*CHAR) LEN(1000) +
TEXT('INSTALL PARAMETERS')
CHGVAR VAR(&STRING) VALUE(&W1DEVICE || &W1DENSITY +
|| &W1TARGET || &W1LIB || &W1PGM +
|| &W1LIB || &USER || &DATE || &TIME +
|| &W1CODE)
CHGDTAARA DTAARA(&W1LIB/INSTALL (1 1000)) VALUE(&STRING)
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
/* Pass the library save codes to save */
/* Program - must have counter to know */
/* tape sequence numbers. */
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
CALL PGM(CRTCD02CL) PARM(&W1CODE &W1DEVICE +
&W1TARGET &W1LIB &COUNT)
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
/* Last save must be the library &W1LIB */
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
SAVLIB LIB(&W1LIB) DEV(&W1DEVICE) +
ENDOPT(*LEAVE) TGTRLS(&W1TARGET)
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
/* SEQUENCE 1 has our LODRUN program from */
/* QTEMP. */
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
CRTPF FILE(&W1LIB/STAPE) RCDLEN(28672) +
MAXMBRS(*NOMAX)
RMVM FILE(STAPE) MBR(*ALL)
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
/* Here we use the &COUNT field to tell us */
/* how many libries have been saved. */
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
CHGVAR VAR(&COUNT) VALUE(&COUNT + 2)
DOLOOP: DO
IF COND(&WRKCOUNT > &COUNT) THEN(GOTO +
CMDLBL(ENDLOOP))
CHGVAR VAR(&WRKCOUNT) VALUE(&WRKCOUNT + 1)
CPYFRMTAP FROMFILE(QTAPE) TOFILE(&W1LIB/STAPE) +
FROMSEQNBR(&WRKCOUNT) TOMBR(*FROMLABEL) +
FROMDEV(&W1DEVICE) FROMREELS(*SL) +
FROMRCDLEN(28672) FROMENDOPT(*LEAVE) +
MBROPT(*ADD) FROMBLKLEN(28672)
GOTO DOLOOP
ENDDO
ENDLOOP:
CALL PGM(CRTCD03CL) PARM(&W1LIB)
EXIT:
ENDPGM
|
| |
| |
Suggestions ©
Wednesday Mar 10, 2010 @ 4:19 AM
|
|