|
|
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
Добрый день. Помогите, пожалуйста. Мне нужно в оконном приложении с встроенным WEB-сервером ( компонент IWStandAloneServer версии 9 ) принимать GET-запросы и работать с базой MySQL 8. Работаю по цепочке OLE DB For ODBC <-> MySQl ODBC драйвер (нативного провайдера OLE DB для MySQL нет). ciMultiThreaded в ServerController включено. В IntraWeb, в событии IWServerControllerBaseBeforeDispatch, оставил только разбор Request.Content и операцию добавления строк в базу. Сначала создается ADOConnection, потом ADOQuery, потом в таблицу вставляются данные. Все это на всякий случай обрамил CoInitialize(nil) и CoUninitialize. К Intraweb обращаются всего 2 шт. TCP/IP клиента с разных IP-адресов. Интервал обращения каждого - 1 секунда. Запросы, конечно, не синхронизированы, поэтому иногда могут почти совпадать по времени. После 1500 - 2000 строк, добавленных в базу, возникает Acces Violation. Один раз удалось вставить чуть более 10000 записей. Но валиться всегда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2019, 12:53 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
Да, перед CoUninitialize сначала ADOQuery, потом ADOConnection уничтожаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2019, 12:57 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
Еще странность - если в потоке обработки оставить только создание ADO-соединения и его уничтожение в конце, то все работает. Стоит в середину вставить создание ADO-запроса и производить выборку с двух клиентов, всего десяти первых строк из таблицы, в которую никто не пишет (в таблице есть около 1000 строк) то часа через пол опять возникает ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2019, 10:11 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
может обдумать идею пула соединений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2019, 12:57 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
... хотя, судя по этому посту , я был не прав с пулом соединений ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2019, 13:58 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
Есть опасение, что свой велосипед будет еще хуже. Мне кажется, что если я при динамическом соpздании коннекта ADO не указал какой-то там параметр, не помню его имя, с значением (-2), то ADO создает свой пул. Кроме того, еще и в ODBC есть свой встроенный пул, в диспетчере. Типа Micrisoft о нас позаботился :-) Пул ODBC пробовал включать - без толу. Кроме того, проблема, похоже, проявляется при вступлении в дело Query, коннекты-то создаются и уничтожаются без зависаний. Хотя это очень умозрительно конечно, после выполнения запроса и коннеект уже далеко не в том программном состоянии, что при ожидании. Можно конечно попробовать другую базу, с нативным OLE DB провайдером, но это практически один MSSql. Как его потом прикручивать на хостинг к PHP... нет, это не вариант. Как-то ведь люди кладут в базу данные по запросам, поступающим на Indy серверы, Intraweb это почти тоже самое. Правильно я понимаю, что при каждом запросе в IWServerControllerBaseBeforeDispatch создается независимый поток, в котором можно создать объекты доступа к данным, выполнить чтение/запись и уничтожить объекты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2019, 14:08 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
Отключил встроенный в OLE DB пул. Скорость упала не критично. Кажется, стало стабильнее. Пул в ODBC тоже пока отключен. Пока не падает на записи. Но это не точно. Как думаете, может есть смысл поменять что-то еще в строке подключения? Курсор по умолчанию, серверный надо полагать. Сделать без курсора? Клиентский надо думать не вариант точно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2019, 19:26 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
Нет. Опять облом на 3291 записи. Придется, видимо, процедурно, в Delphi, проверять при каждой вставке, что запись корректно попала в базу. Вот обломно-то.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2019, 19:32 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
А вообще, проблема в моем случае может быть глобально MDAC (ADO, OLEDEB) да и конкретный ODBC-драйвер для MySQL не стоит списывать. Посоветуйте, пожалуйста, какие-либо бесплатные компоненты доступа к MySQL для Delphi? Чтоб уж попробовать подключаться и работать с базой через другую технологию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2019, 08:07 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
AleksVoronezh, Может стоит саму СУБД поменять? Тогда и с компонентами, даже штатными, будет попроще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2019, 10:10 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
AleksVoronezhПосоветуйте, пожалуйста, какие-либо бесплатные компоненты доступа к MySQL для Delphi? Чтоб уж попробовать подключаться и работать с базой через другую технологию. Ну если для "попробовать" то Zeos вроде поддерживает MySQL. Правда сам я ею не пользовался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2019, 11:13 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
AleksVoronezh, У меня есть положительный опыт с SciBit MyComponents VCL Suite , но их сайта что то больше нет www.scibit.com :( Жалко, прекрасные компоненты. В интернете они до сих пор находятся. но не знаю, законно ли их использовать ... Так же часто на форумах проскакивала библиотека ZeosLib , но я сам опыта не имел с ней, так что не скажу. И смотрите на лицензию, чтобы на GPL не наткнуться. Как здесь, например: MySQL direct (смотрите, там можно скачать юниты DirectMysqlObject.zip и демку DemoObjectsWin.zip или перейти на сайт проекта на sourceforge ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2019, 11:24 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
AleksVoronezh, Zeos ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2019, 11:25 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
Спасибо, к Zeos обязательно присмотрюсь. Пока же снес MySQL 8.0 (64bit) и ODBC драйвер (32bit) из его же инсталлятора. Поставил MySQL 5.7.26 (32 bit) и ODBC из его же инсталлятора. На сейчас вставлено 12700 записей и полет нормальный. Но вся эта ситуация очень странная, очень. Нужно будет еще попробовать пописать в MySQL 5.7.26 (64 bit), кто знает, что будет у провайдера например.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2019, 23:41 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
>> И смотрите на лицензию, чтобы на GPL не наткнуться. Поясните, пожалуйста. Правильно я понимаю, что MySQL Community можно без ограничений использовать в коммерческих проектах в том числе, а клиентские DLL от MySQL, которые использует Zeos, налагают какие-то ограничения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2019, 10:50 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
AleksVoronezh, Не далее как недавно тоже озаботился использования ADO в многопоточном режиме. Сам пока не разобрался. Но понял одно: CoInitialize(nil) - создает single threaded appartment (только не спрашивай что это - 20+ проф. пишу, но с COM так и не разобрался до конца). Может в этом собака? Я не до конца ситуацию понял - как ты создаешь и используешь ADO. Но вроде надо быть крайне осторожным. Вот статейка про STA и MTA (я пока сам не врубился): https://rsdn.org/?article/com/apartmnt.xml Да и вообще масса материала по запросу "ADO multi threaded". Опять же - сам пока не понял, но вроде как мысль моя правильная - просто так вот взять и работать с ADO из разных потоков как бы нельзя, ну или надо хорошо подумать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2019, 15:03 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
Dimitry Timokhov, добрый день. По моим наблюдениям, что с CoInitialize(nil) , что без - разницы никакой. Возможно, срабатывает в моем случае то, что ciMultiThreaded в ServerController включено. Создаю сначала коннект, потом запрос, самым обычным образом .create(self), (создаю внутри обработчика IWServerControllerBaseBeforeDispatch, в Intraweb, этот обработчик, по идее, всегда сам стартует новый поток, на поступивший запрос от браузера) присваиваю строку подключения и работаю с ними, потом уничтожаю. Надежности никакой. После примерно 10000 записей точно отвалиться, но чаще отваливается примерно после 1500 вставок. Но надо признать, что память потребляемая приложением с ADO практически не растет. Сделал сейчас то же на Zeos. Пока - ни одного вылета, вставил 20 000 строк потом пока прервал. Но приложение с 10 мб при старте стало занимать около 120 мб. Получается, ZQuery.Close; ZQuery.Free и ZConnection.Connected:=False; ZConnection.Free; недостаточно? В порядке бреда делаю еще ZQuery.EmptyDataSet;, но это похоже никак не помогает. Напомню, все остальное в обработчике не менялось, только способ доступа к БД. С ADO память доходила мегабайт до 20 и дальше практически не росла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2019, 18:45 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
Может быть с ADO память нужно считать как сумму потребления нескльких процессов ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2019, 19:09 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
Да, может что и несколько, конечно. Но куда Zeos есть память - не понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2019, 19:17 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
Кстати, вы используете FastMM4? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2019, 21:26 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
.... просто, возможно с ним меньше получится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2019, 21:29 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
Нет, FastMM4 не пробовал. Просто Delphi 2006 "из коробки" Да, про Zeos. 25 000 встаовк в таблицу и никаких признаков умирания. Но в памяти - около 250 мб! Вот отчет при закрытии приложения: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2019, 21:42 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
Да, еще наблюдение - память, похоже, уходит в ZQuery. Оставил в обработчике только создание/подключение/отключение/уничтожение ZConnection - память не теряется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2019, 22:02 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
AleksVoronezh, память в наборах не теряется, а расходуется. что бы не расходовалась, не стоит в наборах держать много записей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2019, 09:10 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
Не совсем понимаю, зачем держать наборы после того, как я уничтожаю ZQuery. Да и выбираю я каждый раз не более 10 строк из таблицы без BLOB. Откуда такой расход? Да, оставил тестовую систему работать на ночь. Сейчас в таблице более 80 000 строк и продолжает работать. Приложение в памяти (по диспетчеру задач) стало занимать с 10 мб при запуске 903 мб теперь !!! Но пока работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2019, 11:41 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
А вообще, видимо нужно двигаться в сторону пула соединений. Как вариант, это жор памяти может быть связан с тем, что, как я уже писал, в новом потоке создается соединение, а по завершении потока - уничтожается. А Zeos тянет клиентскую DLL от MySQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2019, 12:22 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
Вот что нагуглилось: ZeosLib/TConnectionPool https://github.com/delphipascal/zeoslib/blob/master/zeos-7.0.4/src/dbc/ZDbcPooled.pas ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2019, 12:30 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
В смысле, что возможно в Zeos уже есть класс пула соединений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2019, 12:31 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
Да, спасибо, буду смотреть. Хотя.... я сам ведь уже писал, что если убрать запрос, и оставить только создание и уничтожение коннекта, то память не расходуется.... прям заколдованный круг какой-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2019, 13:10 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
Что у вас в той части, которую "убираете"? Только лишь создание датасета, его открытие и уничтожение? Или ещёчто-нибудь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2019, 21:40 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
Вот весь тестовый код: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. Соответственно, убирал все, что относиться к ZQuery. Но тут выяснилась еще интересная штука. Похоже, я был не совсем прав в отношении того, что память уходит ZQuery. Если сделать один коннект (визуальный, на форме) и к нему цеплять динамически создаваемые ZQuery, то память похоже не теряется. Правда, в таком кривом режиме это все работает на несколько сот строк, потом падает. Но занятая память практически не растет. Похоже, нужно самым серьезным образом подумать про пул соединений. Но про использование ZeosLib/TConnectionPool не нашел вообще ничего! И на западных форумах люди пишут про то же - ничего нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2019, 22:14 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
Не понимаю Self в этом коде? Код: pascal 1. Вы же в потоке TThread, или я путаю? Но вообще, в любом случае здесь лучше nil. Так же, вы уверены, что по ходу не вылетает исключение? У вас нет try..except чтобы эио проверить. Но это не так важно, как то, что освобождения лучше упаковать в try..finally. Вдруг в этом причина утечки памяти... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 01:29 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
Кроик Семён, Спасибо за помощь! Пробовал и с nil - разницы в данном случае нет. На самом деле вчера поздно вечером сделал try..except и счетчик. За ночь на 79000 вставок всего одна ошибка - какая, не скажу правда. Теперь на всякий случай сделал освобождение в try..finally. Но потребляемая память как росла, так и растет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 07:33 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
AleksVoronezh, Может попробовать на офф-форуме Zeos это спросить?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 10:05 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
Да, и попробуйте FastMM4. Его надо будет первым в USES'e в .dpr-файле проекта поставить. От FastMM4 много пользы: ускорение программы, лучшая работа с кучей, диагностика утечек памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 10:36 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
подумал... в Delphi с 2006-ой версии итак стоит урезанная версия FastMM4. Но все-равно, попробуйте с полной, вдруг поможет как-нибудь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 11:13 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
Форум Zeos попробую конечно, но наши зарубежные коллеги что-то не очень о нем отзываются. Видел там подобное сообщение, что ZQuery жрет память, сошлись что это проблема OC (не понимаю). А про ихний пуд коннектов вообще никто не ответил. Как будто он сам себя написал (этот модуль) Ж-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 12:11 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
А вообще с ADO облом не реальный конечно. Zeos - в отличие от ADO пишет хотя бы. Но память, память.... MySQLDirect - это еще 2005 год. Может еще что-то есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 12:29 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
AleksVoronezh> А вообще с ADO облом не реальный конечно. Кто и где делает CoInitFlags:=COINIT_MULTITHREADED? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 12:46 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
/* пока другие не ответят */ вариант 1 готовы выделить 200$ (или 300$ если с исходниками) за MyDAC ? ( https://www.devart.com/mydac/editions.html ) вариант 2 вот попался продукт 2009 года. Может и хватит вам, если заведется конечно. Там и примеры есть, в том числе и многопоточные. Только оформлен не в виде компонентов, а в виде библиотеки функций для доступа к MySQL. mysql.pas ( http://www.audio-data.de/mysql.html ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 12:55 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
P.S. сейчас заметил, mysql.pas (вариант 2) лицензирован Mozilla Public License Version 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 14:03 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
можно попробовать с памятью поискать концы самому, если сильно нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 19:40 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
В 2015 году уже искали - и решения не нашли, похоже. http://zeoslib.sourceforge.net/viewtopic.php?t=20838 P.S От отчаяния опять вернулся к ADO. Четыре клиента долбят сервер. Более 20 000 записей уже в базе. Приложение занимает в памяти 17,6 мб, а не 300-500-800 как с Zeos. Что за... Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 21:36 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
Да, за прямое обращение к визуальному компоненту из потока не ругайте - мы тут более серьезные проблемы ловим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 22:19 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
AleksVoronezh> Четыре клиента долбят сервер. Более 20 000 записей уже в базе Фигня. Тут и тормозов-то нет. Зачем тебе потоки? ____________ И всё таки, где сидит CoInitFlags := COINIT_MULTITHREADED? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 22:42 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
Я полагаю, что приложение само "понимает", что нужно работать в многопоточном режиме, благодаря тому, что в Intraweb, а именно в IWServerController, свойство ComInitialization установлено в "ciMultiThreaded" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 23:29 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
Кстати, я вообще не уверен, что для моего приложения обязателен "многопоточный апартамент", что, по идее, и делает и COINIT_MULTITHREADED, и ComInitialization = "ciMultiThreaded" Вероятно, достаточно и отдельных апартамент на каждый поток. Нужно попробовать с ComInitialization = "ciNormal"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2019, 23:50 |
|
||
|
Опять сбоит ADO в Intraweb с ciMultiThreaded
|
|||
|---|---|---|---|
|
#18+
> Фигня. Тут и тормозов-то нет. Зачем тебе потоки? Извиняюсь, просмотрел сначала. Дело в том, что у меня по сути сервер, обслуживающий в Intraweb GET-запросы в событии TIWServerController.IWServerControllerBaseBeforeDispatch. А тут, как я понимаю, новый поток и стартует. Он же участвует в обработке запросов от клиентов, тех же браузеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2019, 00:20 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2039252]: |
0ms |
get settings: |
11ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
104ms |
get tp. blocked users: |
2ms |
| others: | 225ms |
| total: | 437ms |

| 0 / 0 |
