Lockwait
lockwait
is an Integer system variable of the Integer type. It allows you to set the maximum of seconds that each lock attempt will last using the Lock and Readlock instructions.
After a first failed lock attempt, the system will retry every second for the duration defined by the lockwait
value.
Syntax
lockwait
Lock ... with lockwait=...
Readlock ... with lockwait=...
Comments
If the value of lockwait
is negative, the attempt time will be unlimited. If its value is null, a single attempt will be made.
The Lock or Readlock syntax With lockwait =...
allows you to assign this variable only for the instruction considered.
lockwait
is not taken into account by For... With Lock
syntax, nor by the Update instruction. A single attempt will be made for these instructions.
Examples
# Update a counter value with a five seconds waiting time when conflict occurs
Trbegin
Raz BADLOCK
Lock COUNTER With lockwait = 5
If fstat
BADLOCK = 1
Rollback
Else
[C]COUNTER += 1
Commit
Endif
# Set the lockwait value to 0 (return immediately an error in case of locking issue)
lockwait=0
Readlock [MYT]KEY=MYKEY
If fstat=1
# The record has already been locked
...
Endif