20 ナレッジ参照と参照の管理
関連項目:
ディレクトリ・エントリ、ディレクトリ情報ツリー、識別名および相対識別名の概要は、「ナレッジ参照と参照」を参照してください。
20.1 ナレッジ参照と参照の管理の概要
ナレッジ参照は参照とも呼ばれ、特定のタイプのエントリとしてディレクトリ内で表されます。ナレッジ参照エントリを作成するときには、referral
オブジェクト・クラスおよびextensibleObject
オブジェクト・クラスにそのエントリを関連付けます。通常、ナレッジ参照エントリは、パーティションを確立するDIT内の場所に作成されます。
ナレッジ参照は、LDAP URLを含む参照をユーザーに提供します。このURLを、ref
属性の値として入力してください。任意のナレッジ参照エントリに複数のref
属性が指定されている場合があります。同様に、DITに複数のナレッジ参照エントリがある場合もあります。
関連項目:
ディレクトリ・パーティション化とナレッジ参照の概要およびスマート・ナレッジ参照とデフォルト・ナレッジ参照の詳細は、「Oracle Internet Directoryの概念およびアーキテクチャの理解」を参照してください
参照キャッシングとは、参照情報へのアクセスを簡単に繰り返すことができるように、その情報を格納するプロセスです。クライアントがサーバーAに問い合せ、サーバーAがサーバーBに参照を返すとします。クライアントはこの参照を追跡して、操作を実行し、クライアントに結果を返すサーバーBと通信します。参照キャッシングが行われていない場合、クライアントが次回同じ問合せをサーバーAに対して行うと、手順全体が繰り返され、時間とシステム・リソースを必要以上に消費することになります。
参照情報をキャッシュできる場合は、以降の各問合せで、参照情報をキャッシュから取り出し、サーバーBと直接通信できます。これによって、操作にかかる時間を短縮できます。
クライアント側の参照キャッシングによって、各クライアントは、参照情報をキャッシュして使用し、参照処理にかかる時間を短縮できます。
参照エントリは、クライアントの構成ファイルに格納されます。クライアントは、セッション確立時に、この構成ファイルから参照情報を読み取ってキャッシュに格納します。このキャッシュは静的状態を保持し、セッション中に更新の追加は行われません。これ以降、クライアントは、操作を行うたびにキャッシュ内の参照情報を検索します。
クライアントが使用するこの構成ファイルは、ディレクトリ管理者が準備します。
ノート:
構成ファイルは、クライアントにとってはオプションです。ファイルが存在しない場合でも、参照に関係するクライアント操作は正常に行われます。したがって、このファイルの準備は、管理者の必須作業ではありません。構成ファイルを使用する利点は、参照に関係するクライアント/サーバーの操作時間を短縮できることです。
20.2 参照セットについて
構成ファイルは、1つ以上の参照セットで構成されます。
それぞれの参照セットは、次の要素で構成されます。
-
特定のディレクトリ・サーバーが稼働しているホスト名
-
そのサーバーに存在する1つ以上のエントリ
各参照エントリは一連の行で構成され、それぞれの行は1つの参照URLに対応します。行セパレータは、CRまたはLFです。
ref_file=ref_file_content ref_file_content=1*(referral_set) referral_set=hostname SEP ref_entry_set SEP ref_entry_set=ref_entry *(SEP ref_entry) ref_entry=1*(referralurl SEP) SEP=CR LF / LF CR=0x0D LF=0x0A
たとえば、ホスト・サーバーXで稼働しているディレクトリ・サーバーに次の2つの参照エントリがあるとします。
dn: dc=example, dc=com ref: ldap://serverA:3060/dc=example, dc=com ref: ldap://serverB:3060/dc=example, dc=com dn: dc=oracle, dc=com ref: ldap://serverC:3060/dc=oracle, dc=com ref: ldap://serverD:3060/dc=oracle, dc=com
ホスト・サーバーYで稼働しているディレクトリ・サーバーには、次の参照エントリがあるとします。
dn: dc=fiction, dc=com ref: ldap://serverE:3060/dc=fiction, dc=com
対応するreferral.ora
ファイルは、次のようになります。
ServerX ldap://serverA:3060/dc=example, dc=com ldap://serverB:3060/dc=example, dc=com ldap://serverC:3060/dc=oracle, dc=com ldap://serverD:3060/dc=oracle, dc=com ServerY ldap://serverE:3060/dc=fiction, dc=com
20.3 スマート参照の構成
検索結果には、ナレッジ参照とともに通常のエントリも含まれる場合があります。ユーザーが検索操作を実行すると、Oracle Internet Directoryは指定された検索の適用範囲内でナレッジ参照エントリを探します。ナレッジ参照が見つかった場合、Oracle Internet Directoryは参照をクライアントに返します。
ユーザーがナレッジ参照エントリの下に置かれたエントリに対して追加、削除または変更操作を実行すると、Oracle Internet Directoryは参照を返します。
たとえば、ディレクトリ・サーバーの地理的な場所に基づいたDITを分割するとします。この例では、次のように仮定します。
-
c=us
ネーミング・コンテキストは、米国のサーバーAとサーバーBにローカルに保持されています。 -
c=uk
ネーミング・コンテキストは、英国のサーバーCとサーバーDにローカルに保持されています。
ここで、この2つのネーミング・コンテキスト間のナレッジ参照を、次のように構成するとします。
次のコマンド行を使用します。
ldapmodify -D cn=orcladmin -q -p portNum -h hostname -f ldifFile
結果は、次のようになります。
-
サーバーAまたはサーバーBにベース
o=foo,c=uk
で問い合せるクライアントは、参照を受信します。 -
サーバーCまたはサーバーDにベース
o=foo,c=us
で問い合せるクライアントは、参照を受信します。 -
サーバーAまたはサーバーBでの
o=foo,c=uk
の追加操作は失敗します。かわりに、Oracle Internet Directoryは参照を返します。
20.4 デフォルト参照の構成
Oracle Internet Directoryは、サーバーによってローカルに保持されているすべてのディレクトリ・ネーミング・コンテキストを、DSEのnamingcontext
属性を使用して判断します。namingContext
属性には、ネーミング・コンテキスト情報を正しく反映させてください。
DSEエントリのref
属性の値を入力して、デフォルト参照を指定します。ref
属性がDSEエントリにない場合は、デフォルト参照は返されません。
デフォルト参照を構成するときは、LDAP URLの識別名を指定しないでください。
たとえば、サーバーAのDSEエントリに、次のnamingContext
値が含まれているとします。
namingcontext: c=us
さらに、デフォルト参照が次のとおりと仮定します。
Ref: ldap://host PQR:3060
ユーザーが、サーバーAでネーミング・コンテキストc=canada
にベース識別名を持つ操作を入力したとします。たとえば、次のとおりです。
ou=marketing,o=foo,c=canada
このユーザーはホストPQRへの参照を受信することになります。これは、サーバーAがc=canada
ベース識別名を保持しておらず、そのDSEのnamingContext
属性が値c=canada
を保持していないためです。
関連項目:
ナレッジ参照の概念の説明は、「ナレッジ参照と参照」を参照してください