Kbase P6854: What are IS IX SIX locks?
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  4/12/2010 |
|
Status: Unverified
GOAL:
What are IS IX SIX locks?
GOAL:
Overview of Table Locks versus Row Lock
FACT(s) (Environment):
All Supported Operating Systems
Progress/OpenEdge Product Family
FIX:
IS, IX and SIX locks are Intent (or Implicit) Table Locks. They are generated when rows in the table are locked.
As part of the implementation of the SQL-92 database first introduced in Progress 9.1x, Progress database now supports table locks. Previous versions only supported row (record) locks.
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 hierarchical 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 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).
As stated previously, Implicit table locks (IS, IX and SIX) are generated when rows in the table are locked.
Progress 4GL uses table locks for brief moments to cover the processing of a record delete in the 4GL.
For example, proserving the Progress Sports dat