Блокировка объектов в DB2 LUW - PullRequest
0 голосов
/ 29 ноября 2018

Работая над блокировкой объектов в IBM DB2 LUW, я использую блокировку уровня стабильности чтения (RS) для моей таблицы.Это блокирует записи, которые я выбрал в запросе Select, если только я не завершил транзакцию, не упомянул явно COMMIT и не снял блокировку.Во время этого процесса с помощью другого запроса / процедуры нужно вернуть заблокированную строку для другой цели.Как это сделать? Также есть параметр WAIT_FOR_OUTCOME для установки времени блокировки, где я могу определить это время ожидания?

1 Ответ

0 голосов
/ 29 ноября 2018

Недостаточно информации: каковы эффективные настройки для базы данных 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 за оператор (например, для запроса, чтобы выбрать значение заблокированной строки).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...