ADO Multithreading - memory leak
От: ВладКо  
Дата: 04.08.04 05:44
Оценка:
Всем привет.

Есть проблем. Пишу многопоточное приложение, для доступа к БД (Oracle) используется ADO.
Коннекция открывается одна — в основном потоке. В рабочих потоках, используя эту коннекцию, открываются рекордсеты.
В принципе — все канает. За исключением одного — при каждом использовании рекордсета теряется память (до 200к за раз, хотя это от запроса зависит).За двое суток работы приложения выжралась вся виртуальная память на компе.
Close делать не забываю, естественно. Более того — не помогает даже создание рекордсета перед каждым использованием и уничтожение после... Опытным путем выяснил, что если коннекцию открывать в каждом потоке свою, то память не теряется. Можно в принципе и так поступить, но как-то криво это...
Пробовал делать маршаллинг интерфейса коннекции — не помогает.

Чтобы такого можно сделать, чтобы память не терялась? Или это бага ADO-шная, и ничего тут не поделать?
Заранее спасибо за ответы.
Re: ADO Multithreading - memory leak
От: EvilChild Ниоткуда  
Дата: 04.08.04 10:04
Оценка:
Здравствуйте, ВладКо, Вы писали:

ВК>Коннекция открывается одна — в основном потоке. В рабочих потоках, используя эту коннекцию, открываются рекордсеты.

Вроде как при передаче коннекции между потоками ADO её клонирует.
Re[2]: ADO Multithreading - memory leak
От: ВладКо  
Дата: 04.08.04 10:18
Оценка:
Здравствуйте, EvilChild, Вы писали:

EC>Здравствуйте, ВладКо, Вы писали:


ВК>>Коннекция открывается одна — в основном потоке. В рабочих потоках, используя эту коннекцию, открываются рекордсеты.

EC>Вроде как при передаче коннекции между потоками ADO её клонирует.

Как? У объекта Connection нет метода Clone.
Re[3]: ADO Multithreading - memory leak
От: EvilChild Ниоткуда  
Дата: 04.08.04 12:34
Оценка:
Здравствуйте, ВладКо, Вы писали:

ВК>Как? У объекта Connection нет метода Clone.

Это да, но при попытке выполнения одновременных запросов к базе ADO создаёт дополнительные соединения.
Re[4]: ADO Multithreading - memory leak
От: ВладКо  
Дата: 04.08.04 13:32
Оценка:
Здравствуйте, EvilChild, Вы писали:

ВК>>Как? У объекта Connection нет метода Clone.

EC>Это да, но при попытке выполнения одновременных запросов к базе ADO создаёт дополнительные соединения.

Да? Может быть, не знаю... Где почитать можно?
И все-таки, как клонировать соединение?
Ты бы не мог кусочек кода привести, который спасет отца русской демократии?
Re[5]: ADO Multithreading - memory leak
От: EvilChild Ниоткуда  
Дата: 04.08.04 15:04
Оценка:
Здравствуйте, ВладКо, Вы писали:


ВК>И все-таки, как клонировать соединение?

Что подразумевается под "клонировать соединение"?
Не совсем ясно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.