Kbase 19569: Overview of Version 9 Table Locks
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  06/03/2000 |
|
Title : Overview of Version 9 Table Locks
This document applies to: Progress Database
Version and Release Number: 9.X
Summary:
As part of the implementation of the SQL-92 database in version 9, the Progress database now supports table locks. Previous versions only supported row (record) locks. This kbase will give a high-level discussion on table locking within the V9 database.
Step-by-Step Details:
The V9 database supports a hierarchical locking mechanism. It is a two level hierarchy:
- tables
- rows within tables
The row locks are the same as the record locks in previous versions. The table locks allow SQL-92 operations on the database, and also tablemove and indexmove features.
The hierarchical locking is not the default locking model. The database will operate only with row level locking until the first table lock is requested. At that point, the database will switch into hierachical locking. When the table locking is no longer necessary, the locking will revert back to row level locking.
Table locks can be requested by the following methods:
- performing a tablemove or indexmove command
- executing the LOCK TABLE command from a SQL-92 client
- setting the transaction isolation level to serializable from a SQL92 client
Note that there is currently no method to request a table lock from the 4GL (or SQL-89).
When the hierarchical locking is active, there are five table lock
modes:
- Intent Share (IS)
- Intent Exclusive (IX)
- Shared with Intent Exclusive (SIX)
- Shared (S)
- Exclusive (X)
Exclusive (X) and Shared (S) locks can be requested explicitly (tablemove, indexmove, or SQL-92 client LOCK TABLE statement). Implicit table locks (IS, IX and SIX) are generated when rows in the table are locked.
References To Written Documentation or Other KnowledgeBase Documents:
Progress Software Technical Support Note # 19569