Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Deadlock: Знаменитая ошибка 1205. / 24 сообщений из 24, страница 1 из 1
21.02.2019, 20:16
    #39777590
Artyom E
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deadlock: Знаменитая ошибка 1205.
Текст знаменитой ошибки 1205: "Транзакция (с идентификатором процесса %d) вызвала взаимоблокировку ресурсов %.*ls с другим процессом и была выбрана в качестве жертвы для ее разрешения. Запустите транзакцию повторно."
В тексте ошибки предлагается перезапустить транзакцию.
Почему я должен писать код, отлавливающий это исключение, и перезапускающий транзакцию?

Меня давно мучает вопрос, почему для транзакции нельзя задать параметры перезапуска на тот случай, если она стала жертвой
взаимоблокировки?
Реализовать перехватывание ошибки взаимоблоировки и повторный запуск транзакции - достаточно проблематично и трудоемко.
Гораздо проще было бы задать два параметра для транзакции на случай ее отката при дедлоке: количество повторных попыток транзакции, временной интервал между повторами транзакции.
Само собой, желательно свести дедлоки к минимуму. Но исключить их полностью не всегда возможно.
Почему эта проблема переложена на плечи разработчика?
И в СУБД SQL Server не предусмотрены соответствующие настройки для транзакции?
...
Рейтинг: 0 / 0
21.02.2019, 21:22
    #39777614
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deadlock: Знаменитая ошибка 1205.
Крик души?

Опишите свою хотелку на User Voice , - возможно MS ее когда-нибудь реализует, если наберется достаточно голосов "за".
...
Рейтинг: 0 / 0
21.02.2019, 21:56
    #39777632
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deadlock: Знаменитая ошибка 1205.
Artyom EРеализовать перехватывание ошибки взаимоблоировки и повторный запуск транзакции - достаточно проблематично и трудоемко.Всего лишь ещё раз выполнять, разве сложно?

Хотя, конечно, может, и бывло бы востребовано.

Предложите.

Точнее, проголосуйте, это уже предложили (кстати, ни одного голоса "за").
https://feedback.azure.com/forums/908035-sql-server/suggestions/32889979-implement-automatically-retrying-deadlock-victims
Статус UNPLANNED, но написали. что подумают. Может, если создать новое предложение, и продвигать, то будет результат?
...
Рейтинг: 0 / 0
21.02.2019, 22:25
    #39777644
Lepsik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deadlock: Знаменитая ошибка 1205.
Artyom EПочему я должен писать код, отлавливающий это исключение, и перезапускающий транзакцию?

не хотите - не пишите

---Меня давно мучает вопрос, почему для транзакции нельзя задать параметры перезапуска на тот случай, если она стала жертвой
взаимоблокировки?

Для какой именно? может у вас там миллион таких транзакций, а некоторый взрывают реактор.

---Реализовать перехватывание ошибки взаимоблоировки и повторный запуск транзакции - достаточно проблематично и трудоемко.

Да ладно, максимум 2 строки.

---Гораздо проще было бы задать два параметра для транзакции на случай ее отката при дедлоке: количество повторных попыток транзакции, временной интервал между повторами транзакции.

Это надо на уровне приложения делать, хотя и в драйвер можно запихать.

Artyom EИ в СУБД SQL Server не предусмотрены соответствующие настройки для транзакции?

И не должны.
...
Рейтинг: 0 / 0
22.02.2019, 01:35
    #39777669
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deadlock: Знаменитая ошибка 1205.
Artyom EПочему я должен писать код, отлавливающий это исключение, и перезапускающий транзакцию?Программист, который должен писать код? Какая глупость. Подметайте себе улицы, зачем мозг напрягать?

Artyom EГораздо проще было бы задать два параметра для транзакции на случай ее отката при дедлоке: количество повторных попыток транзакции, временной интервал между повторами транзакции.

Ага. "Вы, мыши, просто станьте ежиками." (с)

