InfoDirectory SDK 使用手引書
目次 索引 前ページ次ページ

第2章 アプリケーション開発環境(LDAP C API)> 2.1 クライアントAPIライブラリの機能> 2.1.5 LDAPコントロール

2.1.5.1 result情報のページング処理

 result情報のページング処理におけるコントロールリクエストの形式は、以下のインターネットドラフトに記述されています。

RFC2696 : “LDAP Control Extension for Simple Paged Results Manipulation”

処理の概要

 検索処理で多くのエントリがヒットした場合、ヒットしたエントリ情報を一度にクライアントへ送信するとクライアント側で資源不足や処理能力を超える可能性があります。

 LDAP V2では、これらを防止するために、エントリ数のサイズリミットを設定できました。しかし、サイズリミットを設定した場合、サイズリミットを超過したエントリ情報は破棄されます。そのためクライアントは、破棄されたエントリ情報を取得できませんでした。
 LDAP V3では、クライアント側の資源不足や処理能力を超過する問題を解決するためにクライアントとInfoDirectoryサーバ間でページング処理ができます。
 ページング処理とは、InfoDirectoryサーバ側で検索結果のエントリ情報を複数のページに分割して、クライアント間で同期をとり、ページ単位でクライアントに送信する機能です。1ページごとのエントリ数は、サイズリミット未満で0より大きい数をクライアントで指定します。以下に例を示します。

図: ページング処理の例

 

ページング処理の流れ

  1. 検索要求の送信

     クライアントは、検索要求にpagedResultsControlを付加してInfoDirectoryサーバに送信します。コントロールリクエストのcookieには、NULL文字列を設定します。cookieにより、InfoDirectoryサーバはこの要求が前回の続きであるかどうか識別します。NULL文字列の場合、ページング処理の開始を示します。

  2. 1ページ分の検索結果受信

     InfoDirectoryサーバは、クライアントが指定したページサイズ分のエントリ情報を送信します。

  3. result情報受信(途中経過)

     InfoDirectoryサーバは、検索の途中経過をクライアントに通知します。result情報に付加されているpagedResultsControlには、全エントリ数と、Cookieの文字列が設定されています。

  4. 検索要求の送信(前回の続き)

     クライアントは、検索要求にpagedResultsControlを付加してInfoDirectoryサーバに送信します。コントロールリクエストのcookieには、直前のresult情報で通知されたCookieの文字列を設定します。

  5. 次ページの検索結果受信(前回の続き)

     InfoDirectoryサーバは、前回受信したものに続くエントリ情報を1ページ分、クライアントに送信します。

  6. result情報受信

     InfoDirectoryサーバは、検索の最終結果をクライアントに通知します。result情報に付加されているpagedResultsControlのcookieには、NULL文字列が設定されています(ページング処理の終了を示します)。

     

リクエスト

 result情報のページング処理を使用する場合、InfoDirectoryサーバへの要求を発行する際に、サーバコントロールに以下のデータを指定します。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2006