I get an edit Timeout when a record is locked. Is there any way to control the time-out instead? Is the TnxTable.Timeout property involved in this at all?

Yes. That's the value you want to reduce. It's the maximum time in msec the server will wait for the lock to become available.

Although I must say that to me it seems strange to use the same time-out for how long you want to wait for a record to be unlocked as for how long you wait for the server to respond at all to various client operations.

Just for the record:

  • Setting a different timeout on a TnxTable only affects that single cursor. All other cursors (TnxTable/TnxQuery), database or sessions are not affected.
  • You can change the timeout value at any time. It's not something that you have to decided about before opening the table.
  • really the one and only thing that is affected by this timeout value is waiting for locks, be it content locks (record and table level, e.g. Edit / LockTable) or transaction locks (implicitly acquired for all read / write access to a table in the context of a transaction).
  • Independent of how many locks a specific call has to acquire, when a call enters the server engine the current time is stored. All wait operations in the context of this single call will apply the timeout relative to the moment when the call initially entered the server engine.
Home | Site Contents | Documentation | FAQ, Tips & Tricks | NexusDB FAQ | Transactions, Locks, etc