Advantage Compatibility Locking with Xbase Files

Advantage Concepts

With Xbase files, the Advantage Compatibility Locking mode is provided to allow data to be shared by Advantage applications and non-Advantage applications simultaneously. When using Advantage Compatibility Locking, the Advantage Database Server cannot make full use of the internal queuing algorithm for lock management used with Advantage Proprietary Locking. Read-through index locking is not available. Additionally, locks must be made visible to non-Advantage applications by obtaining network operating system locks. When using Compatibility Locking, files are opened in the mode specified by the application. That is, if the file is specified to be opened in a shared mode, the file is opened by the Advantage Database Server in a "deny none" mode. This also allows non-Advantage applications to open the tables and index files in a read/write mode.

With Xbase files, Advantage Compatibility Locking is available with both the Advantage Database Server and the Advantage Local Server.

Note Advantage Compatibility Locking allows other applications to write to tables and index files. This decreases the amount of concurrency Advantage can provide and reduces performance. There is a possibility of index corruption with Advantage Compatibility Locking because tables and index files may become only partially updated if a workstation goes down that is running a non-Advantage application. It is recommended that you use Advantage Compatibility Locking only when first converting your applications to use Advantage that share files with other non-Advantage applications. Once all applications are converted to use Advantage, use Advantage Proprietary Locking to regain index integrity and concurrency control, and improve performance.

 

Note If you are sharing your Advantage DBF/FPT/CDX files with a Comix-compatible DBF/FPT/CDX database driver, you need to verify the files created by the Comix driver are truly FoxPro-compatible. If your files were created by the Comix driver, your FPT memo files must have a memo block size of 33 or greater in order for the Comix-created FPT files to be truly FoxPro-compatible, and therefore also be compatible with Advantage when reading/writing FPT memo files. If using a Clipper-based application with Comix, you must link cmxfox52.obj into your Comix application in order for the Comix RDD to use FoxPro compatible locking offsets, and therefore also be compatible with Advantage when you have specified that Advantage use compatible locking mode. If you don't, when the Advantage application locks record 69 (for example) and the Comix application tries to lock the same record, they will not recognize each others' record lock and will attempt to write to the same record at the same time. In summary, the Comix DBF/CDX/FPT RDD is not FoxPro-compatible (and thus not Advantage compatible) unless the two issues listed above have been addressed.