The Question is:
I got an error "rms-e-eof end of file detected" while processing an indexed rms
-file. File size is only about 200 000 blocks. Can it be set somewhere in the
file-attributes that the file cannot grow bigger than that ?
The Answer is :
The word "processing" is vague, but it is expected that an application
will receive "%RMS-E-EOF, end of file detected" if the "processing"
referenced is a sequential file read.
By definition, every file has a finite length. Extending a file
involves writing to the file. If your application is getting EOF
errors while writing, then the internal structure of the file appears
corrupt, or the error is spurious and some other problem has occured.
One potential cause of a corruption is an index that is pointing
beyond the valid data range in the file. The OpenVMS Wizard would
encourage the use of CONVERT to try to uncorrupt the file -- this
assumes that the corruption can be resolved by CONVERT and that it
does not involve the data area of the file.
You may well have to restore a BACKUP of the file.
Do not copy, move, delete, nor otherwise disturb the existing file.
Do try using ANALYZE/RMS, and you may be able to make a more detailed
determination of the corruption using tools such as DUMP.
Corruptions can potentially arise when a process is deleted while
deferred write is enabled, during an OpenVMS system crash, when a
rogue write targets the file, when an unrecoverable disk block error
occurs underneath the file, and during a power failure -- the more
caching that is in use between the application and the non-volatile
storage medium, the greater the potential for data corruptions.