Поделиться через


Очистка неактивного подключения

По умолчанию подключения в пуле потоков не закрываются до завершения всей связи. Эта политика позволяет клиентам с большим количеством потоков или удостоверений безопасности эффективно выполнять вызовы RPC к серверу. Недостаток заключается в том, что для поддержания этих подключений может быть зафиксировано чрезмерное количество ресурсов. Для управления процессом RPC предоставляет функцию RpcMgmtEnableIdleCleanup . Эта функция обеспечивает очистку бездействующий подключения; клиент периодически проверяет пул подключений и закрывает подключения, которые недавно не использовались. Если связь поддерживает дескриптор контекста, то очистка неактивного подключения закрывает все неактивные подключения, но гарантирует, что по крайней мере одно подключение остается открытым, даже если соединение неактивно (в противном случае сервер получает отключение дескриптора контекста). Если связь не поддерживает дескрипторы контекста, очистка неактивных подключений закрывает все неактивные подключения, даже если это не оставляет подключений в пуле.

В Windows XP время выполнения RPC отслеживает количество открытых подключений в ассоциации и автоматически включает очистку бездействующего подключения, если количество подключений в любой связи превышает определенное пороговое значение.