
Do you have to recompile your file if you change this parameter to *yes?

Do you have to recompile your file if you change this parameter to *yes?
In general, no.
The reason to recompile is usually that the I/O buffer layout has changed. That might be because a field length or data type was changed or fields were added or removed which caused other fields to be in different locations in the buffer.
Changing the REUSEDLT() attribute doesn’t cause any differences in the buffer layout, so nearly all programs still see the same record image as before.
An exception would be a program that actually relied upon the physical sequence of records in the file. Processing sequentially by “arrival sequence” means that records come into the program beginning physically with record #1 and continuing with each higher record number.
Reusing deleted record space allows DB2 to put new records into spaces where records have been deleted rather than simply always appending them to the end of the file. That would require changes to the logic of such a program and necessarily lead to a recompile.
Nowadays, that kind of logic should be very rare. A timestamp field or other key field should be in control of the sequence. Or a program simply won’t care if record #10 happened to be added physically after record #100.
Nevertheless, such logic does need to be watched for, particularly in older applications or even in large products.
Tom















