Недостаточно информации: каковы эффективные настройки для базы данных CUR_COMMIT?Кроме того, поведение блокировки может изменяться в зависимости от определенных параметров реестра Db2, которые вы не упомянули, таких как DB2_SKIP_INSERTED, DB2_SKIP_DELETED среди других и т. Д.
Если действующее значение параметра базы данных CUR_COMMIT установлено на ON, а другое соединение использует CS-изоляцию для запроса, тогда другое соединение получит текущее зафиксированное значение заблокированной строки (т. е. средство записи не блокирует читателя).
Если вы хотите использовать ожиданиев качестве результата это условие применимо к оператору SELECT, см. документацию .
. Используйте специальный регистр, чтобы иметь специфичные для сеанса элементы управления ожиданием через
SET CURRENTLOCK TIMEOUT WAIT n; (где n - количество секунд), в противном случае будет применяться либо тайм-аут на стороне клиента (если уместно), либо настройка LOCKTIMEOUT уровня базы данных, в зависимости от того, какое значение меньше.Обратите внимание, что по умолчанию для LOCKTIMEOUT установлено значение -1 (ждать вечно), что почти всегда неприемлемо, для OLTP типичные значения - 30 или 60.
Другие соединения могут попытаться использовать изоляцию UR за оператор (например, для запроса, чтобы выбрать значение заблокированной строки).