Oracle 10.2 - Connection Lock
ODBI=2 (READ_COMMITTED)
LockTimeout=2 (ORAODBC.INI)
WITH_KEY IO access
Step | Action (User) | IO$STS | Message |
|---|---|---|---|
1 | Insert (1) | OK | IO Operation Succeeded |
2 | Insert (2) | ER | Record Locked |
3 | Delete (2) | NR | Record not found |
4 | Commit (1) | ||
5 | Update (1) | OK | IO Operation Succeeded |
6 | Update (2) | ER | Record Locked |
7 | Fetch (1) | OK | IO Operation Succeeded |
8 | Fetch (2) | OK | IO Operation Succeeded |
9 | Commit (1) | ||
10 | Delete (1) | OK | IO Operation Succeeded |
11 | Insert (2) | ER | Record Locked |
12 | Update (2), Delete (2) | ER | Record Locked |
13 | Commit (1) |
Note the differences between Oracle and SQL Server at steps 3 and 8.
Last Record Read IO access
This is a different set of steps as there must be a record to read before the last record read can be updated or deleted! Hence when an error occurs, the record must be fetched again like in Step 13.
Step | Action (User) | IO$STS | Message |
|---|---|---|---|
1 | Insert (1) | OK | IO Operation Succeeded |
2 | Insert (2) | ER | Record Locked |
3 | Commit (1) | ||
4 | Fetch (1), Fetch (2) | OK | IO Operation Succeeded |
5 | Update (1) | OK | IO Operation Succeeded |
6 | Update (2) | ER | Record Locked |
7 | Fetch (1) | OK | IO Operation Succeeded |
8 | Fetch (2) | OK | IO Operation Succeeded |
9 | Commit (1) | ||
10 | Fetch (1), Fetch (2) | OK | IO Operation Succeeded |
11 | Delete (1) | OK | IO Operation Succeeded |
12 | Insert (2) | ER | Record Locked |
13 | Fetch (2) Update (2), Fetch (2) Delete (2) | ER | Record Locked |
14 | Commit (1) |