|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.07.2020, 08:58 | #1 |
Форумчанин
Регистрация: 27.04.2012
Сообщений: 219
|
Не ожидать завершения транзакции
Всем привет!
Коротко о задаче, что реализовано и где проблема. Парсинг и вставка XML реализована в хранимой процедуре на стороне СУБД MsSQL. Задача: Многопоточная вставка, где 1 XML = 1 Поток Мониторинг вставки, обновление визуального компонента для отображения состояния вставки для всех потоков Мониторинг реализован отдельным потоком, который через SQL возвращает текущее состояние вставки всех вставляемых (не законченных) на данный момент XML Проблема заключается в том, что процедуры висят на одном TFdConnection и соответственно происходит ожидание завершения транзакции. И там не важно, в потоке выполняется вставка или нет, все равно, пока не вставиться 1 файл, не начнется вставка второго и.т.д. Соответственно и поток с мониторингом ожидает завершения транзакции хранимки вставки. Проблему я решил повесив каждый поток на отдельное подключение TFdConnection . Но мне это совсем не нравиться. Подскажите может это можно как то сделать иначе? На одном TFdConnection. Или в целом подобная реализация (вешать отдельное подключение на поток) имеет место на жизнь и мне за это не отрежут руки. Если моя реализация соответствует рамкам приличия, на что обратить внимание? Речь не о логикие(я понимаю, что я работаю с потоками, с множествами, с тем что каждый юзер может лить как и что угодно и не исключено, что даже одо и тоже, это вопрос синхронизации действий который решу позже), я спрашиваю о чем-то системном. Поделитесь опытом.
Пишу много и развернуто
Последний раз редактировалось Heneken87; 03.07.2020 в 09:25. |
03.07.2020, 10:59 | #2 |
Форумчанин
Регистрация: 27.04.2012
Сообщений: 219
|
Гугл рулит.
Кому интересно на все вопросы ответы в 1 статье http://digital-flame.ru/2016/01/24/d...ogopotochnost/
Пишу много и развернуто
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как не ожидать окончания работы процедуры, а также вопрос по скроллу в RichEdit. | The SCS | Общие вопросы Delphi | 3 | 03.02.2012 23:51 |
транзакции | sem_1989 | SQL, базы данных | 1 | 23.09.2011 22:43 |
прога отказывается ожидать нажатия клавиши | begovik | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 7 | 09.03.2010 23:50 |
Проблема с главным потоком. Как заставить его ожидать не загружая процессор | Altera | Общие вопросы Delphi | 23 | 06.01.2010 14:40 |
Транзакции + ADO | azat | БД в Delphi | 3 | 14.01.2008 11:47 |