以前のリリースの Sun Java System Communications Express の場合、特定のドメインの個人用アドレス帳エントリは、db_config.properties ファイルに定義された defaultserver インスタンスで表現される LDAP の単一の場所に格納されていました。db_config.properties ファイルは、ドメインの personalstore.properties で示されるディレクトリ内に存在していました。たとえば、「uwc-install/WEB-INF/config/ldappstore」です。
この配備を、各個人用アドレス帳で多数のユーザーと連絡先をサポートするように拡張することはできませんでした。この制限を克服するために、Sun Java System Communications Express 6.2 では、管理者が psRoot 属性を使用して、各ユーザーの PAB データが LDAP の複数の場所に分散するようにユーザーをプロビジョニングできるようになりました。
たとえば、「ldap://mydir.com:389/piPStoreOwner=jsmith,o=siroe.com,o=PiServerDb」と指定できます。
図 3-1 は、アドレス帳サーバーの水平方向の拡張に使用されるアーキテクチャーの高レベルの概要を示しています。
アドレス帳の水平方向のスケーラビリティーアーキテクチャーの主要なコンポーネントは、次のとおりです。
個人ストア
DB
DBMap
個人ストアには、ユーザーのアドレス帳情報が保持されます。ユーザーが作成したすべてのアドレス帳の定義のほか、それらのアドレス帳内のすべてのエントリが含まれています。個人ストアは、それが格納されているディレクトリインスタンスと、その特定のディレクトリインスタンス内の DN を示す URL として表現されます。
DB には個人ストアの集合が含まれており、図 3-1 に示すように、アドレス帳サーバーは任意数の DB にアクセスできます。すべての DB は、その DB 用の接続パラメータを指定する DB ID で定義されます。各 DB のタイプは異なっていてもよく、また別の DB の場所を指すこともできます。
DBMap は、同じタイプの DB の集合です。各 DBMap には、その DBMap 用の設定情報を示す ID が割り当てられます。
psRoot は、ユーザーの LDAP 内の属性であり、ホスト、ディレクトリインスタンスのポート、およびユーザーのアドレス帳エントリがある DN を指定します。psRoot は次の形式になります。ldap://ldap_host:ldap_port/DN
psRoot 属性の値によって、DB のタイプと DB の場所が決定されます。
psRoot の例では、「ldap://mydir.com:389/piPStoreOwner=jsmith,o=siroe.com,o=PiServerDb」になっています。
「ldap://」は、ユーザーのアドレス帳個人ストアが LDAP DB プラグインを使用してアクセスされることを示しています。
「mydir.com:389」は、LDAP のホストとポートを指定しています。
「piPStoreOwner=jsmith,o=siroe.com,o=PiServerDb」は、個人ストアの DN を指定しています。
アドレス帳サーバーには、スケーラビリティーポリシーに従ってユーザーの psRoot 値を分散するためのユーティリティーは用意されていません。管理者は、組織にもっとも適した特定のポリシーを設定し、カスタムスクリプトでそのポリシー用の psRoot 値を設定する必要があります。
psRoot 属性は、ドメイン固有の personalstore.properties ファイル内にある db.UserPsRoot パラメータを使用して、有効または無効にすることができます。db_config.properties ファイル内の defaultserver パラメータを使用するには、このパラメータを “false” に設定します。ユーザーの psRoot 値を使用するには、このパラメータを「true」に設定します。psRoot で使用する各 Directory Server インスタンスには、「db_config.properties ファイルでのアドレス帳個人ストアパラメータの設定」に一覧表示されている個人ストアパラメータを指定する必要があります。実行時に、psRoot 属性の値は db-key.ldaphost と db-key.ldapport を使用して、ディレクトリインスタンスに解決されます。ここで、db-key は、各インスタンスを区別するための任意の文字列です。db-key.ldaphost と db-key.ldapport の一致がまったく発見されなかった場合は、defaultserver インスタンスが使用されます。
新規ユーザーがログインすると、ユーザーのエントリ内の psRoot 属性にデフォルト値が設定されます。
新規ユーザーの psRoot 値は、personalstore.properties ファイル内に定義されている psRoot パターンと、db_config.properties ファイル内の defaultserverhost および defaultserverPort 値を使用して作成されます。たとえば、デフォルトの psRoot パターンを使用すると、デフォルトの psRoot 値は次の形式になります。
ldap://defaultserver_host :defaultserver_port/piPStoreOwner=%U,o=%D,o=PiServerDb
各表記の意味は次のとおりです。
%U = ユーザーのログイン ID。 たとえば、「jsmith」。
%D = ユーザーのドメイン。 たとえば、「siroe.com」。