Limite de temps client avec IDirectorySearch
Un client peut imposer une limite de temps pour qu’un serveur retourne le jeu de résultats. Lorsque le serveur ne parvient pas à répondre à une requête dans le délai spécifié, le client peut abandonner la recherche et la réessayer ultérieurement.
La préférence de limite de temps client est utile lorsqu’un client demande une recherche asynchrone. Dans une recherche asynchrone, le client effectue une requête, puis effectue d’autres tâches en attendant que le serveur retourne les résultats. Il est possible que le serveur soit hors connexion sans en informer le client. Dans ce cas, le client n’aura aucune notification indiquant si le serveur traite toujours la requête ou si celle-ci n’est plus active. La préférence de limite de temps du client donne au client un certain contrôle sur des situations comme celle-ci.
La valeur par défaut pour la limite de temps du client n’est pas de limite. Pour définir une limite de temps client, définissez une option de recherche ADS_SEARCHPREF_TIMEOUT avec une valeur ADSTYPE_INTEGER qui contient la limite de temps du client, en secondes, dans le tableau ADS_SEARCHPREF_INFO passé à la méthode IDirectorySearch::SetSearchPreference . Une limite de temps client de zéro indique qu’aucune limite de temps n’est définie.
L’exemple de code suivant montre comment définir la limite de temps du client.
ADS_SEARCHPREF_INFO SearchPref;
SearchPref.dwSearchPref = ADS_SEARCHPREF_TIMEOUT;
SearchPref.vValue.dwType = ADSTYPE_INTEGER;
SearchPref.vValue.Integer = 10;