ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Directory Server Enterprise Edition管理者ガイド
11g リリース1 (11.1.1.7.0)
B72439-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

2 Directory Serverの構成

この章では、Directory Serverの構成方法について説明します。これにはdsconfコマンドを使用できます(dsconfについての説明のマニュアル・ページを参照)。

また、Directory Service Control Center(DSCC)も使用でき、こちらが推奨される方法です。DSCCでは、構成プロセスの間に追加のチェックが行われ、これによりエラーを最小限に抑えられます。さらに、DSCCでは、構成をあるサーバー・インスタンスから別のサーバー・インスタンスにコピーできます。DSCCの使用方法の詳細は、DSCCのオンライン・ヘルプを参照してください。

2.1 Directory Serverインスタンスの構成の表示

Directory Serverインスタンスの構成を表示するには、dsconf infoを実行します。

$ dsconf info -h host -p port
Instance path   :  instance path
Global State    :  read-write
Host Name       :  host
Port            :  port
Secure port     :  secure port
Total entries   :  20844
Server version  :  11.1.1.6

Suffixes        :  suffix-DN

Dest. Servers   :  host:port

On-Going Tasks  :  import
Finished Tasks  :  backup

===================
Suffix suffix-DN

Replication role             :  master
Attribute to reindex         :  mail
                                country
                                telephonenumber
Index filter analyzer        :  Running for suffix-DN (Nov 7, 2008 4:56:33 PM) 

この出力は、接尾辞および、ターゲット・サーバーとのレプリケーション承諾が作成されていることを前提としています。また、実行中のインポート操作および終了したバックアップ操作も表示されます。

この出力には、レプリケーション・ロール、索引を再作成する属性、索引フィルタ・アナライザなどの接尾辞関連情報も表示されます。特定の情報が使用できない場合、その情報はdsconf info出力に表示されません。

2.2 DSCCを使用した構成の変更

構成を変更する方法としては、DSCCを使用することをお薦めします。このブラウザ・インタフェースには、タスクベースの制御が用意されており、迅速かつ効率的に構成を設定できます。DSCCを使用すると、1つのサーバーの構成設定を変更してから、それを他のサーバーにコピーできます。また、DSCCのインタフェースは、構成の複雑さや相互依存の解決に役立ちます。DSCCによる構成変更の詳細な手順は、DSCCのオンライン・ヘルプを参照してください。

2.3 コマンドラインからの構成の変更

コマンドライン・ツールを使用するスクリプトを作成することで、構成タスクを自動化できます。

dsconfコマンドを使用して、コマンドラインから構成を変更します。このコマンドは、LDAPを使用してcn=configサブツリーを変更します。dsconfの詳細は、「Directory Serverのコマンドライン・ツール」を参照してください。

dsconfでは実行できないタスクの場合は、ldapmodifyコマンドを使用します。


注意:

dsconf set-server-propコマンドを使用してサーバー構成プロパティを変更する場合は、変更できるプロパティとそれらのデフォルト値を把握している必要があります。すべてのプロパティのヘルプを表示するには、次のコマンドを使用します。

$ dsconf help-properties -v

必要な項目についてプロパティのヘルプを検索します。たとえば、UNIXプラットフォームの場合は、次のように入力してメモリー・キャッシュのプロパティを検索します。

$ dsconf help-properties -v | grep cache

cn=config内の構成エントリの詳細と、許容値の範囲を含むすべての構成エントリおよび属性の詳細は、Oracle Directory Server Enterprise Editionのリファレンスを参照してください。

2.4 dse.ldifファイルの変更

Directory Serverでは、そのすべての構成情報が次のファイル内に格納されます。

instance-path/config/dse.ldif


注意:

dse.ldifファイルの内容を直接編集して構成を変更することは、エラーが生じる可能性が高くなるため、お薦めできません。ただし、このファイルを手動で編集する場合は、ファイルを編集する前にサーバーを停止し、編集が終わったらサーバーを再起動します。


