Product Documentation

Database Administrator's Guide

Previous Topic

Next Topic



PUTHDR() called within a transaction causes a pre-image space entry that contains the old and new header member value. On an abort, the old value is restored. On commit the new value is reset. "Reset" because at the time of the call to PUTHDR(), the header member takes on the new value. But header values are not like ordinary record contents. They are not typically under transaction control. We do not want to lock the record header during a transaction and not unlock until the commit. PUTHDR() uses the more traditional transaction approach to permit special modifications to the file under transaction control. However, for the ctSERNUMhdr, ctLOGEOFhdr and ctPHYEOFhdr header members, this approach can lead to unexpected problems as these entries are always increasing and have an aspect of uniqueness about them. For ctSERNUMhdr, ctLOGEOFhdr and ctPHYEOFhdr, PUTHDR() behaves as before (creating pre-image space entries, restoring old value on abort, setting the new value at the time of the call) except that on commit the header value is not reset to the new value. The prior behavior can be restored by adding this keyword option.