Here is the description of a new feature in 8.2.2 (FP9) from the InfoCenter:
"DB2_SKIPINSERTED registry variable
You can use the DB2_SKIPINSERTED registry variable to skip uncommitted
inserted rows for Cursor Stability (CS) and Read Stability (RS) isolation
levels.
The registry variables DB2_SKIPDELETED and DB2_EVALUNCOMMITTED are used to
skip uncommitted deletions and uncommitted updates. Otherwise, CS and RS
isolation levels require the processing of committed data only.
If you decide that you can skip any row that is locked because it is an
uncommitted inserted row, you can now turn the DB2_SKIPINSERTED registry
variable on to allow you to skip those rows. Having this registry variable
on produces greater concurrency and would therefore be the preferred choice
for most applications.
There are cases where skipping uncommitted inserts may not be preferred. For
example:
- When two applications use a table to pass data between them.
- When an application does not use UPDATE statements, but instead deletes 9
the old data and then inserts the new data."
[end quote]
Questions:
1. The description of the enhancement seems to suggest that DB2 would lock
wait on uncommitted inserted rows prior to introduction of DB2_SKIPINSERTED
registry variable (prior to FP9). It also seems to suggest that by default
in FP9, DB2 will lock wait on the row unless the registry variable is set to
ON. Is this correct?
2. The text seems to suggest that setting DB2_EVALUNCOMMITTED = ON will
"skip" uncommitted updates with CS or RS isolation level. Is that correct?
It sounds backwards from the name of the registry value (EVALUNCOMMITTED).
3. It is not clear, but I assume the default for all the new registry
variables is OFF?