Compartir a través de


Límite de tiempo de cliente con IDirectorySearch

Un cliente puede imponer un límite de tiempo para que un servidor devuelva el conjunto de resultados. Cuando el servidor no responde a una consulta dentro del período de tiempo especificado, el cliente puede abandonar la búsqueda e intentarlo de nuevo más tarde.

La preferencia de límite de tiempo de cliente es útil cuando un cliente solicita una búsqueda asincrónica. En una búsqueda asincrónica, el cliente realiza una solicitud y, a continuación, continúa con otras tareas mientras espera a que el servidor devuelva los resultados. Es posible que el servidor pueda desconectarse sin notificar al cliente. En este caso, el cliente no tendrá ninguna notificación de si el servidor sigue procesando la consulta o si ya no está activo. La preferencia de límite de tiempo de cliente proporciona al cliente cierto control de situaciones como esta.

El valor predeterminado para el límite de tiempo del cliente no es ningún límite. Para establecer un límite de tiempo de cliente, establezca una opción de búsqueda ADS_SEARCHPREF_TIMEOUT con un valor de ADSTYPE_INTEGER que contenga el límite de tiempo del cliente, en segundos, en la matriz de ADS_SEARCHPREF_INFO pasada al método IDirectorySearch::SetSearchPreference . Un límite de tiempo de cliente de cero indica que no hay límite de tiempo.

En el ejemplo de código siguiente se muestra cómo establecer el límite de tiempo del cliente.

ADS_SEARCHPREF_INFO SearchPref;
SearchPref.dwSearchPref = ADS_SEARCHPREF_TIMEOUT;
SearchPref.vValue.dwType = ADSTYPE_INTEGER;
SearchPref.vValue.Integer = 10;