If your AS/400 is heavily used by word processing users, it may be of interest to you that document storage and use consumes very large amounts of disk and that there are no simple ways to determine how much disk is used for Document Library Object (DLO) storage on the AS/400. Further, you may have wondered if there is any way to ascertain how old the documents in the various folders are, i.e., how long since they were last used. This information could be used to encourage users to purge or archive older documents. Also, AS/400 managers should be aware of the RGZDLO command, whose purpose is similar to the CONDENSE command on the S/36. The RGZDLO command reorganizes a folder on the AS/400, returning as much as 30 percent of the space to the system. My own folder, after a RGZDLO was run, shrank from 8MB to 5MB of used space. RGZDLO can be run against a single folder or all folders in the system. If you run for all folders, you should allot a large time span for its completion. Depending on the number of users who are actively engaged in word processing, it could take over five hours to compress all the folders. On our system there are 650 folders and we determined that an overnight RGZDLO would take six hours.
Shown here are3a, 3b, 3c, and 3d which can be used to analyze the contents of folders to determine the age of documents (last date changed). 3a lists the Analyze Folder Documents (ANZFLRDOC) command. 3b has the CPP (program FLR001CL), which uses the DSPFLR command to create an outfile which is then read to create another outfile with one record for each document. 3c is RPG program FLR001RG, called by FLR001CL, which plays games with the date field to compute the age. A word of explanation: the date field in the outfile is in edited form, i.e., with imbedded slashes and cannot (as far as I know) be used for date computations. Notice that the RPG program uses program-defined file definitions, even though the outfile created is externally defined.
Shown here are Figures 3a, 3b, 3c, and 3d which can be used to analyze the contents of folders to determine the age of documents (last date changed). Figure 3a lists the Analyze Folder Documents (ANZFLRDOC) command. Figure 3b has the CPP (program FLR001CL), which uses the DSPFLR command to create an outfile which is then read to create another outfile with one record for each document. Figure 3c is RPG program FLR001RG, called by FLR001CL, which plays games with the date field to compute the age. A word of explanation: the date field in the outfile is in edited form, i.e., with imbedded slashes and cannot (as far as I know) be used for date computations. Notice that the RPG program uses program-defined file definitions, even though the outfile created is externally defined.
Another word of warning. The age routine will only work for the 20th century. If you are under 55 years of age, you should consider using a modified computation routine, since you will still be working in 2000.
To determine the size of folders, see 3d. This will produce a file containing one record per document. The file can be read by a Query or RPG program to list a summary for each folder. The outfile is externally described by the system and contains, as one of the fields, the object size. The folder name is the system name, not the user's.
To determine the size of folders, see Figure 3d. This will produce a file containing one record per document. The file can be read by a Query or RPG program to list a summary for each folder. The outfile is externally described by the system and contains, as one of the fields, the object size. The folder name is the system name, not the user's.
-- Ted May
Techtalk: Managing Document Storage
Figure 3A Command ANZFLRDOC
ANZFLRDOC: CMD PROMPT('Analyze Folder Documents')
Techtalk: Managing Document Storage
Figure 3B CL program FLR001CL
FLR001CL: + PGM DCLF FILE(LISTFLRS) DSPFLR FLR(*ALL) OUTPUT(*OUTFILE) LEVEL(*CURRENT) OUTFILE(LISTFLRS) CLRPFM FILE(ALLDOCS) MONMSG MSGID(CPF3142) READ: + RCVF MONMSG MSGID(CPF0864) CMPDTA(RETURN) IF COND(&FLRNAM *GT 'Q') THEN(DO) IF COND(&FLRNAM *LT 'QZZZZ') THEN(GOTO CMDLBL(READ)) ENDDO DSPFLR FLR(&FLRNAM) TYPE(*DOC) OUTPUT(*OUTFILE) LEVEL(*CURRENT) + OUTFILE(ALLDOCS) OUTMBR(*FIRST *ADD) GOTO CMDLBL(READ) CALL PGM(FLR001RG) ENDPGM
Techtalk: Managing Document Storage
Figure 3C RPG program FLR001RG
FALLDOCS IP F 256 DISK FQSYSPRT O F 132 OF PRINTER * IALLDOCS NS 01 I 1 16 FOLDERL1 I 64 75 DOC I 76 119 DESC I 120 1210MON I 123 1240DAY I 126 1270YR * * Set up number of months in current date (20th century only) * Do it once only with indicator 90 C *IN90 IFEQ '0' C UYEAR MULT 12 NOWMON 40 C ADD UMONTH NOWMON C MOVE '1' *IN90 C END * COMPUTE NUMBER OF MONTHS AGE OF DOCUMENT C YR MULT 12 MONS 40 C ADD MON MONS C NOWMON SUB MONS TMONS 40 * C TMONS IFGT 24 C ADD 1 CTR24 40 C ADD 1 CTR24T 50 C GOTO END C END * C TMONS IFGT 12 C ADD 1 CTR12 40 C ADD 1 CTR12T 50 C GOTO END C END * C TMONS IFGT 6 C ADD 1 CTR6 40 C ADD 1 CTR6T 50 C GOTO END C END * C TMONS IFGT 3 C ADD 1 CTR3 40 C ADD 1 CTR3T 50 C GOTO END C END * C END TAG C ADD 1 CURTOT 40 C ADD 1 TOTDOC 50 * OQSYSPRT H 0406 1P O OR OF O 6 'AGEDOC' O UDATE Y 85 O 110 'Page' O PAGE Z 115 O H 1P O OR OF O 15 'Folder' O 30 'Tot Docs' O 40 '3+Mons' O 48 '6+Mons' O 56 '12+Mons' O 64 '24+Mons' O D 00 L1 O FOLDER 20 O T 1 L1 O CURTOTZB 28 O CTR3 ZB 39 O CTR6 ZB 47 O CTR12 ZB 55 O CTR24 ZB 63 O T 1 LR O TOTDOCZ 28 O CTR3T Z 39 O CTR6T Z 47 O CTR12TZ 55 O CTR24TZ 63
Techtalk: Managing Document Storage
Figure 3D CL program FLR001CLA
FLR001CLA: + PGM DSPOBJD OBJ(QDOC/*ALL) OBJTYPE(*DOC) OUTPUT(*OUTFILE) + OUTFILE(FLRSIZE) ENDPGM
LATEST COMMENTS
MC Press Online