IDirectorySearchでのクライアントの時間制限

クライアントは、サーバーが結果セットを返すまでの時間制限を課すことができます。 指定された時間内にサーバーがクエリに応答しなかった場合、クライアントは検索を中止し、後で再試行できます。

クライアントの時間制限の設定は、クライアントが非同期検索を要求する場合に便利です。 非同期検索では、クライアントは要求を行い、サーバーが結果を返すのを待っている間に他のタスクを続行します。 サーバーは、クライアントに通知せずにオフラインになる可能性があります。 この場合、サーバーがまだクエリを処理しているかどうか、またはサーバーが存在しなくなったかどうかについて、クライアントには通知されません。 クライアントの時間制限の設定により、クライアントはこのような状況をある程度制御できます。

クライアントの時間制限の既定値は無制限です。 クライアントの時間制限を設定するには、IDirectorySearch :: SetSearchPreferenceメソッドに渡されるADS_SEARCHPREF_INFO配列で、クライアントの時間制限 (秒単位) を含むADSTYPE_INTEGER値を使用してADS_SEARCHPREF_TIMEOUT検索オプションを設定します。 クライアントの時間制限が0の場合は、時間制限がないことを示します。

次のコード例は、クライアントの時間制限を設定する方法を示しています。

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