| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Плодятся незакрытые соединения |
| Автор: drkot 4.3.2011, 01:17 |
| В основом потоке расположен TSQLConnection и два TSQLStoredProc Далее действия: 1) соединение с базой (mysql) 2) запуск вспомогательного потока (в нем в цикле выполняются запрос к базе через вышеупомянутый коннект и первый сторедпрок) 3) запускается таймер в основном потоке в котором происходят периодические обращения к базе через второй сторедпрок Собственно процес идет без видимых проблем.... за исключением, того, что на каждое обращение к базе (из основного или вспомогательного потока) открывается новое соединение на уровне TCP, но при этом само не закрывается по завершению обращения.... Собственно сильно тревожат эти не закрытые соединения... тк рано или позно они приведут к отказу сервера по числу соединений... что очень плохо... Хотелось бы либо понять как их закрывать, либо понять как правильно работать через один TSQLConnection несколькими потоками. PS: если отключить вспомогательный поток, то новые соединения не появляются. |
| Автор: drkot 4.3.2011, 16:01 |
| Может я както неправильно изъясняюсь? Не спорю такое может быть... так поправьте.... проблема того, что множатся соединения зарыта в AutoClone... это если кому интересно... Но вот как организовать AutoDeClone или хотябы ManualDeClone. В этом то и вопрос... Переменная клона живет только внутри процедуры, как до него достучаться извне мне не понятно... |
| Автор: drkot 5.3.2011, 16:01 |
| Собственно вопрос решен... конечно не так красиво как хотелось... но все же... - отключить AutoClone - в доп потоке создаем слон ручками - делаем то что нужно в базе - удаляем слон |