Kbase P21705: SQL-92: Error Failure getting record lock on a record when there is no index defined
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  10/15/2008 |
|
Status: Verified
FACT(s) (Environment):
Progress 9.x
SYMPTOM(s):
SQL-92: Error Failure getting record lock on a record when there is no index defined
All Transaction Isolation Level would produce the same error
No fields in the related table is part of an Index
First session is updating or selecting records without committing the transaction
Executing DML statements without committing
Error "Failure getting record lock on a record from table..." is returned when concurrent session is attempting to update/select any records from the same table as the 1st session
CAUSE:
When a field is not indexed, any update (or select) is forced to do a table scan. The 1st transaction is not yet committed and therefore holds an exclusive record lock, the 2nd transaction encounters the exclusive lock and is blocked.
Note that the transaction isolation level is promoted to serializable during
the record update, so changing it on the client will have no affect.
FIX:
Two possible options are to commit the 1st Transaction or use an Index on the
field.