Saludos.
No se si migraste o podrías migrar a FB >= 2.
En esta versión existe la clausula
LOCK TIMEOUT.
Cita:
Lock Timeout for WAIT Transactions
A. Karyakin, D. Yemanov
All Firebird versions provide two transaction wait modes: NO WAIT and WAIT. NO WAIT mode means that
lock conflicts and deadlocks are reported immediately, while WAIT performs a blocking wait which times out
only when the conflicting concurrent transaction ends by being committed or rolled back.
The new feature extends the WAIT mode by making provision to set a finite time interval to wait for the concurrent
transactions. If the timeout has passed, an error (isc_lock_timeout) is reported.
Timeout intervals are specified per transaction, using the new TPB constant isc_tpb_lock_timeout in the API or,
in DSQL, the LOCK TIMEOUT <value> clause of the SET TRANSACTION statement.
|
Y también:
Cita:
Lock Timeout for WAIT Transactions
A. Karyakin, D. Yemanov
The new feature extends the WAIT mode by making provision to set a finite time interval to wait for the concurrent
transactions. If the timeout has passed, an error (isc_lock_timeout) is reported.
Timeout intervals can now be specified per transaction, using the new TPB constant isc_tpb_lock_timeout in
the API.
Note
The DSQL equivalent is implemented via the LOCK TIMEOUT <value> clause of the SET TRANSACTION
|
Un ejemplo:
Cita:
|
SET TRANSACTION WAIT SNAPSHOT NO AUTO UNDO LOCK TIMEOUT 10
|
Extraído de
Firebird 2.0.1 Release Notes.
Hasta luego.