Давайте все-таки включим мозг. На минуту, буквально.

Вот, допустим, задедлочилась транзакция

Код: sql
1.
insert [a] select * from [b] where [b].some_field < ( getdate() - 2 дня )



После, по вашей логике, какую именно транзакцию надо реранить? Варианты реранить ту:
у которой состояние таблицы b было на начало транзакции и текущая дата была на начало транзакции

у которой состояние таблицы b было на начало транзакции и дата на момент рерана

у которой состояние таблицы b было текущее и текущая дата была на начало транзакции

у которой состояние таблицы b было текущее и дата на момент рерана

Т.е. уже целых 4 варианта как надо реранить запрос в пол строчки. Но, внезапно, тут еще надо учитывать состояние таблицы [a], ибо всякие констрейнты. Уже получается 8 вариантов. И как задавать параметры для этого запроса? А как для скрипта в 20к строк?

Рассмотрим альтернативные варианты:


реранить по логу транзакций; там такое количество сайдэффектов (ключи, например, или всевозможное нарушение FK, потому что состояние таблиц, не задействованных в транзакции, изменилось, пока реранили), что вы просто охрнеете;

реранить по тексту запросов; тут может повезти, а могут быть литералы, посчитанные или преданные с клиента на основании логики, одному Б-гу известному; но сервер "должен" разруливать, потому что он железный, а вы "не должны"?

Короче, не надо считать себя самым умным, а инжинеров MS самыми тупыми.
...
Рейтинг: 0 / 0
22.02.2019, 07:31
    #39777688
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deadlock: Знаменитая ошибка 1205.
Гавриленко Сергей АлексеевичArtyom EПочему я должен писать код, отлавливающий это исключение, и перезапускающий транзакцию?Программист, который должен писать код? Какая глупость. Подметайте себе улицы, зачем мозг напрягать?

Artyom EГораздо проще было бы задать два параметра для транзакции на случай ее отката при дедлоке: количество повторных попыток транзакции, временной интервал между повторами транзакции.

Ага. "Вы, мыши, просто станьте ежиками." (с)

Давайте все-таки включим мозг. На минуту, буквально.

Вот, допустим, задедлочилась транзакция


Сложно объясняете.

1. После прерывания транзакции ее невозможно запустить "заново".
2. Это уже "другая" транзакция (данные на сервере стали другими) и сервер не может знать "правильная" она или нет.
...
Рейтинг: 0 / 0
22.02.2019, 10:47
    #39777768
asdor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deadlock: Знаменитая ошибка 1205.
Artyom E,
Странное желание
>>Реализовать перехватывание ошибки взаимоблоировки и повторный запуск транзакции - достаточно проблематично и трудоемко.
А если сервер отвалился, сетевой сбой, разконектился?

Согласен, что такие ошибки должен обрабатывать и разрешать клиент.
...
Рейтинг: 0 / 0
22.02.2019, 18:03
    #39778095
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deadlock: Знаменитая ошибка 1205.
Artyom E,

на самом деле такая возможность есть и называется Job. Ваш бизнес-онлайн, во-первых, вообще не должен валиться с дэдлоками, а вот джобы - сколько угодно и без последствий, оффлайн класс операций. Просто поставьте им ниже приоритет дэдлока. Там как раз и произойдет "Запустите транзакцию повторно" само собой.
...
Рейтинг: 0 / 0
22.02.2019, 23:18
    #39778170
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deadlock: Знаменитая ошибка 1205.
Гавриленко Сергей АлексеевичДавайте все-таки включим мозг. На минуту, буквально.

Вот, допустим, задедлочилась транзакция

Код: sql
1.
insert [a] select * from  where [b].some_field < ( getdate() - 2 дня )




После, по вашей логике, какую именно транзакцию надо реранить? Варианты реранить ту:
у которой состояние таблицы b было на начало транзакции и текущая дата была на начало транзакции

у которой состояние таблицы b было на начало транзакции и дата на момент рерана

