如何找出物理文件中损坏的记录

本文提供了一段CL源程序,用于检测AS/400系统中物理文件的损坏记录。程序通过扫描指定范围内的库,检查PF和TB类型的文件,并输出结果到打印文件。注意不要在生产环境中直接运行。
 如何找出物理文件中损坏的记录?
解答 下面提供的CL源程序可以帮助您找出物理文件中损坏的记录,但是不支持其他文件
系统中的文件类型,例如:/QNTS,/QOPT等。也不支持OS/400上其他类型的对象。

如果您的操作系统版本在R420以上,则该程序需要一个逻辑文件来支持:
/**********************************/
R RECORD PFILE(QSYS/QADBXREF)
DBXFIL
DBXLIB
DBXATR
DBXRDL
K DBXLIB
K DBXFIL
/**********************************/

以下就是CL源程序,将该程序编译成可执行代码,就可以运行了。
**********************************************************************
** 特别提示: ----------------------------------------------------- -**
** 请不要在生产机器上运行该程序!!请先在测试机器上充分测试后再运行!! -**
**********************************************************************

/* ACCEPT TWO PARAMETERS, THE RANGE OF LIBRARIES TO BE SCANNED ---- -*/
/* DO NOT FORGET TO CHECK FILES STARTING WITH $,@, # -------------- -*/
/* IF YOU WANT TO SCAN EVERYTHING, START WITH $ AND --------------- -*/
/* END WITH Z999999999 -------------------------------------------- -*/

/* WARNING: - A SMALL SPOOLED FILE WILL BE CREATED FOR EACH ----------*/
/* FILE TESTED. IF NO ERRORS ARE FOUND, THE SPOOL */ /* FILE IS EMPTY.*/

PGM PARM(&START &END)

/* LIBRARY TO START WITH --------------------------------------------*/
DCL VAR(&START) TYPE(*CHAR) LEN(10)

/* LIBRARY TO STOP AFTER --------------------------------------------*/
DCL VAR(&END) TYPE(*CHAR) LEN(10)
DCL VAR(&NBRRCDS) TYPE(*DEC) LEN(6)
DCLF FILE(CHECKLF) ALWNULL(*YES)

CHGJOB LOG(4 30 *SECLVL) LOGCLPGM(*NO)
OVRPRTF FILE(*PRTF) HOLD(*YES)

/* POSITION IN THE FILE TO THE PARTIAL KEY LIBRARY NAME------------ */
OVRDBF FILE(CHECKLF) POSITION(*KEYAE 1 RECORD + &START) OPNSCOPE(*JOB)
RCF: RCVF
MONMSG MSGID(CPF0864) EXEC(GOTO CMDLBL(ENDP))
CHGVAR VAR(&NBRRCDS) VALUE(32000 / &DBXRDL)
OVRDBF FILE(&DBXFIL) OPNSCOPE(*JOB) SEQONLY(*YES + &NBRRCDS)
IF COND(&DBXLIB > &END) THEN(GOTO CMDLBL(ENDP))
IF COND(&DBXATR = 'PF' │ &DBXATR = 'TB') THEN(DO)
IF COND(&DBXRDL > 4) THEN(DO)
CPYF FROMFILE(&DBXLIB/&DBXFIL) TOFILE(*PRINT) +
FROMMBR(*ALL) FROMRCD(1) INCCHAR(*RCD 1 + *EQ '[-')
MONMSG MSGID(CPF0000)
ENDDO
ENDDO
DLTOVR FILE(&DBXFIL)
GOTO CMDLBL(RCF)
ENDP:
ENDPGM

转载于:https://www.cnblogs.com/wildfish/archive/2008/01/09/1032032.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值