14.36.日次保管サンプルルーチン | |||||||||
日次保管概要クリックすると拡大します |
ジョブ・スケジュール項目の明細の表示
システム : SSSSSSS
ジョブ : BACKUP 項目番号 : 000102 状況 : SCD
最後に試みた投入 :
状況 . . . . . . . . . . . . : JOB SUCCESSFULLY SUBMITTED.
日付 . . . . . . . . . . . . : 03/09/19
時刻 . . . . . . . . . . . . : 02:00:00
最後の正常な投入 :
ジョブ . . . . . . . . . . . : BACKUP
ユーザー . . . . . . . . . : QSECOFR
数値 . . . . . . . . . . . : 081456
日付 . . . . . . . . . . . . : 03/09/19
時刻 . . . . . . . . . . . . : 02:00:00
スケジュール日 . . . . . . . . : *TUE *WED *THU *FRI *SAT
スケジュール時刻 . . . . . . . : 02:00:00
頻度 . . . . . . . . . . . . . : *WEEKLY
回復処置 . . . . . . . . . . . : *NOSBM
次の投入日 . . . . . . . . . . : 03/09/20
省略日付 . . . . . . . . . . . : 03/09/23 04/02/11 04/11/03
03/12/23 04/04/29 04/11/23
04/01/01 04/05/04 04/12/23
04/01/02 04/05/05
04/01/12 04/09/23
コマンド . . . . . . . . . . . : CALL PGM(SAV001CL)
ジョブ待ち行列 . . . . . . . . : QBATCH ライブラリー . . . . . . . . : QGPL ジョブ待ち行列の状況 . . . . . : RLS/SBS ジョブ記述 . . . . . . . . . . : BACKUP ライブラリー . . . . . . . . : GPL スケジュール作成者 . . . . . . : KKKKKKKK ユーザー・プロファイル . . . . : QSECOFR メッセージ待ち行列 . . . . . . : *NONE ライブラリー . . . . . . . . : テキスト . . . . . . . . . . . : BACK UP LIBRARIES
|
DSPOBJDにて、ライブラリー名を取り出し、その名前の頭2桁が「PK」のもののみ、オンライン保管(SAVF)の対象とする。
0001.00 /*---------------------------------------------------------------------
0002.00 /*
0003.00 /* SAVLIB PK* --> SAVF (SAV0011CL)
0004.00 /*
0005.00 /* PROGRAMMER . . . . . KAKEFUDA
0006.00 /* CREATION . . . . . . 2003/05/08
0007.00 /* MODIFICATION . . . .
0008.00 /*
0009.00 /*
0010.00 /*---------------------------------------------------------------------
0011.00
0012.00 PGM
0013.00
0014.00 DCLF QADSPOBJ
0015.00 DCL &CRTDATE *CHAR 13
0016.00 DCL &QDATE *CHAR 6
0017.00 DCL &DAYOFWEEK *CHAR 4
0018.00 DCL &POSAVFLIB *CHAR 10 'SAVFLIB'
0019.00 DCL &POLOGF *CHAR 10 'SAVLOG'
0020.00 DCL &POLOGL *CHAR 10 'GPL'
0021.00 DCL &POLOGM *CHAR 10
0022.00 DCL &MSG *CHAR 500
0023.00 DCL &QTIME *CHAR 6
0024.00
0025.00 /* 時間検査 */
0026.00
0027.00 RTVSYSVAL QTIME (&QTIME)
0028.00 IF ('000000'<= &QTIME & &QTIME <='080000') DO
0029.00
0030.00 /* QINTER 停止 */
0031.00
0032.00 WRKACTJOB *PRINT
0033.00
0034.00 ENDSBS QINTER *IMMED
0035.00 MONMSG CPF0000
0036.00
0037.00 /* SAVF 名 */
0038.00
0039.00 RTVSYSVAL SYSVAL(QDAYOFWEEK) RTNVAR(&DAYOFWEEK)
0040.00 CHGVAR &POLOGM ('SAVF_'|<%SST(&DAYOFWEEK 2 3))
0041.00
0042.00 CHKOBJ &POLOGL/&POLOGF *FILE MBR(&POLOGM)
0043.00 MONMSG CPF9800 *N GOTO DSPOBJD
0044.00
0045.00 RTVSYSVAL SYSVAL(QDATE) RTNVAR(&QDATE)
0046.00 RTVMBRD &POLOGL/&POLOGF MBR(&POLOGM) CRTDATE(&CRTDATE)
0047.00 MONMSG CPF0000
0048.00
0049.00 IF (&QDATE *NE %SST(&CRTDATE 2 6)) DO
0050.00 RMVM &POLOGL/&POLOGF MBR(&POLOGM)
0051.00 MONMSG CPF0000
0052.00 ENDDO
0053.00
0054.00 DSPOBJD:
0055.00
0056.00 DSPOBJD QSYS/*ALL *LIB OUTPUT(*OUTFILE) OUTFILE(QTEMP/LIBLIST)
0057.00 OVRDBF QADSPOBJ QTEMP/LIBLIST
0058.00
0059.00 RCVF:
0060.00
0061.00 RCVF *N QLIDOBJD
0062.00
0063.00 MONMSG CPF0864 *N GOTO EOF
0064.00
0065.00 /* SAVLIB TO SAVF BY SAV001CL */
0066.00
0067.00 IF ( %SST(&ODOBNM 1 2)='PK' & &ODOBTP='*LIB' ) DO
0068.00 CALL SAV0011CL (&POSAVFLIB &ODOBNM &POLOGF &POLOGL &POLOGM)
0069.00 ENDDO
0070.00
0071.00 GOTO RCVF
0072.00
0073.00 EOF:
0074.00
0075.00 DLTOVR QADSPOBJ
0076.00
0077.00 /* SBMJOB SAV DATA --> TAP01 */
0078.00
0079.00 SBMJOB CMD( CALL SAV003CL ) JOB(SAV2TAP) +
0080.00 JOBQ( TAP01 ) LOG(4 0 *SECLVL) LOGCLPGM(*YES)
0081.00
0082.00 /* MESSAGE */
0083.00
0084.00 CHGVAR &MSG (' 保管ファイルへのバックアップが完了しました。 +
0085.00 ライブラリー名は、 '|> &POSAVFLIB |>' +
0086.00 ログは '|<&POLOGL|<'/'|<&POLOGF|<'('|<&POLOGM|<') です。 ')
0087.00
0088.00 SNDPGMMSG MSG(&MSG) TOMSGQ(*SYSOPR)
0089.00 MONMSG CPF0000
0090.00 SNDPGMMSG MSG(&MSG)
0091.00 MONMSG CPF0000
0092.00 SNDMSG MSG(&MSG) TOUSR(KAKEFUDA)
0093.00 MONMSG CPF0000
0094.00
0095.00 /* QINTER 開始 */
0096.00
0097.00 STRSBS QINTER
0098.00 MONMSG CPF0000
0099.00
0100.00 ENDDO /* 時間検査 */
0101.00
0102.00 RETURN
0103.00 ENDPGM
|
SAVLIBにて、PKで名前が始まるライブラリーを同名のSAVFを作成して、そこに保管。このとき、保管ログをファイルに落としている。
0001.00 /*--------------------------------------------------------------------- 0002.00 /* 0003.00 /* CHK/CRT/CLR SAVF & SAVLIB TO SAVF 0004.00 /* 0005.00 /* PROGRAMMER . . . . . KAKEFUDA 0006.00 /* CREATION . . . . . . 2003/05/08 0007.00 /* MODIFICATION . . . . 0008.00 /* 0009.00 /* 0010.00 /*--------------------------------------------------------------------- 0011.00 0012.00 PGM (&PISAVFLIB &PILIB &PILOGF &PILOGL &PILOGM) 0013.00 0014.00 DCL &PILIB *CHAR 10 0015.00 DCL &PILOGF *CHAR 10 0016.00 DCL &PILOGL *CHAR 10 0017.00 DCL &PILOGM *CHAR 10 0018.00 DCL &LIBTXT *CHAR 50 0019.00 DCL &PISAVFLIB *CHAR 10 0020.00 DCL &SAVF *CHAR 10 0021.00 0022.00 MONMSG CPF0000 0023.00 0024.00 CHKOBJ &PILIB *LIB 0025.00 MONMSG CPF9800 *N GOTO TAGEND 0026.00 0027.00 RTVOBJD &PILIB *LIB TEXT(&LIBTXT) 0028.00 0029.00 CHGVAR &SAVF &PILIB 0030.00 CHKOBJ &PISAVFLIB/&SAVF *FILE 0031.00 MONMSG CPF9800 *N DO 0032.00 CRTSAVF &PISAVFLIB/&SAVF TEXT(&LIBTXT) 0033.00 ENDDO 0034.00 0035.00 CLRSAVF &PISAVFLIB/&SAVF 0036.00 0037.00 SAVLIB LIB(&PILIB) DEV(*SAVF) SAVF(&PISAVFLIB/&SAVF) + 0038.00 ACCPTH(*NO) SAVFDTA(*YES) DTACPR(*YES) + 0039.00 OUTPUT(*OUTFILE) OUTFILE(&PILOGL/&PILOGF) + 0040.00 OUTMBR(&PILOGM *ADD) 0041.00 0042.00 0043.00 TAGEND: 0044.00 RETURN 0045.00 ENDPGM |
すべての該当ライブラリーの保管が終わると、磁気テープに書き出すジョブ()を、SBMJOBする。
0001.00 /*---------------------------------------------------------------------
0002.00 /*
0003.00 /* SAVSAVFLIB & SAVLIB CONTROL
0004.00 /*
0005.00 /* PROGRAMMER . . . . . KAKEFUDA
0006.00 /* CREATION . . . . . . 2003/05/09
0007.00 /* MODIFICATION . . . .
0008.00 /*
0009.00 /*
0010.00 /*---------------------------------------------------------------------
0011.00
0012.00 PGM
0013.00
0014.00 DCLF QADSPOBJ
0015.00 DCL &MSGRPY *CHAR 1
0016.00 DCL &QDATE *CHAR 6
0017.00 DCL &QTIME *CHAR 6
0018.00 DCL &DAYOFWEEK *CHAR 4
0019.00 DCL &POLOGF *CHAR 10 'SAVLOG'
0020.00 DCL &POLOGL *CHAR 10 'GPL'
0021.00 DCL &POLOGM *CHAR 10
0022.00 DCL &VOLM *CHAR 6
0023.00 DCL &LASTVOLM *CHAR 4
0024.00 DCL &MSG *CHAR 500
0025.00
0026.00 /* RETRIEVE TAPE VOLUME NAME */
0027.00
0028.00 CHKOBJ GPL/LASTVOLM *DTAARA
0029.00 MONMSG CPF9800 *N DO
0030.00 CRTDTAARA DTAARA(GPL/LASTVOLM) TYPE(*CHAR) LEN(4) +
0031.00 VALUE('DAY1') TEXT('DAY1->DAY2->...->DAY8->DAY9-.DAYA')
0032.00 ENDDO
0033.00
0034.00 RTVDTAARA LASTVOLM &LASTVOLM
0035.00
0036.00 CHGVAR &VOLM ' '
0037.00 IF (&LASTVOLM = ' ') CHGVAR &VOLM 'DAY1'
0038.00 IF (&LASTVOLM = 'DAY1') CHGVAR &VOLM 'DAY2'
0039.00 IF (&LASTVOLM = 'DAY2') CHGVAR &VOLM 'DAY3'
0040.00 IF (&LASTVOLM = 'DAY3') CHGVAR &VOLM 'DAY4'
0041.00 IF (&LASTVOLM = 'DAY4') CHGVAR &VOLM 'DAY5'
0042.00 IF (&LASTVOLM = 'DAY5') CHGVAR &VOLM 'DAY6'
0043.00 IF (&LASTVOLM = 'DAY6') CHGVAR &VOLM 'DAY7'
0044.00 IF (&LASTVOLM = 'DAY7') CHGVAR &VOLM 'DAY8'
0045.00 IF (&LASTVOLM = 'DAY8') CHGVAR &VOLM 'DAY9'
0046.00 IF (&LASTVOLM = 'DAY9') CHGVAR &VOLM 'DAYA'
0047.00 IF (&LASTVOLM = 'DAYA') CHGVAR &VOLM 'DAY1'
0048.00
0049.00 CHGVAR &VOLM ( &VOLM |< '01' )
0050.00
0051.00 /* FOR INITIAL SETUP */
0052.00
0053.00 CHKTAP:
0054.00
0055.00 RTVSYSVAL QDATE &QDATE
0056.00 IF ( &QDATE < '030521' ) GOTO INZTAP
0057.00
0058.00 CHKTAP TAP01 VOL(&VOLM) ENDOPT(*REWIND)
0059.00 MONMSG CPF6700 *N DO
0060.00 CHKTAP TAP01 ENDOPT(*UNLOAD)
0061.00 MONMSG CPF0000
0062.00 SNDUSRMSG MSG(+
0063.00 ' テープ '|>&VOLM|>' をマウントして G を入力してくだ +
0064.00 さい。 C で保留付 SBMJOB を行います。 ') +
0065.00 VALUES(G C) DFT(C) TOUSR(*SYSOPR) MSGRPY(&MSGRPY)
0066.00 MONMSG CPF2500 *N GOTO TAGEND
0067.00
0068.00 IF (&MSGRPY='G') GOTO CHKTAP
0069.00 IF (&MSGRPY='C') DO
0070.00 SBMJOB CMD(CALL SAV003CL) JOB(SAV2TAP) +
0071.00 JOBQ(TAP01) LOG(4 0 *SECLVL) +
0072.00 LOGCLPGM(*YES) HOLD(*YES)
0073.00 GOTO TAGEND
0074.00 ENDDO
0075.00 ENDDO
0076.00
0077.00
0078.00 /* INITIALIZE TAPE */
0079.00
0080.00 INZTAP:
0081.00
0082.00 INZTAP TAP01 NEWVOL(&VOLM) CHECK(*NO)
0083.00
0084.00 RTVSYSVAL QDAYOFWEEK RTNVAR(&DAYOFWEEK)
0085.00 CHGVAR &POLOGM (&VOLM |< '_' |< %SST(&DAYOFWEEK 2 3))
0086.00
0087.00 RMVM &POLOGL/&POLOGF MBR(&POLOGM)
0088.00 MONMSG CPF0000
0089.00
0090.00 /* SAVSAVFDTA */
0091.00
0092.00 CALL SAV0031CL (&POLOGF &POLOGL &POLOGM)
0093.00
0094.00 /* ADDITIONAL SAVLIB */
0095.00
0096.00 RTVSYSVAL QTIME (&QTIME)
0097.00 IF ('000000'<= &QTIME & &QTIME <='080000') DO
0098.00
0099.00 /* QINTER 停止 */
0100.00
0101.00 WRKACTJOB *PRINT
0102.00
0103.00 ENDSBS QINTER *IMMED
0104.00 MONMSG CPF0000
0105.00
0106.00 CALL SAV0032CL (&POLOGF &POLOGL &POLOGM)
0107.00
0108.00 ENDDO
0109.00
0110.00 /* CLOSING */
0111.00
0112.00 CHKTAP TAP01 ENDOPT(*UNLOAD)
0113.00
0114.00 CHGDTAARA LASTVOLM (%SST(&VOLM 1 4))
0115.00
0116.00 CHGVAR &MSG (' 磁気テープへのバックアップが完了しました。 +
0117.00 テープボリュームは、 '|> &VOLM |>' +
0118.00 ログは '|<&POLOGL|<'/'|<&POLOGF|<'('|<&POLOGM|<') です。 ')
0119.00
0120.00 SNDPGMMSG MSG(&MSG) TOMSGQ(*SYSOPR)
0121.00 MONMSG CPF0000
0122.00 SNDPGMMSG MSG(&MSG)
0123.00 MONMSG CPF0000
0124.00 SNDMSG MSG(&MSG) TOUSR(KAKEFUDA)
0125.00 MONMSG CPF0000
0126.00
0127.00
0128.00 TAGEND:
0129.00
0130.00 STRSBS QINTER
0131.00 MONMSG CPF0000
0132.00
0133.00 RETURN
0134.00 ENDPGM
|
SAVSAVFDTAにてオフライン保管
0001.00 /*--------------------------------------------------------------------- 0002.00 /* 0003.00 /* SAVSAVFLIB (SAVFLIB -> TAP01) 0004.00 /* 0005.00 /* PROGRAMMER . . . . . KAKEFUDA 0006.00 /* CREATION . . . . . . 2003/05/12 0007.00 /* MODIFICATION . . . . 0008.00 /* 0009.00 /* 0010.00 /*--------------------------------------------------------------------- 0011.00 0012.00 PGM (&PILOGF &PILOGL &PILOGM) 0013.00 0014.00 DCL &PILOGF *CHAR 10 0015.00 DCL &PILOGL *CHAR 10 0016.00 DCL &PILOGM *CHAR 10 0017.00 DCL &SAVFLIB *CHAR 10 'SAVFLIB' 0018.00 0019.00 DCLF QADSPOBJ 0020.00 0021.00 DSPOBJD &SAVFLIB/*ALL *FILE + 0022.00 OUTPUT(*OUTFILE) OUTFILE(QTEMP/SAVFLIST) 0023.00 0024.00 OVRDBF QADSPOBJ QTEMP/SAVFLIST 0025.00 0026.00 RCVF: 0027.00 0028.00 RCVF *N QLIDOBJD 0029.00 0030.00 MONMSG CPF0864 *N GOTO EOF 0031.00 0032.00 IF ( &ODOBAT = 'SAVF') DO 0033.00 SAVSAVFDTA SAVF(&ODLBNM/&ODOBNM) DEV(TAP01) + 0034.00 ENDOPT(*LEAVE) OUTPUT(*OUTFILE) + 0034.01 OUTFILE(&PILOGL/&PILOGF) OUTMBR(&PILOGM *ADD) 0035.00 MONMSG CPF0000 0036.00 ENDDO 0037.00 0038.00 GOTO RCVF 0039.00 0040.00 EOF: 0041.00 0042.00 DLTOVR QADSPOBJ 0043.00 0044.00 RETURN 0045.00 ENDPGM |
PKで始まらないすべての*ALLUSRライブラリーを磁気テープに保管する。
0001.00 /*--------------------------------------------------------------------- 0002.00 /* 0003.00 /* ADDITIONAL SAVLIB 0004.00 /* 0005.00 /* PROGRAMMER . . . . . KAKEFUDA 0006.00 /* CREATION . . . . . . 2003/05/12 0007.00 /* MODIFICATION . . . . 0008.00 /* 0009.00 /* 0010.00 /*--------------------------------------------------------------------- 0011.00 0012.00 PGM (&PILOGF &PILOGL &PILOGM) 0013.00 0014.00 DCL &PILOGF *CHAR 10 0015.00 DCL &PILOGL *CHAR 10 0016.00 DCL &PILOGM *CHAR 10 0017.00 DCL &PILIB *CHAR 10 0018.00 DCL &SAVFLIB *CHAR 10 'SAVFLIB' 0019.00 0020.00 0021.00 SAVLIB LIB(*ALLUSR) DEV(TAP01) ENDOPT(*LEAVE) + 0022.00 OMITLIB(PK* &SAVFLIB) OUTPUT(*OUTFILE) + 0023.00 OUTFILE(&PILOGL/&PILOGF) OUTMBR(&PILOGM *ADD) 0024.00 MONMSG CPF0000 0025.00 0026.00 RETURN 0027.00 ENDPGM |
※ コマンド DSPSAVLOG(保管ログファイルSAVLOGの照会PGM)やDSPVOL(データエリア LASTVOLの管理)は自作のコマンドです。また、ここのサイトにはありません。de
以上
2004-06-05
|
You are at K's tips-n-kicks of AS/400
|
|
|||
|
|