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

第3部 SDK編> 第5章 アプリケーション開発環境(LDAP C API)> 5.1 クライアントAPIライブラリの機能> 5.1.5 LDAPコントロール

5.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) 富士通株式会社 2005