ASA SQL User's Guide
Using Transactions and Isolation Levels
Transaction blocking and deadlock
Transaction blocking
If two transactions have each acquired a read lock on a single row, the behavior when one of them attempts to modify that row depends on the database setting BLOCKING. To modify the row, that transaction must block the other, yet it cannot do so while the other transaction has it blocked.
If BLOCKING is ON (the default), then the transaction that attempts to write waits until the other transaction releases its read lock. At that time, the write goes through.
If BLOCKING has been set to OFF, then the transaction that attempts to write receives an error.
When BLOCKING is OFF, the transaction terminates instead of waiting and any changes it has made are rolled back. In this event, try executing the transaction again, later.
Blocking is more likely to occur at higher isolation levels because more locking and more checking is done. Higher isolation levels usually provide less concurrency. How much less depends on the individual natures of the concurrent transactions.
For more information about the BLOCKING option, see BLOCKING option [database].