When a file open is attempted, FairCom DB checks to see if either a file with the same name has already been opened, or if a file with the same unique ID has already been opened. In either case, the match means that a physical file open is not required. Instead the open count for the file is incremented. Checking the unique file ID permits different applications and/or client nodes to refer to the same file with different names. For example, consider the situation where independent clients operate from different drive or path mappings.
Fri Aug 20 07:56:17 2014
- User# 00021 Matching file IDs: ./data/\ctreeSQL.dbs\custmast.dat <> /data/\ctreeSQL.dbs\custmast.dat
Fri Aug 20 07:56:17 2014
- User# 00021 Reassigning file ID ...
Fri Aug 20 07:56:17 2014
- User# 00021 /data/\ctreeSQL.dbs\custmast.dat
If two different files have the same file ID, (a 12-byte value consisting of a Server ID, a time stamp, and a transaction log sequence number), problems will arise as the second file would not actually be opened. The ID is constructed such that no two files can have the same ID unless someone copies one file on top of another. See the warning below.
When a file without a matching name does match the unique file ID, a message is sent to the system console indicating the names of the two files involved. This message can be suppressed by adding the following entry to the FairCom Server configuration file:
MONITOR_MASK MATCH_FILE_ID
Warning: Do NOT copy, move, or delete files controlled by the server while the server is operational!
As discussed above, copying a file to a new name is typically the only way the file IDs can match. The Update File ID utility, ctfileid, is available to update the file ID number should this become absolutely necessary. This utility should only to be run on a file when the server is stopped.
See Also: