Record Locking
dbFront includes the ability to automatically lock the current record and all opened child records so that a user can work on their data without fear that another user will come by and change things unexpectedly.
This record locking happens within the dbFront application. The record locks do not appear at the database level.
Record Locking in Action
The image to the right shows three browser windows open:
- The top window is Chrome showing an editable record,
- Behind that is another tab in the same browser and session showing the record as read-only,
- Behind that is a separate browser with another user logged in. This simulates what another user on the network would see.
As of version 1.1, dbFront supports On-Enter and On-Edit record locks.
On-Edit Locking
"On Edit" record locking happens when users attempt to edit a record, either within the table grid or in the form. "On Edit" record locking works as follows:
- As soon as dbFront recognizes an edit it will attempt to lock the current record,
- The record lock will grow to encompass any child records that are edited,
- The record lock will be cleared if a user discards or saves their changes,
- Automatically drop locks if a user navigates away or closes a browser tab.
- Automatically attempt to recover locks on changed records upon return navigation.
- Automatically purge locks if the user session expires.
On-Enter Locking
The original style of record locking in dbFront is referred to as "On Enter" record locking because the record is locked as the user enters it. dbFront "On Enter" Record Locking works as follows:
- The first person with edit privileges to view a record will get an exclusive lock on that record.
- The record lock will grow to encompass all child records they view or edit,
- Automatically drop locks if a user navigates away or closes a browser tab.
- Automatically attempt to recover locks upon return navigation.
- Cleanup all Tab/Session locks if the user moves to a new primary record.
- Automatically purge locks if the user session expires.
Configuring Record Locking
Record locking is enabled and used by default in all dbFront applications. Record Locking style is defaulted in the database preferences and configured in the table preferences. This means that different tables in the same database could have different Record Locking settings.
Prior to dbFront version 1.1, the default method was On-Enter. With the release of dbFront 1.1, the new default is On-Edit because it is more intuitive and less likely to cause unnecessary locks.
Managing Record Locks
This image from the System Monitor lists active record locks with details.
Administrators can view and delete active record locks from the second tab of the System Monitor. To access the System Monitor open the Help menu and select System Monitor.