Records are locked only when an explicit lock is requested by the client application or when a record is updated. This solves most of the locking problems that DBMS users frequently encounter.
Locking behavior using the DBMS data source differs in some cases from that of typical DBMS strategies because the DBMS data source relaxes some of the strict locking strategies DBMS usually imposes when reading records. However, update related locks are imposed by DBMS regardless of the data source. Refer to the DBMS documentation set for further discussion of locking issues.

Locking-related aspects of the DBMS data source include:

  • No records are locked when read unless a lock is requested by the client application. Because DBMS automatically locks every record you read, the data source driver implements this by unlocking each record immediately after it is read.
  • If a client explicitly requests a lock on a particular record, the data source driver implements this request by placing the record DBKEY in a keeplist (see the DBMS documentation set for details on keeplists). If the client subsequently unlocks the record, the data source driver removes the corresponding DBKEY from the keeplist.
  • Updating a record causes the record to be locked for the duration of the transaction.
  • Connecting or disconnecting a record from a set causes an update lock on the record itself, and possibly on the prior and next records in a chain set. These locks remain in effect for the duration of the transaction.