Managing concurrency
The default template manages concurrent access.
With mobile apps, only one user accessing the app at any given time; data cannot be altered by another user. Concurrent access management is disabled for generated mobile apps.
- starts to modify the current row
- saves updates to the current row
- deletes the current row
If the user's data was updated by another user, a warning is raised and the user is asked to refresh the data. If the user rejects the request to refresh the data, the application stays in its current state and the application's process does not continue. If the user accepts the request to refresh the data, the current row is refreshed.
If the user's data was deleted by another user a warning is raised and the user is asked to refresh the data. If the user rejects the request to refresh the data, the application stays in its current state and the application's process does not continue. If the user accepts the request to refresh the data, the current row is deleted from the current data set.
In the database layer, the default template uses physical row locking for update and delete operations. This ensures data cannot be changed during the database transaction. Physical row locking can only be done with databases that handle locks.