DCOM не выдерживает нагрузки?
От: Stone78 Россия  
Дата: 16.02.05 11:14
Оценка:
В трехуровневой системе, написанной на DELPHI 5.0, есть несколько разных серверов приложений (в виде EXE-модулей), работающих на одном физическом сервере под Windows 2000 Server и подключающихся к SQL Server 2000 через ADO, есть также несколько соединений между серверами. Сервера стартуются вручную администратором. Все COM-объекты выполняются в MTA, используют учетную запись "Текущий пользователь" (The Interactive user). К ним подключаются клиенты через DCOM, к некоторым серверам до 200 подключений.

Через некоторое время вызовы с рабочих станций начинают отваливаются с различными ошибками (Interface not supported, Сервер RPC недоступен и др.), причем не все, но ошибок пролетает много.

Также бывает другая ситуация — все вызовы к одному серверу начинают отваливаться с ошибкой "Out of memory", причем сервер не обязательно при этом "держит" много памяти (судя по Task Manager'у). После перезапуска этого сервера работает еще какое-то время..

Для исключения ошибок в реализации прикладной части написал тестовую программу, которая создает много потоков, каждый поток подключается к серверу (создает экземпляр COM-объекта), вызывает простой метод и отключается.
Некоторое время, довольно много тестов выполнялись успешно, ни одной ошибки. Затем произошла описанная ситуация, причем ошибки начали периодически возникать в разных местах. Выполнил тест с другой рабочей станции (к тому же серверу), ошибки полезли почти сразу. Такое ощущение, как-будто что-то случается с самой службой COM (или RPC?).

В связи с этим вопрос, в чем может быть проблема? Есть ли какие-либо ограничения на количество или интенсивность DCOM-соединений/вызовов? Можем ли мы неверно использовать саму технологию COM?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.