Гость
Map
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Работа .Net SqlClient Data Provider в разных версиях Windows /.Net / 14 сообщений из 14, страница 1 из 1
17.11.2020, 13:29
    #40019391
AR®
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа .Net SqlClient Data Provider в разных версиях Windows /.Net
Опытным путём обнаружено, что программа, написанная на C# и скомпилированная когда-то с настройкой Target Framework = .Net Framework 4, активно использующая обмен с MS SQL Server с использованием .Net SqlClient, вызывает эскалацию блокировок, будучи запущенной под Windows 10 с её встроенным .Net .

При работе с другими ОС (в том числе серверными от Win2008R2 до Win2016) ничего подобного не наблюдается.
Куда начинать смотреть для решения проблемы?
...
Рейтинг: 0 / 0
17.11.2020, 13:33
    #40019393
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа .Net SqlClient Data Provider в разных версиях Windows /.Net
Что такое "встроенный в Windows 10 .Net"?
...
Рейтинг: 0 / 0
17.11.2020, 13:45
    #40019405
AR®
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа .Net SqlClient Data Provider в разных версиях Windows /.Net
:)
Который ставится сразу при установке Win10, а не доустанавливается потом.
...
Рейтинг: 0 / 0
17.11.2020, 13:48
    #40019408
vb_sub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа .Net SqlClient Data Provider в разных версиях Windows /.Net
AR®,
разве тип блокировки не в тексте команды устанавливается? А если не установлен, то берется дефолтный по настройкам MS SQL сервера?
...
Рейтинг: 0 / 0
17.11.2020, 14:02
    #40019415
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа .Net SqlClient Data Provider в разных версиях Windows /.Net
AR®
:)
Который ставится сразу при установке Win10, а не доустанавливается потом.

А полный сценарий использования SqlClient какой?
...
Рейтинг: 0 / 0
17.11.2020, 14:22
    #40019435
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа .Net SqlClient Data Provider в разных версиях Windows /.Net
AR®
Опытным путём обнаружено, что программа, написанная на C# и скомпилированная когда-то с настройкой Target Framework = .Net Framework 4, активно использующая обмен с MS SQL Server с использованием .Net SqlClient, вызывает эскалацию блокировок, будучи запущенной под Windows 10 с её встроенным .Net .

При работе с другими ОС (в том числе серверными от Win2008R2 до Win2016) ничего подобного не наблюдается.
Куда начинать смотреть для решения проблемы?


Про опытный путь и эскалацию блокировок понравилось, пробрало даже

1. Что такое "вызывает эскалацию блокрировок"?
2. Т.е. я так понимаю, посмотреть в профайлере на "активный обмен" - даже мысли не было
...
Рейтинг: 0 / 0
17.11.2020, 15:28
    #40019508
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа .Net SqlClient Data Provider в разных версиях Windows /.Net
Ролг Хупин
1. Что такое "вызывает эскалацию блокрировок"?

Повышение гранулярности блокировки, наверное.
Если полностью совпадает сценарий действий при работе "с другими ОС" и с Win10, то снять профайлером планы проблемных обращений, и сравнить. Если планы отличаются - в первую очередь проверить set-параметры соединения - здесь есть разъяснение, как эти параметры могут влиять на план.
...
Рейтинг: 0 / 0
17.11.2020, 15:29
    #40019509
AR®
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа .Net SqlClient Data Provider в разных версиях Windows /.Net
vb_sub
AR®,
разве тип блокировки не в тексте команды устанавливается? А если не установлен, то берется дефолтный по настройкам MS SQL сервера?


Устанавливается и прекрасно работает, пока клиент запущен не на Win10. По меньшей мере, до 100 соединений, конкурирующих за данные в одной таблице.
Полный сценарий во всех подробностях не скажу, но общий смысл там такой.
Есть таблица с "планом работ", клиентское приложение должно получить "задание" из плана (1 запись), ещё не "взятое в работу" другими, и пометить его как взятое. После "выполнения задания" (несколько минут) пометить ту же запись как "выполненную".
...
Рейтинг: 0 / 0
01.12.2020, 14:07
    #40023632
AR®
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа .Net SqlClient Data Provider в разных версиях Windows /.Net
В выходные покопался, похоже, дело не только в Win10.
...
Рейтинг: 0 / 0
01.12.2020, 15:39
    #40023670
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа .Net SqlClient Data Provider в разных версиях Windows /.Net
AR®,

А если перекомпилировать под 4.6, то проблема пропадает?
А вы явно блокировки указываете?

На мой взгляд дело в увеличении размера базы, произошедшего со времени компиляции приложения
...
Рейтинг: 0 / 0
07.06.2021, 17:10
    #40076182
AR®
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа .Net SqlClient Data Provider в разных версиях Windows /.Net
За прошедшие полгода дело стало хуже. :)
В дополнение к ранее описанным проблемам стала выскакивать довольно известная ошибка
"There is already an open DataReader associated with this Command which must be closed first."
Ничего не перекомпилировалось с незапамятных времён.
Такое ощущение, что два экземпляра клиентского приложения, будучи запущенными на одном и том же компьютере, начинают использовать один и тот же DataReader, хотя это и не возможно.
...
Рейтинг: 0 / 0
07.06.2021, 18:02
    #40076202
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа .Net SqlClient Data Provider в разных версиях Windows /.Net
посмотрите что у вас с режимом MARS
...
Рейтинг: 0 / 0
08.06.2021, 09:19
    #40076288
AR®
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа .Net SqlClient Data Provider в разных версиях Windows /.Net
То-то и оно, что MARS... был выключен, точнее не включен явно, и все работало много лет.
Проблемы начались с распространением Win10, вчера пришлось таки перекомпилировать проектик, написав MARS=true (и найдя предварительно VS2010, в которой было когда-то это сделано).
...
Рейтинг: 0 / 0
08.06.2021, 13:52
    #40076390
AR®
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа .Net SqlClient Data Provider в разных версиях Windows /.Net
С включением MARS=true стала возникать, правда не часто, другая ошибка:

Unhandled Exception: System.Data.SqlClient.SqlException:
The server failed to resume the transaction. Desc:4200000001.
The transaction active in this session has been committed or aborted by another session.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Работа .Net SqlClient Data Provider в разных версиях Windows /.Net / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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