у которой состояние таблицы b было текущее и текущая дата была на начало транзакции

у которой состояние таблицы b было текущее и дата на момент рерана

Т.е. уже целых 4 варианта как надо реранить запрос в пол строчки. Но, внезапно, тут еще надо учитывать состояние таблицы [a], ибо всякие констрейнты. Уже получается 8 вариантов. И как задавать параметры для этого запроса? А как для скрипта в 20к строк?
Мне просто интересно, стандартная рекомендация MS по борьбе с делдлоком "перезапустить транзакцию" что подразумевает, какой из этих 8-ми вариантов?

Разумеется, если на указанном стейтменте возникла ошибка, нужно перезапустить этот стейтмент. Да, данные на момент повторного запуска (потенциально) изменились, и что, это ненормально, это противоречит каким то принципам РСУБД?
Для "скрипта в 20к строк" совершенно то же самое, не вижу разницы по сравнению со скриптом в один INSERT.
С теми же параметрами, которые передавались в первый раз. Что тоже никак не противоречит ни академическим теориям СУБД, ни здравому смыслу.

Т.е. мы делаем некое атомарное изменение БД, он оне удплось, мы его пробуем повторить, точно так же, как в первый раз, теми же DML с теми же параметрами.

Тут очевидные препятствия другие - клиент тоже участвует в транзакции.
Например, передаёт данные - не все же клиенты только выполняют запросы, есть же ещё и клиентские курсоры.

И если клиент не знает про перезапуск, то это будет непросто сделать. Вообще непонятно, есть ли теоретическая возможность реализовать такую функциональность в MSSQL.

Именно в этом проблема, а не в "какую транзакцию ..." или "это уже будет другая транзакция".

[b]Artyom E
, Но есть решение, про которое уже сказали (сразу же)
Сделать это на клиенте.

В нормальном проекте доступ к СУБД не размазан тонким слоем по всему коду, а сделан в одной точке.
При условии, что управление транзакциями тоже не размазано по всему коду, а сосредоточено в пределах этого метода доступа (то есть один вызов - это атомарное изменение БД), функциональность автоматического перезапуска добавляется в проект очень быстро, нужно просто написать несколько строк в одном месте проекта.
...
Рейтинг: 0 / 0
23.02.2019, 03:40
    #39778181
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deadlock: Знаменитая ошибка 1205.
alexeyvgДля "скрипта в 20к строк" совершенно то же самое, не вижу разницы по сравнению со скриптом в один INSERT.Кроме стандартной отписки MS, я рассматривал еще и другие варианты реализации рерана. И вот для гипотетических вариантов разница есть.

alexeyvgТут очевидные препятствия другие - клиент тоже участвует в транзакции. Почему только клиент? Участвует любой код в стеке вызова, который вычисляет и передает какое-то состояние в транзакцию. И реранить надо с точки, одному вызывающему известной. А не только с того момента, где begin tran написано.
...
Рейтинг: 0 / 0
23.02.2019, 09:36
    #39778199
SIMPLicity_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deadlock: Знаменитая ошибка 1205.
Коллеги, последние два сообщения даже я не понял

Изъясняйтесь проще... ПОЖАЛУЙСТА
...
Рейтинг: 0 / 0
23.02.2019, 12:11
    #39778225
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deadlock: Знаменитая ошибка 1205.
Гавриленко Сергей АлексеевичalexeyvgДля "скрипта в 20к строк" совершенно то же самое, не вижу разницы по сравнению со скриптом в один INSERT.Кроме стандартной отписки MS, я рассматривал еще и другие варианты реализации рерана. И вот для гипотетических вариантов разница есть.Мы же обсудждаем типовой вопрос по реакции на ошибку "дедлок". Зачем так усложнять, как будто тут дискуссия искушённых читателей исходников Database Engine& :-)

