Posted on 2001-08-29
Our in-house software consists of Delphi 2 applications running on a Novell network using Paradox tables with v5.1 BDE. The applications are rather data-intensive with multiple client directories and over 80 tables per directory (some 100mb+). Only one client directory is accessed at a time within an application but mutliple applications run on the same computer can access that directory. Multiple users can also access the same directory. Currently up to 25 users can be using the system. This is not client/server software.
All of the sudden we are having problems with Lock Timeouts. These can occur when a table is being opened or during processing. There are no table locks involved.
Other factors that may or may not be involved:
Multiple instances of tables can be open
TDatabase component used to switch to different client directories (open/close to switch)
Remote users are logging through a Citrix server
Recently (but after timeout problems) upgraded BDE from v4.x
Some things we have tried include:
Upgrading the BDE
Setting the Session PrivateDir to the users' local harddrive for sql lock files
Setting the Session LockRetry to a greater number
Lock files seem to be a mystery with the program having little control over them. The easy answer is to upgrade Delphi and use a different database but other factors at this moment prevent that. What can cause lock timeouts; can you programatically trap or prevent them?