On 21-Mar-2012 08:51 , Gqcy wrote:
I just read a techie tip,

While suggesting "*NOMAX does not mean that a file can contain an infinite number of records" is very true. But to imply that ""There is no danger of filling up the disk space" is very far from true. A sufficiently small amount of [available] storage can be used up quickly, even using a relatively simple record format and a small number of rows. There are customers who know that claim is untrue, having experienced outages as a direct side effect of program(s) having gone "into a loop and fill up the disk space with output operations" or even legitimate and properly operating functions like CPYF or RGZPFM; that the DB operations did not cause the crash, caused instead by a critical OS operation failing to complete due to no available storage, is of little consolation in such cases.

what if I am currently running at 70% disk used, on a 600GB ASP?

Any snapshot is interesting, but concurrency deprecates a measurement from a point-in-time; i.e. not like DASD is sequential media such that growth during one operation must complete before growth starts in the next operation. Also temporary storage within the same pool would give more variability; e.g. a cross join implemented using temporary running output to a database file with *NOMAX grows in both temp and permanent storage which is effectively a double-down on storage depletion.

what if the rogue file has 50 logical files with big keys?

The growth would be to the physical dataspace directly, and then would include also growth in maintained indexes over that data. If the access paths had maintenance delayed or turned off, then the growth would await activation of maintenance. There could also be a TRIGGER that does something to take storage. The file may be journaled, and the access paths may be journaled; logging gives concurrent growth.

I know my SQL tables are *NOMAX, so maybe it's no big deal...

If there are means activated to intervene before /critical storage/ limits have been exceeded, then SIZE(*NOMAX) could be of minimal general concern. One part of an overall approach, includes setting a "Maximum allowed storage" MAXSTG on each [group] USRPRF.

Personally I would set a _much larger_ SIZE() default on CRTPF [for initial size mostly], and I always customized the _model outfiles_ [and printer files] in QSYS libraries to have much larger values. In neither case did I specify *NOMAX as the new\changed default.

Regards, Chuck

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2019 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].