How lock levels and lock modes interact
- Last Updated: February 11, 2026
- 1 minute read
- OpenEdge
- Version 13.0
- Documentation
The following tables describe how the SQL OpenEdge Engine uses locking to produce a desired transaction behavior. The tables identify the requested lock strength based on the transaction isolation level in effect for a given transaction.
| Isolation | Info schema lock | Table lock | Record lock |
|---|---|---|---|
|
S | NL | NL |
|
S | IX | X |
|
S | IX | X |
|
S | SIX | X |
| Isolation | Info schema lock | Table lock | Record lock |
|---|---|---|---|
|
S | NL | NL |
|
S | IS | S |
|
S | IS | S |
|
S | S | S |
There are no table or record locks acquired when the transaction
isolation level is READ UNCOMMITTED.
In the READ UNCOMMITTED transaction isolation level
you maximize concurrency, but you might also read dirty data.
The primary difference between the READ COMMITTED and REPEATABLE
READ transaction isolation levels is that while in REPEATABLE
READ, individual record locks are held for the duration
of the transaction. For example, if your fetch criteria include
all companies in the state of Idaho, each record in the result set
will remain locked until all of the records meeting the criteria
have been read. In the READ COMMITTED transaction
isolation level, the record locks are released once the record has
been read.
In the SERIALIZABLE transaction isolation level,
a share lock on a table is held for the duration of the transaction,
preventing any other transaction from updating the table. Any SQL
operation that modifies the information schema is upgraded to SERIALIZABLE, regardless
of the user's current transaction setting.