Гавриленко Сергей АлексеевичalexeyvgТут очевидные препятствия другие - клиент тоже участвует в транзакции. Почему только клиент? Участвует любой код в стеке вызова, который вычисляет и передает какое-то состояние в транзакцию. И реранить надо с точки, одному вызывающему известной. А не только с того момента, где begin tran написано.Да, если приложение открывает транзакцию, потом что то делает-делает, выполняет запросы, передавая, например, ИД, которые были получены в предыдущих запросах, то з-аново это уже не повторить.

Хорошо, тогда можно было бы ограничиться такой опцией для случаев, когда нет транзакций из клиента, правильно?
Сиквел не может повторить поток вызовов от клиента, но он же мог бы повторить вызовы от себя?
...
Рейтинг: 0 / 0
23.02.2019, 12:53
    #39778232
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deadlock: Знаменитая ошибка 1205.
alexeyvg,

В общем случае нельзя повторно выполнить транзакцию. Можно лишь повторно выполнить часть транзакции до дедлочащей инструкции включительно.
Делать это автоматически нельзя, в силу озвученных выше причин.

Итого, об автоповторе можно вести речь, когда транзакция верхнего уровня однобатчевая и в этом батче нету модификаций данных вне транзакции.
А это слишком частный случай.
...
Рейтинг: 0 / 0
23.02.2019, 14:58
    #39778263
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deadlock: Знаменитая ошибка 1205.
invmИтого, об автоповторе можно вести речь, когда транзакция верхнего уровня однобатчевая и в этом батче нету модификаций данных вне транзакции.
А это слишком частный случай.
Разве "только если однобатчевая"?
По моему, ограничение менее жёсткое - когда клиент в течении транзакции не посылает клиенту запросы (упрощённо можно сказать "когда нет транзакций из клиента").
А внутри сиквела батчей может быть сколько угодно, даже внешних, с DTC и Linked Server.

Начали транзакцию, выполняем некий код (процедуры, триггеры, в общем, множество батчей). Если возникла ошибка, транзакция откатилась, и требуется повторный запуск, снова начинаем транзакцию, выполняя тот же код. Не "до дедлочащей инструкции включительно" (как это?), а просто выполняем.

Согласен, это очень частный случай, но ИМХО большинство систем с СУБД работают именно так.
...
Рейтинг: 0 / 0
23.02.2019, 15:07
    #39778265
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deadlock: Знаменитая ошибка 1205.
alexeyvgНачали транзакцию, выполняем некий код (процедуры, триггеры, в общем, множество батчей). Если возникла ошибка, транзакция откатилась, и требуется повторный запуск, снова начинаем транзакцию, выполняя тот же код. Не "до дедлочащей инструкции включительно" (как это?), а просто выполняем.То есть, можно примерно представить, что сервер код:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
--  Батч, например, хранимая процедура
--  какой то код
SELECT ...
...
BEGIN TRAN  --  Начало транзакции
    SELECT ...
    INSERT...
    UPDATE...
COMMIT TRAN  --  Конец транзакции
--  ещё какой то код
...

автоматически преобразует в такой:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
--  Батч, например, хранимая процедура
--  какой то код
SELECT ...
...
START:
BEGIN TRY
BEGIN TRAN  --  Начало транзакции
    SELECT ...
    INSERT...
    UPDATE...
COMMIT TRAN  --  Конец транзакции
END TRY  
BEGIN CATCH 
    IF ошибка = дедлок
    BEGIN 
        ROLLBACK TRAN
        GOTO START
    END
END CATCH  
--  ещё какой то код
...
...
Рейтинг: 0 / 0
23.02.2019, 17:07
    #39778308
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deadlock: Знаменитая ошибка 1205.
alexeyvgРазве "только если однобатчевая"?Если транзакция из нескольких батчей и дедлок не в первом, то выполнить повторно невозможно, т.к. от предыдущих ничего не осталось, кроме предварительных планов, да и тех может не быть.
Следовательно, нужно сохранять все выполняемое вместе с контекстом выполнения.
И даже в этом случае автоматическое повторное выполнение недопустимо, если что-то отсылалось клиенту.
alexeyvgНачали транзакцию, выполняем некий код (процедуры, триггеры, в общем, множество батчей). Если возникла ошибка, транзакция откатилась, и требуется повторный запуск, снова начинаем транзакцию, выполняя тот же код.Ок, как автоматически повторно выполнить вот такое:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
declare @rc int;