dse.ldifファイルの形式は、LDIF(LDAP Data Interchange Format)です。LDIFは、エントリ、属性およびその値をテキスト表現したもので、RFC 2849 (http://www.ietf.org/rfc/rfc2849)に定義されている標準形式です。

dse.ldifファイルにあるDirectory Serverの構成の内容は、次のとおりです。


注意:

dse.ldifがSun Microsystemsの存在しないプラグインを参照していても、有効な署名があると見なされる場合があります。次の警告メッセージが表示されます。

WARNING<4227> - Plugins - conn=-1 op=-1 msgId=-1 -  
Detected plugin paths from another install, using current install. 

この警告メッセージは、Sun Microsystemsのベンダーによるプラグインでのみ表示されます。


2.5 管理ユーザーの構成

Directory Serverには、デフォルトの管理ユーザーであるディレクトリ・マネージャが含まれています。

この項では、rootアクセス権を持つ管理ユーザーを作成する方法と、ディレクトリ・マネージャを構成する方法について説明します。

2.5.1 ルート・アクセス権を持つ管理ユーザーを作成するには

name="DirAdminDN" content="cn=admin,cn=Administrators,cn=config"と同じ権限を持つ新しい管理ユーザーを作成する場合は、グループcn=Administrators,cn=config内に新しいユーザーを作成します。このグループ内のすべてのユーザーが、ディレクトリ・マネージャと同じアクセスを許可するグローバルACIの対象となります。

このタスクの実行には、DSCCを使用できません。次の手順の説明に従って、コマンドラインを使用してください。

新しい管理ユーザーを作成します。

たとえば、cn=Admin24,cn=Administrators,cn=configという新しいユーザーを作成するには、次のように入力します。

$ ldapmodify -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w -
dn: cn=admin,cn=Administrators,cn=config
changetype: add
objectclass: top
objectclass: person
userPassword: password
description: Administration user with the same access rights as Directory Manager.

-Dおよび-wオプションでは、それぞれ、このエントリの作成に必要な権限を持つユーザーのバインドDNとパスワードを指定します。

2.5.2 ディレクトリ・マネージャを構成するには

ディレクトリ・マネージャとは、特権を持つサーバー管理者のことで、UNIXシステムのrootユーザーに相当します。アクセス制御はディレクトリ・マネージャには適用されません。

ほとんどの管理タスクでは、ディレクトリ・マネージャを使用する必要はありません。かわりに、ユーザーcn=admin,cn=Administrators,cn=configを使用するか、cn=Administrators,cn=configの下に作成するその他のユーザーを使用できます。ディレクトリ・マネージャを必要とするタスクは、ルートACIの変更と、レプリケーションの修復や削除記録の検索などのレプリケーションのトラブルシューティング・タスクのみです。

ディレクトリ・マネージャDNおよびパスワードを変更でき、パスワードを自動的に読み取ることができるファイルを作成できます。

このタスクの実行には、DSCCを使用できません。次の手順の説明に従って、コマンドラインを使用してください。

  1. 既存のディレクトリ・マネージャDNを検索します。

    $ dsconf get-server-prop -h host -p port root-dn
    root-dn:cn=Directory Manager
    
  2. 必要に応じてディレクトリ・マネージャの設定を変更します。

    • ディレクトリ・マネージャDNを変更するには、次のように入力します。

      $ dsconf set-server-prop -h host -p port root-dn:new-root-dn
      

      ディレクトリ・マネージャDNの中に空白文字がある場合は、引用符を使用します。次に例を示します。

      $ dsconf set-server-prop -h host1 -p 1389 root-dn:"cn=New Directory Manager"
      
    • ディレクトリ・マネージャのパスワードを変更するには、次のように入力します。

      パスワード設定用の一時ファイルを作成します。このファイルが一度読み取られ、パスワードは将来使用するために保存されます。

      $ echo password> /tmp/pwd.txt
      

      サーバー・ルートのパスワード・ファイル・プロパティを設定します。

      $ dsconf set-server-prop -h host -p port root-pwd-file:/tmp/pwd.txt
      

      このコマンドは、サーバーにパスワード・ファイルの読取りを要求します。パスワード・ファイル・プロパティの設定が完了したら、一時パスワード・ファイルを削除します。

      $ rm /tmp/pwd.txt
      

2.6 構成情報の保護

Directory Serverのルート・エントリ(長さ0のDN ""によるベース・オブジェクト検索で返されるエントリ)と、cn=configcn=monitorおよびcn=schemaの下のサブツリーには、Directory Serverによって自動的に生成されるアクセス制御命令(ACI)が含まれます。これらのACIは、ディレクトリ・エントリに対するユーザー・アクセス権を確認するために使用されます。評価目的としては、これらのACIで十分です。しかし、本番のデプロイメントの場合には、アクセス制御要件を評価し、独自のアクセス制御を設計する必要があります。

セキュリティ上の理由で1つまたは複数の追加のサブツリーの存在を非表示にし、構成情報を保護する場合は、追加のACIをDIT上に配置する必要があります。

ACIの作成の詳細は、第6章「Directory Serverのアクセス制御」を参照してください。

2.7 Directory Serverのポート番号の変更

ディレクトリ・サーバーのLDAPポートまたはLDAPSセキュア・ポートの番号を変更するには、DSCCを使用するかdsconf set-server-propコマンドを使用します。

ポート番号を変更する場合、次の点に注意してください。

他のユーザーがアクセスするマシンにDirectory Serverがインストールされている場合、特権のないポート番号を設定すると、ポートが公開され、他のアプリケーションに乗っ取られる危険にさらされる可能性があります。つまり、他のアプリケーションで同じアドレスとポートのペアにバインドすることが可能になります。この不法なアプリケーションが、Directory Server宛のリクエストを処理できてしまいます。つまり、不法なアプリケーションを使用し、認証処理に使用されるパスワードを横取りしたり、クライアントのリクエストまたはサーバーのレスポンスを変更したり、DoS攻撃を実行することが可能になります。このようなセキュリティ・リスクを回避するには、listen-addressまたはsecure-listen-addressプロパティを使用して、Directory Serverがリスニングするインタフェース(アドレス)を指定します。

コマンドラインを使用してポート番号を変更する場合、次の点に注意してください。

2.7.1 ポート番号の変更、ポートの有効化およびポートの無効化を実行するには

WebインタフェースのDirectory Service Control Center (DSCC)を使用して、このタスクを実行できます。


注意:

変更を行ったら、その変更を有効にするためにサーバーを再起動する必要があります。


  1. ポートの既存の設定を検証します。

    $ dsconf get-server-prop -h host -p port port-type
    

    ここで、port-typeは次のいずれかです。

    ldap-port

    LDAPデフォルト・ポート

    ldap-secure-port

    LDAPSセキュア・ポート

    dsml-port

    DSMLデフォルト・ポート

    dsml-secure-port

    DSMLセキュア・ポート

    たとえば、LDAPSセキュアポートを表示するには、次のように入力します。

    $ dsconf get-server-prop -h host1 -p 2501 ldap-secure-port
    Enter "cn=Directory Manager" password:
    ldap-secure-port : 2511
    

    返された結果が整数の場合、ポートは有効です。返された結果がdisabledの場合、ポートは無効です。


    注意:

    dsadmを使用して、LDAPデフォルト・ポートおよびLDAPSセキュア・ポートをリストすることもできます。


  2. 必要に応じて、ポート番号を変更するか、ポートを有効にします。

    $ dsconf set-server-prop -h host -p port port-type:new-port
    

    たとえば、LDAPポート番号を1389から1390に変更するには、次のコマンドを使用します。

    $ dsconf set-server-prop -h host1 -p 1389 ldap-port:1390
    

    ポート番号2250上でDSMLセキュア・ポートを有効にするには、次のコマンドを使用します。

    $ dsconf set-server-prop -h host1 -p 1389 dsml-secure-port:2250
    
  3. 必要に応じて、ポートを無効にします。

    $ dsconf set-server-prop -h host -p port port-type:disabled
    

    たとえば、DSMLセキュア・ポートを無効にするには、次のコマンドを使用します。

    $ dsconf set-server-prop -h host1 -p 1389 dsml-secure-port:disabled
    

2.8 DSMLの構成

Directory Serverは、LDAP(Lightweight Directory Access Protocol)のリクエストを処理するほかに、DSMLv2(Directory Service Markup Language version 2)で送信されたリクエストにも応答します。DSMLでも、クライアントでディレクトリ操作をエンコードできます。サーバーはDSMLを、同じアクセス制御とセキュリティ機能のすべてを持つ他のリクエストとして処理します。DSML処理により、他の多くのタイプのクライアントがディレクトリの内容にアクセスできます。

Directory Serverでは、ハイパーテキスト転送プロトコル(HTTP/1.1)でDSMLv2を使用できます。また、DSMLの内容を転送するためのプログラミング・プロトコルとしてSOAP(Simple Object Access Protocol)version 1.1が使用されます。これらのプロトコルの詳細およびDSMLリクエストの例については、Oracle Directory Server Enterprise Editionのリファレンスの第13章のDirectory Server DSMLv2に関する章を参照してください。

この項の内容は次のとおりです。

2.8.1 DSML-over-HTTPサービスを有効にするには

WebインタフェースのDirectory Service Control Center (DSCC)を使用して、このタスクを実行できます。

  1. DSMLモードをonに設定します。

    $ dsconf set-server-prop -h host -p port dsml-enabled:on
    
  2. セキュアDSMLポートを設定します。

    $ dsconf set-server-prop -h host -p port dsml-secure-port:port
    
  3. セキュアでないDSMLポートを設定します。

    $ dsconf set-server-prop -h host -p port dsml-port:port
    

    デフォルトでは、このポートはdisabledに設定されています。

  4. サーバーを再起動します。

    $ dsadm restart instance-path
    

次の手順

ユーザーによって定義されたパラメータと属性値に従い、DSMLクライアントは次のURLを使用して、このサーバーにリクエストを送信できます。

http://host:DSML-port/relative-URL

https://host:secure-DSML-port/relative-URL


注意:

relative-URLは、dsml-relative-root-urlプロパティを使用して読取りおよび設定できます。


2.8.2 DSML-over-HTTPサービスを無効にするには

WebインタフェースのDirectory Service Control Center (DSCC)を使用して、このタスクを実行できます。

  1. DSMLモードをoffに設定します。

    $ dsconf set-server-prop -h host -p port dsml-enabled:off
    
  2. セキュアDSMLポートをdisabledに設定します。

    $ dsconf set-server-prop -h host -p port dsml-secure-port:disabled
    
  3. サーバーを再起動します。

    $ dsasm restart instance-path
    

2.8.3 DSMLセキュリティを構成するには

DSMLリクエストの受取りに必要なセキュリティのレベルを構成できます。そのためには、DSMLクライアント認証を構成する必要があります。

DSMLクライアント認証モードを設定します。

$ dsconf set-server-prop -h host -p port dsml-client-auth-mode:dsml-mode

デフォルトでは、dsml-client-auth-modeプロパティはclient-cert-firstに設定されています。

dsml-modeは、次のいずれかに指定できます。

  • http-basic-only - これがデフォルト値です。サーバーは、HTTP認証ヘッダーの内容を使用して、ディレクトリのエントリにマップできるユーザー名を検索します。この処理とその構成は、SSLを介して暗号化されますが、クライアント証明書は使用しないでください。これについては、「DSMLアイデンティティ・マッピング」に説明があります。

  • client-cert-only - サーバーはクライアント証明書の資格証明を使用してクライアントを特定します。この値によって、すべてのDSMLクライアントはセキュアなHTTPSポートを使用してDSMLリクエストを送信し、証明書を提示する必要があります。サーバーは、クライアント証明書がディレクトリ内のエントリと一致するかどうかをチェックします。詳細は、第5章「Directory Serverのセキュリティ」を参照してください。

  • client-cert-first - クライアント証明書が提示された場合、サーバーはまずその証明書を使用してクライアントの認証を試みます。クライアント証明書が提示されていないと、サーバーはAuthorizationヘッダーのコンテンツを使用してクライアントを認証します。

HTTPリクエストで証明書もAuthorizationヘッダーも提示されていない場合は、サーバーは匿名バインドを使用してDSMLリクエストを実行します。匿名バインドは、次の場合にも使用されます。

  • client-cert-onlyが指定されており、クライアントが有効なAuthorizationヘッダーを提示しているが、証明書がない場合。

  • http-basic-onlyが指定されており、クライアントが有効な証明書を提示しているが、Authorizationヘッダーがない場合。

クライアント認証方式にかかわらず、証明書が提示されているがそれがエントリと一致しない場合、またはHTTP認可ヘッダーが指定されているがそれがユーザー・エントリにマップできない場合、DSMLリクエストは拒否され、エラー・メッセージ403: Forbiddenが返されます。

2.8.4 DSMLアイデンティティ・マッピング

証明書を使用しない基本認証を実行すると、Directory ServerはDSMLリクエストを受信するときに、アイデンティティ・マッピングと呼ばれるメカニズムにより、使用するバインドDNを決定します。このメカニズムでは、HTTPリクエストのAuthorizationヘッダーから情報を抽出して、バインドに使用するアイデンティティを特定します。

DSML/HTTPのデフォルトのアイデンティティ・マッピングは、サーバー構成の次のエントリで指定されます。

dn: cn=default,cn=HTTP-BASIC,cn=identity mapping,cn=config
objectClass: top
objectClass: nsContainer
objectClass: dsIdentityMapping
cn: default
dsSearchBaseDN: ou=people
dsSearchFilter: (uid=${Authorization})

この構成は、サーバーがDirectory Server接尾辞に格納されるDNのuid値としてHTTPユーザーIDを使用することを示します。たとえば、HTTPユーザーがbjensenの場合、サーバーは、DN uid=bjensen,ou=peopleを使用してバインドを実行しようとします。

マッピングが正しく機能するためには、dsSearchBaseDNの値をすべて入力する必要があります。たとえば、dsSearchBaseDNの値をou=people,dc=example,dc=comに変更できます。すると、HTTPユーザーがbjensenの場合、サーバーはDN uid=bjensen,ou=people,dc=example,dc=comを使用してバインドを実行しようとします。

dn: cn=default,cn=HTTP-BASIC,cn=identity mapping,cn=config
objectClass: top
objectClass: nsContainer
objectClass: dsIdentityMapping
cn: default
dsSearchBaseDN: ou=people,dc=example,dc=com
dsSearchFilter: (uid=${Authorization})

マッピング・エントリ属性dsSearchFilterの中で、${header}という形式のプレースホルダを使用できます。headerは、HTTPヘッダー名を表します。

次に、DSMLマッピングで使用される最も一般的なヘッダーを示します。

${Authorization}

この文字列は、HTTP Authorizationヘッダーに含まれるユーザー名に置き換えられます。Authorizationヘッダーには、ユーザー名とそのパスワードが含まれますが、このプレースホルダではユーザー名のみが置き換えられます。

${From}

この文字列は、HTTP Fromヘッダーに含まれる電子メール・アドレスに置き換えられます。

${host}

この文字列は、DSMLリクエストのURL内のホスト名とポート番号(サーバーのホスト名とポート番号)に置き換えられます。

DSMLリクエストで別の種類のアイデンティティ・マッピングを実行するには、HTTPヘッダーのアイデンティティ・マッピングを新しく定義します。

2.8.4.1 HTTPヘッダーの新しいアイデンティティ・マッピングを定義するには

  1. デフォルトのDSML-over-HTTPアイデンティティ・マッピングを編集するか、このプロトコルのカスタム・マッピングを作成します。

    マッピング・エントリは、エントリcn=HTTP-BASIC,cn=identity mapping,cn=configの下に配置する必要があります。

    ldapmodifyコマンドを使用して、コマンドラインからこのエントリを追加します。詳細は、第3.1.3.1項「ldapmodifyを使用したエントリの追加」を参照してください。

  2. Directory Serverを再起動して、新しいマッピングを有効にします。

    最初に、カスタム・マッピングが評価されます。カスタム・マッピングが成功しなかった場合、デフォルト・マッピングが評価されます。すべてのマッピングでDSMLリクエストのバインドDNの特定に失敗した場合、DSMLリクエストは禁止されて拒否されます(エラー403)。

2.9 サーバーの読取り専用としての設定

ディレクトリ内の各接尾辞は、単独で読取り専用モードにできます。また、特定のリフェラルが定義されていれば、それを返すことができます。また、Directory Serverは、すべての接尾辞に適用されるサーバーに読取り専用モードを指定し、グローバル・リフェラルが定義されている場合は、それを返すことができます。

サーバーの読取り専用モードは、接尾辞の索引の作成しなおしなどのタスクを実行する際に、管理者がディレクトリの内容を変更しないようにするために使用します。そのため、サーバーの読取り専用モードは、次の構成ブランチには適用されません。

これらのブランチは、読取り専用設定に関係なく、管理者以外のユーザーに変更されないように、アクセス制御命令(ACI)によって常に保護する必要があります(第6章「Directory Serverのアクセス制御」を参照)。グローバル読取り専用モードを設定すると、ディレクトリ・マネージャで開始された更新処理を含む、ディレクトリ内のその他すべての接尾辞に対する更新処理ができなくなります。

読取り専用モードでは、このモードが適用されている接尾辞についてはレプリケーションも中断されます。レプリケーションの対象となる変更がマスター・レプリカに加えられることはなくなります。ただし、読取り専用モードが適用される前に加えられた変更は、引き続きレプリケートされます。コンシューマ・レプリカは、読取り専用モードが無効になるまで更新を受け取りません。マルチ・マスター・レプリケーション環境のマスターは、レプリケーションの対象となる変更が加えられることはなく、他のマスターから更新を受け取りません。

2.9.1 サーバーの読取り専用モードを有効または無効にするには

WebインタフェースのDirectory Service Control Center (DSCC)を使用して、このタスクを実行できます。

  1. グローバル読取り専用モードを有効化します。

    $ dsconf set-server-prop -h host -p port read-write-mode:read-only
    
  2. 準備ができたら、読取り専用モードを無効化します。

    $ dsconf set-server-prop -h host -p port read-write-mode:read-write
    

2.10 メモリーの構成

この項では、様々なタイプのメモリーの管理について説明します。様々なタイプのキャッシュの説明と、キャッシュ・チューニングの詳細は、Oracle Directory Server Enterprise Editionのリファレンスの第8章のDirectory Serverのデータ・キャッシュに関する章を参照してください。

2.10.1 キャッシュの事前ロード

キャッシュを事前ロードすると、シャットダウン時にエントリがキャッシュに保存され、これらのエントリは起動時にロードされます。これによってサーバーは、すでにキャッシュに存在している、最近使用したエントリで起動できます。これに続くDirectory Serverの動作は、起動時のパフォーマンスではなく通常の操作パフォーマンスを反映します。キャッシュの事前ロードは、ベンチマークの実行時や最適と考えられる状態の測定や分析時など、再現性のある結果を求める際に有用です。

この機能が有効化されている場合、キャッシュを能動的に事前ロードする必要はありません。キャッシュを能動的に事前ロードすることによって、リソースが余計に消費されてキャッシュの事前ロードの利点が失われます。

可能な場合は、キャッシュの事前ロードを能動的に行わずに、Directory Serverを使用して通常の、または一般的なクライアント対話によってキャッシュの事前ロードを実行してからパフォーマンスを測定してください。

2.10.1.1 エントリ・キャッシュの事前ロードを有効化するには

エントリ・キャッシュの事前ロードを有効にするには、次のコマンドを実行します。

$ dsconf set-suffix-prop -p port suffix-dn entry-cache-preload-enabled:on

注意:

事前ロードされたデータの読取りおよび書込みが完了するのは、Directory Serverが適切に起動および停止される場合のみです。オフラインのタスクでは、キャッシュの内容は考慮されません。クラッシュによっても、キャッシュの事前ロードが無効化されます。

また、データの事前ロードの情報は、これらの条件では保存されません。

  • エントリ・キャッシュのサイズに関する最新の構成は、手動での設定から自動的なエントリ・キャッシュ・サイズに変更されます。

  • キャッシュに存在するエントリ数は、100未満です。


エントリ・キャッシュに関する詳細は、Oracle Directory Server Enterprise Editionのリファレンスを参照してください。

2.10.1.2 データベース・キャッシュを事前ロードするには

データベース・キャッシュを事前ロードするためのツールは、http://www.slamd.comにあります。

2.10.2 データベース・キャッシュを変更するには


注意:

キャッシュを変更すると、サーバーのパフォーマンスに重大な影響を与える可能性があります。キャッシュを変更する場合は十分に注意してください。


WebインタフェースのDirectory Service Control Center (DSCC)を使用して、このタスクを実行できます。

  1. 現在のデータベース・キャッシュ・レベルを取得します。

    $ dsconf get-server-prop -h host -p port db-cache-size
    
  2. データベース・キャッシュ・レベルを変更します。

    $ dsconf set-server-prop -h host -p port db-cache-size:size
    

    sizeは、ギガバイト(G)、メガバイト(M)、キロバイト(k)、またはバイト(b)のいずれかの単位で表せます。マシンでサポートされるサイズを指定する必要があります。

2.10.3 データベース・キャッシュを監視するには

インストール時のキャッシュのデフォルト・レベルはテスト環境に適したものであり、本番環境に適したものではありません。チューニング目的の場合は、サーバーのデータベース・キャッシュを監視することもできます。

WebインタフェースのDirectory Service Control Center (DSCC)を使用して、このタスクを実行できます。

データベース・キャッシュを監視するには、次を実行します。

$ ldapsearch -h host -p port -D cn=admin,cn=Administrators,cn=config -w - \
 -b "cn=monitor,cn=ldbm database,cn=plugins,cn=config" "(objectclass=*)"

データベース・キャッシュのサイズが十分に大きく、キャッシュの事前ロードが行われた場合は、ヒット率(dbcachehitratio)は高くなります。読み取られたページ数(dbcachepagein)と書き込まれたページ数(dbcacheroevict)は少なくなります。ヒット率の高低は、デプロイメントの制約に対して相対的に高いか低いかを意味します。

2.10.4 エントリ・キャッシュを監視するには

チューニング目的で、1つまたは複数の接尾辞のエントリ・キャッシュをチェックできます。エントリ・キャッシュ・レベルを表示するには、この手順を使用します。

WebインタフェースのDirectory Service Control Center (DSCC)を使用して、このタスクを実行できます。

エントリ・キャッシュを監視するには、次を実行します。

$ ldapsearch -h host -p port -D cn=admin,cn=Administrators,cn=config -w - \
 -b "cn=monitor,cn=db-name,cn=ldbm database,cn=plugins,cn=config" "(objectclass=*)"

接尾辞のエントリ・キャッシュが大部分のエントリを保持できるほど十分に大きい場合にキャッシュの事前ロードが行われていると、ヒット率(entrycachehitratio)は高くなります。

キャッシュを事前ロードすると、以前に空だったエントリ・キャッシュが満たされ、エントリ・キャッシュ・サイズ(currententrycachesize)がエントリ・キャッシュの最大サイズ(maxentrycachesize)近くになっていることがわかります。エントリ内のサイズ(currententrycachecount)は、接尾辞内のエントリの総数(ldapentrycachecount)と等しいか近い値が理想的です。

2.10.5 エントリ・キャッシュのサイズを変更するには

デフォルトでは負荷に応じて、エントリ・キャッシュはサーバーによって完全に管理されています。エントリ・キャッシュの設定を変更する前に、サーバーがデフォルト値でどのように動作するかを評価したい場合があります。チューニングの推奨事項については、Oracle Directory Server Enterprise Editionのリファレンスおよび『Oracle Fusion Middleware Oracle Directory Server Enterprise Editionデプロイメント・プランニング・ガイド』を参照してください。


注意:

キャッシュを変更すると、サーバーのパフォーマンスに重大な影響を与える可能性があります。キャッシュを変更する場合は十分に注意してください。


2.10.5.1 エントリ・キャッシュを手動で変更するには

デフォルトでは、entry-cache-modeのプロパティはautomaticに設定されています。これによってサーバー・キャッシュは、サーバー・ロードに基づいて自動的に管理されることが可能です。エントリ・キャッシュを変更する前に、このプロパティをmanualに設定する必要があります。

  1. entry-cache-modeプロパティをmanualに設定します。

    $ dsconf set-suffix-prop -h host -p port suffix-DN entry-cache-mode:manual 
    
  2. 現在のエントリ・キャッシュ・レベルを取得します。

    $ dsconf get-suffix-prop -h host -p port suffix-DN entry-cache-count entry-cache-size
    
  3. キャッシュのエントリ数を変更します。

    $ dsconf set-suffix-prop -h host -p port suffix-DN entry-cache-count:integer
    

    integerは、キャッシュに格納されるエントリの数です。

  4. キャッシュのエントリ・サイズを変更します。

    $ dsconf set-suffix-prop -h host -p port suffix-DN entry-cache-size:size
    

    sizeは、ギガバイト(G)、メガバイト(M)、キロバイト(k)、またはバイト(b)のいずれかの単位で表されるキャッシュ・サイズです。マシンでサポートされるサイズを指定する必要があります。

    entry-cache-sizeまたはentry-cache-countのどちらか先に達した方で、キャッシュが一杯であると判断します。

2.10.5.2 自動的なエントリ・キャッシュ・サイズの管理を構成するには

entry-cache-modeが手動に設定されている場合は、次のコマンドを実行することによって、自動的なエントリ・キャッシュ・サイズの管理に戻すことができます。

$ dsconf set-suffix-prop -h host -p port suffix-DN entry-cache-mode:automatic

2.10.6 ヒープ・メモリーのしきい値を構成するには

動的メモリーのフットプリントのしきい値を設定できます。このしきい値は、リソースが共有されているか点在している状態であるマシン上でDirectory Serverが実行中の場合に設定することもできます。

メモリーのサイズ設定の詳細は、『Oracle Fusion Middleware Oracle Directory Server Enterprise Editionデプロイメント・プランニング・ガイド』Directory Serverとメモリーに関する項を参照してください。

このタスクの実行には、DSCCを使用できません。次の手順の説明に従って、コマンドラインを使用してください。


注意:

このしきい値は、SolarisおよびLinuxプラットフォームのみに設定できます。



注意:

デフォルトでは、heap-high-threshold-sizeおよびheap-low-threshold-sizeプロパティはundefinedに設定されます。


  1. 最大ヒープの高メモリーしきい値を設定します。

    $ dsconf set-server-prop -h host -p port heap-high-threshold-size:value
    

    valueは、ギガバイト(G)、メガバイト(M)、キロバイト(k)、またはバイト(b)のいずれかの単位で表されるメモリー・サイズ、あるいはundefinedです。マシンでサポートされるサイズを指定する必要があります。

    heap-high-threshold-sizeに使用する値に関する推奨事項は、serverについての説明のマニュアル・ページを参照してください。

  2. オプションで、最大ヒープの低メモリーしきい値を設定します。

    $ dsconf set-server-prop -h host -p port heap-low-threshold-size:value
    

    valueは、ギガバイト(G)、メガバイト(M)、キロバイト(k)、またはバイト(b)のいずれかの単位で表されるメモリー・サイズ、あるいはundefinedです。マシンでサポートされるサイズを指定する必要があります。

    heap-low-threshold-sizeに使用する値に関する推奨事項は、serverについての説明のマニュアル・ページを参照してください。

2.11 各クライアント・アカウントのリソース制限の設定

各クライアント・アカウントに対する、サーバー上の検索操作のリソース制限を制御できます。このような制限をアカウントの操作属性に設定すると、それらの制限は、クライアントがディレクトリへのバインドに使用するアカウントに基づいて、Directory Serverで実施されます。

設定できる制限は次のとおりです。


注意:

デフォルトでは、ディレクトリ・マネージャは無制限にリソースを利用できます。


特定のユーザー・アカウントに対して設定したリソース制限は、サーバー規模の構成で設定したリソース制限より優先されます。この項では、各アカウントに対するリソース制限の設定について説明します。

この項で示す例では、エントリの属性に直接リソース制限を設定します。また、サービス・クラス(CoS)メカニズムを使用してアカウントにリソース制限を設定することもできます。クライアント・アプリケーション用にエントリが取得されるとき、CoSメカニズムによって算出属性が生成されます。CoSの定義の詳細は、第9.1項「グループ、ロールおよびサービス・クラスについて」を参照してください。

2.11.1 検索制限を構成するには

nsslapdプロセスで使用される検索制限を定義する場合、次の手順を参照してください。

WebインタフェースのDirectory Service Control Center (DSCC)を使用して、このタスクを実行できます。

  1. dsconf get-server-propコマンドを使用して、リソース制限サーバー・プロパティを読み取ります。

    $ dsconf get-server-prop -h host -p port look-through-limit search-size-limit \
     search-time-limit idle-timeout
    look-through-limit  :  5000  
    search-size-limit   :  2000  
    search-time-limit   :  3600
    idle-timeout        :  none
    

    この出力は、検索により最大5000エントリが調べられ、最大2000エントリが返され、検索の処理にはサーバーの時間で最大1時間(3600秒)が費やされることを示しています。

  2. 検索制限を変更します。

    $ dsconf set-server-prop -h host -p port look-through-limit:integer
    

    integerは、検索操作で調べるエントリの最大数です。

  3. 検索サイズ制限を変更します。

    $ dsconf set-server-prop -h host -p port search-size-limit:integer
    

    integerは、検索操作で返されるエントリの最大数です。

  4. 検索時間制限を変更します。

    $ dsconf set-server-prop -h host -p port search-time-limit:integer
    

    integerは、検索操作に費やせる最大時間です。

  5. アイドル・タイムアウトを変更します。

    $ dsconf set-server-prop -h host -p port idle-timeout:integer
    

    integerは、接続が切断されるまでに、クライアント接続がアイドル状態でいられる最大時間を指定します。