Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Lock timeout  [new]
lilnlight
Member

Откуда:
Сообщений: 11
всем доброго времени суток, всех с наступивщим новым годом

у меня вопрос, у меня постоянно выходят у пользователей эти сообщения
во вложении word файлик)
"конфликт блокировок при выролнении транзакции:
Microsoft OLE DB Provider for SQL Server : Lock request time out period exceeded.
HRESULT =80040E31, SqlSVR : SQLSTATE=HYT00, state=35,severity=10, native=1222, line=1
"
я по форуму искал ответ но не нашел нужную информацию к сожалению(
нашел похожую ситуацию но так и не понял где именно менять или настроить или увеличить "timeout"?

•увеличить таймаут блокировок: Lock Timeout;

•увеличить предел блокировок: Lock Threshold;

•увеличить память для блокировок: locksiz.

а где и как это сделать ?? если можно языком для смертных обьяснить по возможности )))

буду ждать ответов, спасибо большое

К сообщению приложен файл (sql.ru.docx - 30Kb) cкачать
17 янв 14, 10:39    [15428448]     Ответить | Цитировать Сообщить модератору
 Re: Lock timeout  [new]
Glory
Member

Откуда:
Сообщений: 104751
lilnlight
нашел похожую ситуацию но так и не понял где именно менять или настроить или увеличить "timeout"?

Ошибка 1222 является следствием таймаута заданного командой SET LOCK_TIMEOUT. Так что можете исправить код, который выполняет ваше приложегние

Или выяснить, что за блокировки ждет приложение. И почему они появляются.
17 янв 14, 10:44    [15428487]     Ответить | Цитировать Сообщить модератору
 Re: Lock timeout  [new]
lilnlight
Member

Откуда:
Сообщений: 11
Glory,

Glory,

А SET LOCK_TIMEOUT менять в каждой транзакции ?? это в 1с или в SQL прописивать нужно ??
на горячее можно сделать или подождать пока база будет офлайне, а примерную команду не сможете написать ?))

я так понимаю что то типа этого :

set xact_abort on
begin tran
update my_non_existing_table
set field = 1
where field = 2
go

select @@trancount
go
17 янв 14, 13:50    [15429928]     Ответить | Цитировать Сообщить модератору
 Re: Lock timeout  [new]
Glory
Member

Откуда:
Сообщений: 104751
lilnlight
А SET LOCK_TIMEOUT менять в каждой транзакции ??

SET LOCK_TIMEOUT - это команда. Она не завист от транзакции.

lilnlight
это в 1с или в SQL прописивать нужно ??

В коде, который передается серверу на выполнение. Где вы его храните - вам лучше знать

lilnlight
на горячее можно сделать или подождать пока база будет офлайне, а примерную команду не сможете написать ?))

Вопрос как раз в том, а кто и зачем написал эту команду с ограничением ожидания блокировки.
Потому что по-умолчанию таймаут ожидания болкировки равен бесконечности
17 янв 14, 13:55    [15429972]     Ответить | Цитировать Сообщить модератору
 Re: Lock timeout  [new]
lilnlight
Member

Откуда:
Сообщений: 11
Вопрос как раз в том, а кто и зачем написал эту команду с ограничением ожидания блокировки.
Потому что по-умолчанию таймаут ожидания болкировки равен бесконечности[/quot]

При запросе
select @@LOCK_TIMEOUT
выводить в колонке "-1" значение, то есть по умолчанию нет ограничений по времени ,?

код идет с 1с на SQL, а я отвечаю только за SQL, я через profiler вижу только какой application, clientprocessid,databasename,и loginname один логин который лезет в базу

а А SET LOCK_TIMEOUT может поменять у меня в базе время ожидания все таки ?

