Product Documentation

Database Administrator's Guide

Previous Topic

Next Topic


Client file information, on both client and server side, is automatically resized when:

  • A file open or create uses a file number beyond the existing client file range.
  • A new file number is assigned with automatic file number assignment (for example, OpenFileWithResource() with a -1 filno).

A configurable limit on files per user is enforced when this auto resizing comes into effect. The configuration keyword MAX_FILES_PER_USER defaults to 32767. An open/create which returns a FINC_ERR (604) implies that the create succeeded on the FairCom Server, but the client could not allocate memory for the local file info, and the newly created file has been closed.

Stand-alone applications support automatic resizing of file control information up to the limit imposed by ctMAXFIL, which defaults in ctoptn.h to 110. If ctMAXFIL is not defined, the limit defaults to 1024 files/FCBs.

Note: If a filno beyond the existing file range causes a resizing, the new number of files supported goes from 0 to filno + MAXMEMB + 1, with FCBs allocated for all potential file numbers in the range. Use automatic file number assignment for maximum memory efficiency.

For example, if InitISAM() requests 100 files and OpenCtFile() uses file number 1000, resizing changes the number of files supported to 1000 + MAXMEMB + 1, or 1032. All the files between 100 and 1000 are now available. By contrast, if an automatic file number assignment causes resizing, the file number range is only extended by MAXMEMB + 1. If InitISAM() requests 100 files and OpenFileWithResource(-1,...) causes resizing, the number of files supported would increase to 132.

Default: 32767

See Also



In This Section

Maximum Index Members per File (MAXMEMB)

Previous Topic

Next Topic

Maximum Index Members per File (MAXMEMB)

The default for the MAXMEMB (the number of index members per single index file) has been updated to 127 allowing a larger number of segments per index.

We now define ctMAXMEMB in ctopt1.h instead of in ctopt2.h, because ctport.h references ctMAXMEMB and it is included before ctopt2.h.

We also define MAXMEMB to ctMAXMEMB in ctopt1.h.