insert into SomeTable select ... from ...
select @rc = @@rowcount;

begin tran;
...
update AnotherTable ... where @rc > ...
...
commit;
go
...
Рейтинг: 0 / 0
23.02.2019, 18:20
    #39778325
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deadlock: Знаменитая ошибка 1205.
invmalexeyvgРазве "только если однобатчевая"?Если транзакция из нескольких батчей и дедлок не в первом, то выполнить повторно невозможно, т.к. от предыдущих ничего не осталось, кроме предварительных планов, да и тех может не быть.
Следовательно, нужно сохранять все выполняемое вместе с контекстом выполнения.Не, ну конечено, нужно сохранить весь текст, все батчи, от начала транзакции, как же иначе?
invmИ даже в этом случае автоматическое повторное выполнение недопустимо, если что-то отсылалось клиенту.Да, что бы для клиента всё было прозрачно, не надо отсылать данные, пока транзакция не будет подтверждена.
ТЗ для разработчиков МС всё больше и больше :-)

invmОк, как автоматически повторно выполнить вот такое:Просто выполнить всё от BEGIN до COMMIT, в данном случае update
А что в этом неправильного?

Я вот вижу, что будет ошибка, если @rc меняется внутри транзакции. Да, это большая проблема, не-откатываемых при ролбаке изменений :-(

Т.е. если будет так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
declare @rc int;

insert into SomeTable select ... from ...
select @rc = @@rowcount;

begin tran;
...
select @rc = @rc + 1
... -- а вот тут падает на дедлоке
update AnotherTable ... where @rc > ...
...
commit;
go
...
Рейтинг: 0 / 0
25.02.2019, 11:32
    #39778692
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deadlock: Знаменитая ошибка 1205.
Термин "транзакция" следует рассматривать в общем понимании, а у не узкоспециализированном. Тогда смысл сообщения будет понятен. Под транзакцией обычно понимается группа бизнес операций, выполняющаяся как единое целое, например, перевод платежа.

Переводя на бытовой язык, "если платеж не прошел, попробуйте еще раз оплатить".
...
Рейтинг: 0 / 0
25.02.2019, 12:05
    #39778712
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deadlock: Знаменитая ошибка 1205.
alexeyvgДа, что бы для клиента всё было прозрачно, не надо отсылать данные, пока транзакция не будет подтверждена.Дело не в этом.
Если транзакция из нескольких батчей и в каком-то из них данные передаются клиенту, то при повторе
- нет гаранитии, что клиенту будут переданы те же самые данные;
- нет гаранитии, что последующие батчи не зависят от переданных данных.

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

Можно лишь попросить МС реализовать механизм повтора, но управляемый сугубо вручную, через указание соответствующих параметров при старте транзакции.
Хотя, при нынешнем уровне квалификации разработчиков, я не уверен, что от такого механизма будет больше пользы, чем вреда.
...
Рейтинг: 0 / 0
25.02.2019, 12:54
    #39778746
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deadlock: Знаменитая ошибка 1205.
invmalexeyvgДа, что бы для клиента всё было прозрачно, не надо отсылать данные, пока транзакция не будет подтверждена.Дело не в этом.
Если транзакция из нескольких батчей и в каком-то из них данные передаются клиенту, то при повторе
- нет гаранитии, что клиенту будут переданы те же самые данные;
- нет гаранитии, что последующие батчи не зависят от переданных данных.Почему же "не в этом"?
Если мы до commit не передаём данные клиенту, то не будет никаких проблем, никаких данных, которые будут неправильными (например, ИД вставленных записей). Когда транзакция завершшится успешно, тогда клиент данные и получит.
Конечно, это всё в исходном предположении, что клиент во время транзакции не запускает новые батчи, то есть когда выполняется условие:
alexeyvgПо моему, ограничение менее жёсткое - когда клиент в течении транзакции не посылает клиенту запросы (упрощённо можно сказать "когда нет транзакций из клиента").
invmИтого, сервер не может самостоятельно принимать решение об автоматическом повторе транзакции при дедлоке, за исключением тривиальных случаев.

Можно лишь попросить МС реализовать механизм повтора, но управляемый сугубо вручную, через указание соответствующих параметров при старте транзакции.
Хотя, при нынешнем уровне квалификации разработчиков, я не уверен, что от такого механизма будет больше пользы, чем вреда.Понятно, что это не режим "по умолчанию", но, повторю, большинство реальных систем и работают "тривиально".

Например, если код вообще не содержат транзакций больше чем в один стейтмент - тут вообще без вопросов. Скажем, можно сделать режим "автоматически перезапускать дедлочную транзакцию для одиночных стейтментов без внешней транзакции".

Плюс, как я говорил, соблюдая определённые правила (да, они, похоже, достаточно строгию...), такой режим можно использровать и для более сложных транзакций, что разработчики могут применять в проектах, упрощая свой код.
...
Рейтинг: 0 / 0
25.02.2019, 13:21
    #39778766
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deadlock: Знаменитая ошибка 1205.
alexeyvgКонечно, это всё в исходном предположении, что клиент во время транзакции не запускает новые батчи, то есть когда выполняется условие:Я-то как раз о транзакциях из нескольких батчей.
...
Рейтинг: 0 / 0
25.02.2019, 13:29
    #39778775
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deadlock: Знаменитая ошибка 1205.
alexeyvgЕсли мы до commit не передаём данные клиенту, то не будет никаких проблемТранзакция возвращает клиенту 100500 миллионов строк. Копить их на сервере?
...
Рейтинг: 0 / 0
25.02.2019, 18:25
    #39778959
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deadlock: Знаменитая ошибка 1205.
invmalexeyvgКонечно, это всё в исходном предположении, что клиент во время транзакции не запускает новые батчи, то есть когда выполняется условие:Я-то как раз о транзакциях из нескольких батчей.Я понял, но я же уточнял, что "несколько батчей", и "несколько батчей с клиента в текущей транзакции" - это сильно разные вещи.
Во втором случае, конечно, никаких вариантов.
Но повторю - по моему мнению, реально работающие в бизнесе системы редко используют этот второй вариант.

invmalexeyvgЕсли мы до commit не передаём данные клиенту, то не будет никаких проблемТранзакция возвращает клиенту 100500 миллионов строк. Копить их на сервере?Да, или не использовать такую фичу, раз она сильнее нагружает сервер.

Я ещё раз поясню свою мысль: хочется не волшебной кнопки, которая сделает ошибку 1205 невозможной в MSSQL в принципе (это действительно невозможно).
Хочется некую фичу, которая для определённой (и широко распространённой) архитектуре системы, сможет заменить обработку 1205 в приложении.
...
Рейтинг: 0 / 0
28.02.2019, 14:34
    #39780410
SIMPLicity_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Deadlock: Знаменитая ошибка 1205.
alexeyvgЯ ещё раз поясню свою мысль: хочется не волшебной кнопки, которая сделает ошибку 1205 невозможной в MSSQL в принципе (это действительно невозможно).
Хочется некую фичу, которая для определённой (и широко распространённой) архитектуре системы, сможет заменить обработку 1205 в приложении.
Ну просто-таки переопределение страницы 404 ...

PS .... и на ней, прям точно в серединке, ж ы рная кнопка "За@бись"
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Deadlock: Знаменитая ошибка 1205. / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]