Есть ли способ установить lock_timeout на уровне базы данных или строки подключения? - PullRequest
1 голос
/ 22 декабря 2009

В SQL 2005/2008 есть ли способ установить значения по умолчанию для lock_timeout.

Все на уровне сервера, базы данных или строки подключения было бы замечательно.

Ответы [ 2 ]

2 голосов
/ 22 декабря 2009

Вы не можете установить время ожидания блокировки в строке подключения, AFAIK. Только с SET LOCK_TIMEOUT.

Но, несомненно, установка « CommandTimeout » приведет к почти одинаковому результату для каждого соединения.

Существует также параметр сервера ожидание запроса , установленный sp_configure , но я не использовал его.

1 голос
/ 22 декабря 2009

Тайм-аут блокировки, т. Е. Период времени, в течение которого транзакция будет ожидать блокировки до сбоя, обычно является установкой «уровня приложения», устанавливаемой командой SET LOCK_TIMEOUT сразу после открытия соединения.

Согласно этому драйверу JDBC page , есть также параметр строки подключения lockTimeout, который может быть тем, что вы ищете, но я не пробовал его для ODBC:

Количество миллисекунд ожидания прежде чем база данных сообщает о блокировке тайм-аут. Поведение по умолчанию ждать бесконечно. Если это указано, это значение по умолчанию для всех Заявления о связи. Заметка что Statement.setQueryTimeout () может использоваться для установки времени ожидания конкретные заявления. Значение может быть 0, что означает отсутствие ожидания.

...