2009-12-15 2 views
1

Я запускаю приложение Delphi, использующее BDE для подключения к базе данных. Ocassionally (чаще, чем мне хотелось бы) эта ошибка появляется при открытии запроса.Максимальное количество уже выделенных db-процессов

Google для этой ошибки, большинство выборов относится к базе данных MS SQLServer и говорит о функции dbsetmaxprocs, которую я не могу найти.

Итак, вопрос: как я могу предотвратить/исправить эту ошибку? В каких ситуациях эта ошибка возрастает и как я могу избежать/обойти ее?

Заранее благодарен!

PS: Я оставляю ссылки, которые я следил за ссылкой.

+0

Какие компоненты доступа к данным вы используете (TTable, TQuery и т. Д.)? Какова ваша целевая база данных? – KevinRF

+0

Мы всегда используем настраиваемый компонент, который наследуется от TQuery. Затем мы наследуем наш компонент для обработки конкретных объектов данных, но внутренняя логика для основных операций (crud, queries) уже реализована. –

+0

Наиболее вероятная проблема заключается в утечке соединений где-то (как это было предложено в Server Fault). Проблема в том, что эта ошибка происходит в тестовой среде клиента (но не в производстве), и мы не можем воспроизвести ее здесь, поэтому отслеживание этой утечки невозможно с текущей доступной информацией. –

ответ

1

Если воронка все TQuery соединения через центральный компонент TDatabase, вы должны иметь только одно соединение для каждого экземпляра приложения. Профилировщик MSSQL должен помогать отслеживать открытые соединения.
Это может быть ошибка в вашем пользовательском компоненте TQuery.