日志接收器有其特殊性:
1,希望可以长期保存,以便在发现问题的时候有据可查。
2,希望每天单独备份在磁带上,这样就需要在日备份之外另备一套。
3,不希望每天收工处理。
这样就写了如下程序,可以通过BRMS在每天中午备份没有备份过的日志接收器。
JRNRCVBKC---- 备份主程序
PGM
DCL VAR(&TOQUE) TYPE(*CHAR) LEN(10)
DCL VAR(&CURRC) TYPE(*CHAR) LEN(10)
/* MAIN */
MONMSG MSGID(CPF0000)
CALL PGM(RTC000)
DSPOBJD OBJ(R5ASPPROD/*ALL) OBJTYPE(*JRNRCV) +
DETAIL(*FULL) OUTPUT(*OUTFILE) +
OUTFILE(QTEMP/JRNRCVLST)
RTVJRNE JRN(R5ASPPROD/RCJOURNAL) RTNRCV(&CURRC)
OVRDBF FILE(JRNRCVLST) TOFILE(QTEMP/JRNRCVLST) +
MBR(*FIRST)
/* BACK JRNRCV AND MAKE LOG */
CALL PGM(JRNRCVSAVR) PARM(&CURRC)
DLTOVR FILE(*ALL)
ENDPGM
JRNRCVSAVR --- 备份RPGLE 程序
*****************************************************************
* F i l e S p e c i f i c a t i o n
*****************************************************************
FJRNRCVLST IF E DISK RENAME(QLIDOBJD:RRCVLST)
FJRNRCVLG IF A E K DISK
*****************************************************************
* I n p u t S p e c i f i c a t i o n
*****************************************************************
D @DATE S D
D @DATES S 6S 0
D @DATEMDY S 6A
*****************************************************************
* M a i n l i n e R o u t i n e
*****************************************************************
C *ENTRY PLIST
C PARM @CRURCV 10
C
C TIME @DATE
C *MDY MOVE @DATE @DATES
C MOVE @DATES @DATEMDY
*READ LIST
C 1 SETLL RRCVLST
C DOW 1=1
C READ RRCVLST
C IF %EOF(JRNRCVLST)
C LEAVE
C ENDIF
*IF NOT FROM RCJOURNAL
C IF ODJRNM <> 'RCJOURNAL'
C ITER
C ENDIF
*IF CHANGED TODAY
C* IF @DATEMDY = ODLDAT
C* ITER
C* ENDIF
*IF ATTACHED RECIEVER
C IF ODOBNM = @CRURCV
C ITER
C ENDIF
*ALREADY SAVED
C ODOBNM CHAIN RRCVLOG
C IF %FOUND
C ITER
C ENDIF
*
C MOVE ODLBNM @OBJLIB 10
C MOVE ODOBNM @OBJNAM 10
C MOVE 'N' @ERR 1
*SAVOBJ
C CALL 'JRNRCVSAVC'
C PARM @OBJLIB
C PARM @OBJNAM
C PARM @ERR
*LOG
C IF @ERR = 'N'
C CLEAR RRCVLOG
C MOVE @OBJNAM RCNNAME
C MOVE @DATE SAVDATE
C MOVE ODCDAT @DATES
C *MDY MOVE @DATES FROMDATE
C MOVE ODCTIM @DATES
C MOVE @DATES FROMTIME
C MOVE ODLDAT @DATES
C *MDY MOVE @DATES TODATE
C MOVE ODLTIM @DATES
C MOVE @DATES TOTIME
C WRITE RRCVLOG
C ENDIF
*
C ENDDO
*
C SETON LR
C RETURN
JRNRCVSAVC --- BRMS 调用程序
PGM PARM(&LIB &OBJ &ERR)
DCL VAR(&LIB) TYPE(*CHAR) LEN(10)
DCL VAR(&OBJ) TYPE(*CHAR) LEN(10)
DCL VAR(&ERR) TYPE(*CHAR) LEN(1)
/* MAIN */
SAVOBJBRM LIB(&LIB) OBJ(&OBJ) DEV(TAPMLB01) +
MEDPCY(BACKUPRCV)
MONMSG MSGID(CPF0000) EXEC(CHGVAR VAR(&ERR) +
VALUE('Y'))
STRMNTBRM
RETURN
ENDPGM
JRNRCVLG --- 备份日志
A R RRCVLOG
A RCNNAME 10A TEXT('RCVNAME')
A COLHDG('RCV NAME')
A SAVDATE L TEXT('SAVE DATE')
A COLHDG('SAVE DATE')
A FROMDATE L TEXT('FROM DATE')
A COLHDG('FROM DATE')
A FROMTIME T TEXT('FROM TIME')
A COLHDG('FROM TIME')
A TODATE L TEXT('FROM DATE')
A COLHDG('FROM DATE')
A TOTIME T TEXT('FROM TIME')
A COLHDG('FROM TIME')
A K RCNNAME
BRMS 需要添加对应的媒体类型,然后加入磁带,并且设置好过期时间。 每天即可自动备份日志接收器了。
添加新评论0 条评论