Clientzeitlimit mit IDirectorySearch
Ein Client kann ein Zeitlimit für einen Server festlegen, um das Resultset zurückzugeben. Wenn der Server nicht innerhalb des angegebenen Zeitraums auf eine Abfrage antwortet, kann der Client die Suche abbrechen und es später erneut versuchen.
Die Einstellung zum Clientzeitlimit ist nützlich, wenn ein Client eine asynchrone Suche anfordert. Bei einer asynchronen Suche stellt der Client eine Anforderung und fährt dann mit anderen Aufgaben fort, während er darauf wartet, dass der Server die Ergebnisse zurückgibt. Es ist möglich, dass der Server offline geschaltet werden kann, ohne den Client zu benachrichtigen. In diesem Fall erhält der Client keine Benachrichtigung darüber, ob der Server die Abfrage noch verarbeitet oder nicht mehr aktiv ist. Die Einstellung für das Clientzeitlimit gibt dem Client eine gewisse Kontrolle über solche Situationen.
Der Standardwert für das Clientzeitlimit ist keine Beschränkung. Um ein Clientzeitlimit festzulegen, legen Sie eine ADS_SEARCHPREF_TIMEOUT Suchoption mit einem ADSTYPE_INTEGER Wert fest, der das Clientzeitlimit in Sekunden im ADS_SEARCHPREF_INFO Array enthält, das an die IDirectorySearch::SetSearchPreference-Methode übergeben wird. Ein Clientzeitlimit von 0 (null) gibt kein Zeitlimit an.
Im folgenden Codebeispiel wird gezeigt, wie das Clientzeitlimit festgelegt wird.
ADS_SEARCHPREF_INFO SearchPref;
SearchPref.dwSearchPref = ADS_SEARCHPREF_TIMEOUT;
SearchPref.vValue.dwType = ADSTYPE_INTEGER;
SearchPref.vValue.Integer = 10;