InfoDirectory SDK 使用手引書 |
目次
索引
![]() ![]() |
第2章 アプリケーション開発環境(LDAP C API) | > 2.1 クライアントAPIライブラリの機能 | > 2.1.5 LDAPコントロール |
result情報のページング処理におけるコントロールリクエストの形式は、以下のインターネットドラフトに記述されています。
RFC2696 : “LDAP Control Extension for Simple Paged Results Manipulation”
検索処理で多くのエントリがヒットした場合、ヒットしたエントリ情報を一度にクライアントへ送信するとクライアント側で資源不足や処理能力を超える可能性があります。
LDAP V2では、これらを防止するために、エントリ数のサイズリミットを設定できました。しかし、サイズリミットを設定した場合、サイズリミットを超過したエントリ情報は破棄されます。そのためクライアントは、破棄されたエントリ情報を取得できませんでした。
LDAP V3では、クライアント側の資源不足や処理能力を超過する問題を解決するためにクライアントとInfoDirectoryサーバ間でページング処理ができます。
ページング処理とは、InfoDirectoryサーバ側で検索結果のエントリ情報を複数のページに分割して、クライアント間で同期をとり、ページ単位でクライアントに送信する機能です。1ページごとのエントリ数は、サイズリミット未満で0より大きい数をクライアントで指定します。以下に例を示します。
図: ページング処理の例
クライアントは、検索要求にpagedResultsControlを付加してInfoDirectoryサーバに送信します。コントロールリクエストのcookieには、NULL文字列を設定します。cookieにより、InfoDirectoryサーバはこの要求が前回の続きであるかどうか識別します。NULL文字列の場合、ページング処理の開始を示します。
InfoDirectoryサーバは、クライアントが指定したページサイズ分のエントリ情報を送信します。
InfoDirectoryサーバは、検索の途中経過をクライアントに通知します。result情報に付加されているpagedResultsControlには、全エントリ数と、Cookieの文字列が設定されています。
クライアントは、検索要求にpagedResultsControlを付加してInfoDirectoryサーバに送信します。コントロールリクエストのcookieには、直前のresult情報で通知されたCookieの文字列を設定します。
InfoDirectoryサーバは、前回受信したものに続くエントリ情報を1ページ分、クライアントに送信します。
InfoDirectoryサーバは、検索の最終結果をクライアントに通知します。result情報に付加されているpagedResultsControlのcookieには、NULL文字列が設定されています(ページング処理の終了を示します)。
result情報のページング処理を使用する場合、InfoDirectoryサーバへの要求を発行する際に、サーバコントロールに以下のデータを指定します。
realSearchControlValue ::= SEQUENCE { |
コントロールリクエストに指定するデータは、BERエンコードしたものを指定します。
目次
索引
![]() ![]() |