Consultor Eletrônico



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.