Table Locks

Index
TurboDB Components
    TTdbDataSet
    TTdbTable
    TTdbBatchMove
Turbo Database
    Overview
    Colum Data Types
    Queries
    Operators and Functions
    Working with Indexes
    Automatic Linking
    Working with Link and Relation Fields
    Shared Tables
    Table Locks
    Data Security
TurboDB Tools
    TurboDB Workbench
    TurboDB Data Exchange
    dataWeb Builder
    Visua Data Publisher
Frequently Asked Questions

[prev][next]

TurboDB Engine works with two kinds of locks on its database tables:

A write lock prevents other applications from writing to the table. Write locks are used to guarantee a consistent database table during a sequence of read operations, e.g. while an index is created. More than one application can acquire a write lock on a database table at the same time.

A total lock prevents other applications from any access to the table. Total locks are needed for multiple write operations to a table, e.g. altering the table structure. Only one application at a time can acquire a total lock on the table.

A table can be opened in exclusive mode as well. This mode opens the underlying database file in the exclusive file mode which prevents any other application from opening it. Opening a table in exclusive mode has a similar result to a total lock, but there are some differences:

Lock Files

Because TurboDB Engine is a file-based database engine, it must manage its locks via a lock file. The lock file for a table has the same name as the table itself but the extension is "net". The lock files contains a list of all applications that access the database table and manages the different locks on that table.

When an application wants to write to the database table, it must first look into the lock file to determine, if it is allowed to do so. If it is, it registers itself with the lock file for write access, performs the writing and than unregisters again. The lock file is created by the first application that accesses the table and deleted when the last application finishes access. Therefore a database table has no lock file as long as it is unused.

Note: If an application crashes or is killed while it has locked the table or a record of the table, it cannot remove the lock and the lock persists. This is especially the case while debugging an application that uses TurboDB Engine, because resetting it while it has acquired a lock has the same effect. If you see a lock file of an unused database table, you can simply erase it to clear all locks. The same is true if you keep getting error messages saying the table is locked by another user while you know that there is no other user.

[prev][next]

Last updated on 11/19/2000. Copyright (c) 2000 by dataWeb GmbH, Aicha, Germany. Turbo Database and TurboDB Components are products by dataWeb - the manufacturers of RAD tools for the Web. Please send your hints, questions and comments to Peter Pohmann.