или как мне поступить ?) плиз сорри если не дотукиваю (((
17 янв 14, 14:46    [15430429]     Ответить | Цитировать Сообщить модератору
 Re: Lock timeout  [new]
lilnlight
Member

Откуда:
Сообщений: 11
Вопрос как раз в том, а кто и зачем написал эту команду с ограничением ожидания блокировки.
Потому что по-умолчанию таймаут ожидания болкировки равен бесконечности[/quot]

При запросе
select @@LOCK_TIMEOUT
выводить в колонке "-1" значение, то есть по умолчанию нет ограничений по времени ,?

код идет с 1с на SQL, а я отвечаю только за SQL, я через profiler вижу только какой application, clientprocessid,databasename,и loginname один логин который лезет в базу

а А SET LOCK_TIMEOUT может поменять у меня в базе время ожидания все таки ?

или как мне поступить ?) плиз сорри если не дотукиваю (((
17 янв 14, 14:46    [15430430]     Ответить | Цитировать Сообщить модератору
 Re: Lock timeout  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
lilnlight
я по форуму искал ответ но не нашел нужную информацию к сожалению(
нашел похожую ситуацию но так и не понял где именно менять или настроить или увеличить "timeout"?

•увеличить таймаут блокировок: Lock Timeout;

•увеличить предел блокировок: Lock Threshold;

•увеличить память для блокировок: locksiz.

а где и как это сделать ?? если можно языком для смертных обьяснить по возможности )))
BOL: SET LOCK_TIMEOUT (Transact-SQL) http://technet.microsoft.com/ru-ru/library/ms189470
timeout_period
Количество миллисекунд до того, как Microsoft SQL Server вернет ошибку блокировки. Значение -1 (по умолчанию) указывает на отсутствие времени ожидания (то есть инструкция будет ждать всегда).
Когда ожидание блокировки превышает значение времени ожидания, возвращается ошибка. Значение «0» означает, что ожидание отсутствует, а сообщение возвращается, как только встречается блокировка.
Что наводит на правильные мысли.

Нужно не с форума начинать искать, а с документации. И так всегда и по всем продуктам.
Настройте у себя в браузере поисковик на определённом сайте, к примеру.
17 янв 14, 14:46    [15430435]     Ответить | Цитировать Сообщить модератору
 Re: Lock timeout  [new]
Glory
Member

Откуда:
Сообщений: 104751
lilnlight
При запросе
select @@LOCK_TIMEOUT
выводить в колонке "-1" значение, то есть по умолчанию нет ограничений по времени ,?

Вы это запрос когда выполнили и в каком соединении ?
В соединении, которое открыло приложение и перед запросом, который упал с ошибкой ?

lilnlight
а А SET LOCK_TIMEOUT может поменять у меня в базе время ожидания все таки ?

Еще раз. Эта команда, которая выполняется в конкретном коде. Т.е. это настройка конкретного соединения, а не настройка базы
17 янв 14, 14:52    [15430485]     Ответить | Цитировать Сообщить модератору
 Re: Lock timeout  [new]
Glory
Member

Откуда:
Сообщений: 104751
lilnlight
код идет с 1с на SQL, а я отвечаю только за SQL, я через profiler вижу только какой application, clientprocessid,databasename,и loginname один логин который лезет в базу

sys.dm_exec_sessions - lock_timeout - int LOCK_TIMEOUT setting for the session. The value is in milliseconds. Is not nullable.
17 янв 14, 15:00    [15430549]     Ответить | Цитировать Сообщить модератору
 Re: Lock timeout  [new]
lilnlight
Member

Откуда:
Сообщений: 11
sys.dm_exec_sessions - lock_timeout - int LOCK_TIMEOUT setting for the session. The value is in milliseconds. Is not nullable.[/quot]

я здесь немного не понял, а что именно нужно изменить ?))
20 янв 14, 09:41    [15438812]     Ответить | Цитировать Сообщить модератору
 Re: Lock timeout  [new]
Glory
Member

Откуда:
Сообщений: 104751
lilnlight
я здесь немного не понял, а что именно нужно изменить ?))

И еще раз - вы НЕ можете изменить что-то в чужой сессии.
Это представление+поле для провекри того, что задано в чужой сессии.
20 янв 14, 10:22    [15438986]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить