Nettoyage des connexions inactives
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émesurée de ressources peut être engagée pour la maintenance de 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é utilisées récemment. Si l’association a conservé des handles de contexte, le nettoyage de la connexion inactive ferme toutes les connexions inactives, mais s’assure qu’au moins une connexion est laissée ouverte, même si la connexion est inactive (sinon, le serveur obtient des exécutions de handle de contexte). Si l’association n’a pas conservé de 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, le temps 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 dans une association dépasse un certain seuil.