Nettoyage de la connexion inactive
Par défaut, les connexions dans le pool de threads ne sont pas fermées tant que l’association entière n’est pas arrêtée. Cette stratégie permet aux clients disposant d’un grand nombre de threads ou d’identités de sécurité d’effectuer des appels RPC au serveur de manière efficace. L’inconvénient est qu’une quantité d’inordinate de ressources peut être validée pour maintenir ces connexions. Pour gérer le processus, RPC fournit la fonction RpcMgmtEnableIdleCleanup. Cette fonction active le nettoyage des connexions inactives ; le client analyse régulièrement le pool de connexions et ferme les connexions qui n’ont pas été récemment utilisées. Si l’association a géré les handles de contexte, le nettoyage de la connexion inactive ferme toutes les connexions inactives, mais vérifie qu’au moins une connexion est ouverte, même si la connexion est inactive (sinon, le serveur obtient des délais d’exécution de contexte). Si l’association n’a pas géré les handles de contexte, le nettoyage des connexions inactives ferme toutes les connexions inactives, même si cela ne laisse aucune connexion dans le pool.
Sur Windows XP, l’heure d’exécution RPC effectue le suivi du nombre de connexions ouvertes dans une association et active automatiquement le nettoyage des connexions inactives si le nombre de connexions d’une association dépasse un certain seuil.