Record file addresses (RFAs)

RFAs are supported on Windows and UNIX.

An RFA is a binary identifier that uniquely identifies the location of a record in a file. It can be used to access previously read records without the use of keys or record numbers. On ISAM files, access is direct without having to read the index.

The contents of an RFA are system specific.

Static RFAs

Static RFAs are only supported for ISAM files and are automatically included in all Revision 6 or newer files.

A record’s static RFA will never change throughout the life of a file. (However, reorganizing an ISAM file can cause a static RFA to become invalid, as explained below.) Static RFAs are primarily intended as a way to retrieve a previously read/unlocked record bypassing index access in a typical read, unlock, re-read, update sequence and are especially important with variable or compressed files.

Normally, Synergy DBL reuses released data space, thereby eliminating the need to reorganize your ISAM files. Files that use static RFAs, however, may contain deleted data space that is not reusable; you can use the isutl utility with the -vb option to find out how many bytes in your data partition are unusable. (See isutl -r for more information.) When this occurs in excess, isutl -vi will report it as a warning.

When you want to free up unusable file space used by the static RFAs for a file, you can use isutl -ro to reorganize an ISAM file. (See isutl -r for more information.) If you reorganize your ISAM file, previously saved static RFAs for that file are no longer valid.

Important

Converting or reordering the data file using isutl -r options like -a, -c, -o, -s, -qfile (with compress, sgrfa, static_rfa, or tbyte), etc., may change RFAs and GRFAs, causing the usage of saved address values to become stale.

Global RFAs (GRFAs)

A GRFA is a 10-byte binary identifier that uniquely identifies the location and contents of a record in a file. A GRFA consists of a 4-byte record CRC and a 6-byte RFA. GRFAs are used to access previously read records without the use of keys or record numbers and also detect when the record has changed.

Because the GRFA includes a record CRC, it provides a way for transactions to be validated before being committed. A CRC is derived from the record in order to detect changes; any change to the record generates a different CRC.